C语言入门训练代码(10条)

阅读: 评论:0

2024年1月28日发(作者:)

C语言入门训练代码(10条)

C语言入门训练代码(10条)

1. 输入n,计算出n的阶乘。

#include

int main()

{

int n, i;

long long ret = 1;

printf("请输入一个正整数:");

scanf("%d", &n);

for (i=1; i<=n; ++i)

{

ret *= i;

}

printf("%d的阶乘是%lldn", n, ret);

return 0;

}

2. 编写一个程序,将一个字符串中的字母全部转换为大写字母。

#include

#include

#define MAX_LEN 100

int main()

{

char str[MAX_LEN + 1];

int i;

printf("请输入一个字符串:");

fgets(str, MAX_LEN, stdin);

for (i=0; str[i]!='0'; ++i)

{

str[i] = toupper(str[i]);

}

printf("转换后的字符串是:%s", str);

return 0;

}

3. 输入两个正整数m和n,求它们的最大公约数和最小公倍数。

#include

int main()

{

int m, n, i, gcd, lcm;

printf("请输入两个正整数m和n:");

scanf("%d %d", &m, &n);

for (i=1; i<=m && i<=n; ++i)

{

if (m%i==0 && n%i==0)

{

gcd = i;

}

}

lcm = m*n / gcd;

printf("%d和%d的最大公约数是%d,最小公倍数是%dn", m, n, gcd, lcm);

return 0;

}

4. 输入一组数据,计算它们的平均值以及大于平均值的个数。

#include

#define MAX_LEN 100

int main()

{

int arr[MAX_LEN], sum=0, count=0, i, len;

float avg;

printf("请输入一组数据(以-1结束):n");

for (i=0; i

{

scanf("%d", &arr[i]);

if (arr[i]==-1) break;

sum += arr[i];

}

len = i;

avg = (float)sum / len;

for (i=0; i

{

if (arr[i] > avg)

{

count++;

}

}

printf("平均值为%.2f,大于平均值的数的个数为%dn",

avg, count);

return 0;

}

5. 编写一个程序,将一个三位数反转后输出。

#include

int main()

{

int num, r;

printf("请输入一个三位数:");

scanf("%d", &num);

r = (num%10)*100 + ((num/10)%10)*10 + num/100;

printf("反转后的数为:%dn", r);

return 0;

}

6. 输入一个日期,计算出是这一年的第几天。

#include

int main()

{

int year, month, day, i, days=0;

int month_day[] = {31,28,31,30,31,30,31,31,30,31,30,31};

printf("请输入一个日期(格式:年 月 日):");

scanf("%d %d %d", &year, &month, &day);

if (year%4==0 && year%100!=0 || year%400==0)

{

month_day[1] = 29;

}

for (i=0; i

{

days += month_day[i];

}

days += day;

printf("%d年%d月%d日是这一年的第%d天n", year,

month, day, days);

return 0;

}

7. 输入一个字符串,判断它是否是回文字符串。

#include

#include

#define MAX_LEN 100

int main()

{

char str[MAX_LEN + 1];

int i, j, is_palindrome=1;

printf("请输入一个字符串:");

fgets(str, MAX_LEN, stdin);

for (i=0, j=strlen(str)-1; i

{

if (str[i] != str[j])

{

is_palindrome = 0;

break;

}

}

if (is_palindrome)

{

printf("是回文字符串n");

}

else

{

printf("不是回文字符串n");

}

return 0;

}

8. 输入一个正整数n,输出n行杨辉三角。

#include

int main()

{

int n, i, j;

int arr[100][100] = {{0}};

printf("请输入一个正整数:");

scanf("%d", &n);

for (i=0; i

{

for (j=0; j<=i; ++j)

{

if (j==0 || j==i)

{

arr[i][j] = 1;

}

else

{

arr[i][j] = arr[i-1][j] + arr[i-1][j-1];

}

printf("%4d", arr[i][j]);

}

printf("n");

}

return 0;

}

9. 输入两个字符串s和t,判断t是否是s的子串。

#include

#include

#define MAX_LEN 100

int main()

{

char s[MAX_LEN + 1], t[MAX_LEN + 1];

int i, j, len_s, len_t, is_substr=0;

printf("请输入两个字符串s和t(以空格分隔): scanf("%s%s", s, t);

len_s = strlen(s);

len_t = strlen(t);

for (i=0; i

{

for (j=0; j

");

{

if (s[i+j] != t[j])

{

break;

}

}

if (j == len_t)

{

is_substr = 1;

break;

}

}

if (is_substr)

{

printf("t是s的子串n");

}

else

{

printf("t不是s的子串n");

}

return 0;

}

10. 统计一篇英文文章中每个单词出现的次数。

#include

#include

#include

#define MAX_LEN 1000

int main()

{

char str[MAX_LEN + 1], word[MAX_LEN + 1];

int len_str, len_word, i, j, k, count;

int start, end;

int is_delimiter;

printf("请输入一篇英文文章:n");

fgets(str, MAX_LEN, stdin);

len_str = strlen(str) - 1;

i = 0;

while (i < len_str)

{

while (i < len_str && !isalpha(str[i]))

{

++i;

}

start = i;

while (i < len_str && isalpha(str[i]))

{

++i;

}

end = i;

if (end > start)

{

len_word = end - start;

strncpy(word, str+start, len_word);

word[len_word] = '0';

count = 1;

for (j=0; j

{

if (isalpha(str[j]))

{

k = j;

is_delimiter = 1;

while (isalpha(str[k]))

{

++k;

}

if (k < start)

{

is_delimiter = 0;

break;

}

}

}

if (is_delimiter)

{

for (j=0; j

{

if (tolower(str[j]) == tolower(word[0]))

{

k = j + 1;

is_delimiter = 1;

for (int l=1; l

{

if (tolower(str[k]) !=

tolower(word[l]))

{

is_delimiter = 0;

break;

}

++k;

}

if (is_delimiter && k < end)

{

is_delimiter = 0;

break;

}

}

}

if (is_delimiter)

{

for (j=end; j

{

if (isalpha(str[j]))

{

k = j;

is_delimiter = 1;

while (isalpha(str[k]))

{

++k;

}

if (k > end)

{

is_delimiter = 0;

break;

}

}

}

if (is_delimiter)

{

for (j=0; j

{

if (tolower(str[j]) ==

tolower(word[0]))

{

k = j + 1;

is_delimiter = 1;

for (int l=1; l

tolower(word[l]))

{

if (tolower(str[k]) !=

{

is_delimiter = 0;

break;

}

++k;

}

if (is_delimiter && k < end)

{

is_delimiter = 0;

break;

}

if (is_delimiter && k == end)

{

++count;

}

}

}

}

}

}

printf("%s: %dn", word, count);

}

}

return 0;

}

C语言入门训练代码(10条)

本文发布于:2024-01-28 06:33:16,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063947965489.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:输入   字符串   文章   平均值   正整数   程序
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23