/*
make exec && ./exec
*/
/*
1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。
2.计算1+2+3…+n的值,n是从键盘输入的自然数。
3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。
4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各元素的值。
5.要将5张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面值至少1张,编程求需要多少张纸币。
6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。例如若n为1000时,函数值应为:s=153.909064。
7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。
8.输入1~10之间的一个数字,输出它对应的英文单词。
9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些?
10.输入某年某月某日,判断这一天是这一年的第几天?
11.两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
12.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是10岁。请问第五个人多大?
13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构成)。
14.输入10个数,分别统计其中正数、负数、零的个数。
15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)
16.用for编程找出100~200中的完全平方数。
17.从终端输入三个正实数,判断这三个数能否构成直角三角形。
18.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
19.输入一个字串,判断它是否是对称串。如”abcdcba”是对称串,”123456789”不是。
20.随机产生N个大写字母输出,然后统计其中共有多少个元音字符。(设N为50)
21.找出三位自然数中的所有素数,要求判断x素数用自定义函数data(x)实现。
22.输出n行由“#”组成的矩形,每行“#”的个数为m个,其中n、m由终端(键盘)输入。要求输出m个“#”功能由函数satr(m)函数实现。
23.若ax2+bx+c=0有实根,则求之。
24.从键盘输入两个字串,判断它们是否相同。
25.从键盘输入两个字串,输出其中较短的那个字串,并输出它的长度。
26.从键盘输入长度不等的两个字串,将短串连接于长串之后输出。
27.从键盘输入长度不等的两个字串,将长串连接于短串之后输出。
28.随机产生N个两位自然数,降序排列后输出。(设N为20)
29.从键盘输入两个字串,输出其中较长的那个字串,并输出它的长度。
30.从键盘输入10个战士的身高,输出平均身高,并找出哪些身高低于平均身高。
31.从键盘输入10个战士的身高,输出平均身高,并找出哪些身高高于平均身高。
32.从键盘输入10个战士的身高,输出最高、最低的身高。
33.“百钱百鸡”问题。百钱买百鸡,鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何?
34.有三个小孩,一个比一个大2岁,已知其年龄之和为39,问这三个小孩各几岁?
35.键盘输入长方体的长宽高l、w、h,求其体积及表面积。要求用自定义函数val(l,w,h)计算长方体的体积和表面积,计算结果使用全局变量带回主函数。
36.计算:1/2+1/4+……+1/n,设n是由键盘输入的正偶数。
37.计算:1/1+1/3+……+1/n,设n是由键盘输入的正奇数。
38.计算:1/2-2/3+3/4-4/5……,前100项。
39.有一个数组{1,4,80,23,47,76,14,52}。现输入一个数,要求按原来的规律将它插入数组中并从大到小输出
40.公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:甲说“乙没有偷,是丁偷的”, 乙说“我没有偷,是丙偷的”,丙说“甲没有偷,是乙偷的”,丁说“我没有偷”。请根据这四人的答话判断谁是盗窃者。
41.求s=a+aa+aaa+aaaa+......+aa...a的值,其中a是1~9之间的一个数字,表达式项数从键盘输入(设不超过10项)。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
42.设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:1234的反序数是4321。
43.爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问这条阶梯至少有多少阶?
44.输入任意一行字符,降序排列之。
45.输入一行字符串,按如下规则加密:如果是英文字母则大写变小写、小写变大写,对非英文字符则保持不变。试写加密程序。
46.输入一行小写英文字母,按如下规则加密:a→c、b→d、…、x→z、y→a、z→b,试写加密程序。
47.输入一行英文,已知各单词之间用1个空格相隔(设第一个单词前没有空格),统计这行英文有多少个单词。
48.求1+12+123+……前n项之和,其中n是从键盘输入的一个数字(1~9)。
49.随机生成10道100以内的加减乘除数学题 回答正确的加10分错误不加分 然后显示成绩 。
50.有1000发子弹 要提前装道10箱子里面,接收键盘输入,要取多少颗子弹数,只能显示整箱的个数,问这10个箱子怎么装(定义一个数组10个元素,分别装子弹的个数,比如取走100发子弹 程序运行结果,比如2箱)
//1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <stdio.h>
int main(void)
{
int num = 0, new_num = 0;
int a = 0, b = 0, c = 0, d = 0, e = 0;
printf("请输入不超过五位的正整数:");
scanf("%d", &num);
//12345
a = num / 10000;
b = num / 1000 % 10;
c = num / 100 % 10;
d = num / 10 % 10;
e = num % 10;
new_num = e * 10000 + d * 1000 + c * 100 + b * 10 + a;
printf("new_num = %d\n", new_num);
return 0;
}
|
//2.计算1+2+3…+n的值,n是从键盘输入的自然数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
int main(void)
{
int num = 0;
int num_out = 1;
printf("请输入一个自然数:");
scanf("%d", &num);
while(num)
{
num_out = num_out * num;
num--;
}
printf("%d\n", num_out);
return 0;
}
|
//3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #include <stdio.h>
#include <string.h>
int main(void)
{
int i = 0;
int num = 0, num_out = 0;
int arr[20] = {4, -2, 1, 3 ,5, -5, -4, -3, 2, 1, 8, 9, 10, -19, -10, 3, 1, 5, -9, 0};
for(i = 0; i < 20; i++)
{
if(arr[i] > 0)
num_out += arr[i];
else
continue;
}
printf("%d\n", num_out);
return 0;
}
|
//4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各元素的值。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| #include <stdio.h>
int main(void)
{
int num = 0;
int i = 0, j = 4;
int arr[5] = {0};
int swap_arr[5] = {0};
printf("输入5个整数,整数与整数之间用空格隔开:");
for(i = 0; i < 5; i++)
{
scanf("%d", &arr[i]);
}
for(i = 0; i < 5; i++)
{
swap_arr[i] = arr[j];
j--;
}
for(i = 0; i < 5; i++)
{
printf("%d ", swap_arr[i]);
}
return 0;
}
|
//5.要将5张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面值至少1张,编程求需要多少张纸币。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| #include <stdio.h>
int main(void)
{
int a50 = 0, a20 = 0, a10 = 0, a5 = 0, a = 0;
for(a50 = 1; a50 < 10; a50++)
{
for(a20 = 1; a20 < 22; a20++)
{
for(a10 = 1; a10 < 43; a10++)
{
for(a5 = 1; a5 < 85; a5++)
{
if((a50*50 + a20*20 + a10*10 + a5*5) == 500)
{
a++;
printf("********\n");
printf("第%d次:\na50:%d\na20:%d\na10:%d\na5:%d\n", a, a50, a20, a10, a5);
}
}
}
}
}
printf("a = %d\n", a);
return 0;
}
|
//6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。例如若n为1000时,函数值应为:s=153.909064。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| #include <stdio.h>
#include <math.h>
int main(void)
{
int i = 0, n = 0, s = 0, out = 0;
float j = 0;
printf("请输入自然数:");
scanf("%d", &n);
for(i = 0; i < n; i++)
{
if(i % 3 == 0 && i % 7 == 0)
{
s += i;
}
}
printf("s = %d\nsqrt(s) = %f\n", s, sqrt(s));
return 0;
}
|
//7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #include <stdio.h>
#include <math.h>
int main(void)
{
int num = 0;
int i = 0, j = 0, k = 0, temp = 0;
for(i = 1; i < 10; i++)
{
for(j = 1; j < 10; j++)
{
if(i != j)
{
k = i*1000 + i*100 + j*10 + j;
for(temp = 1; temp < 9999; temp++)
{
if(k == temp * temp)
{
printf("%d\n", k);
}
}
}
}
}
return 0;
}
|
//8.输入1~10之间的一个数字,输出它对应的英文单词。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| #include <stdio.h>
int main(void)
{
int num = 0;
printf("输入1~10之间的一个数字:");
scanf("%d", &num);
switch(num)
{
case 1:
printf("one\n");
break;
case 2:
printf("two\n");
break;
case 3:
printf("three\n");
break;
case 4:
printf("four\n");
break;
case 5:
printf("five\n");
break;
case 6:
printf("six\n");
break;
case 7:
printf("seven\n");
break;
case 8:
printf("eight\n");
break;
case 9:
printf("nine\n");
break;
case 10:
printf("ten\n");
break;
default:
break;
}
return 0;
}
|
//9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
int main(void)
{
int i = 0, j = 0, temp = 0, out = 0;
for(i = 1; i < 10; i++)
{
for(j = 0; j < 10; j++)
{
temp = i*100 + j*10 + 3;
if(temp % 3 == 0 && temp % 5 != 0)
printf("%d\n", temp);
}
}
return 0;
}
|
//10.输入某年某月某日,判断这一天是这一年的第几天?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| #include <stdio.h>
int main(void)
{
int year = 0, month = 0, day = 0, days = 0, flag = 0;
printf("请输入 年.月.日:");
scanf("%d.%d.%d", &year, &month, &day);
flag = (!(year%4) && (year%100)) || !(year % 400);
if(flag == 1)
printf("这一年是闰年\n");
else
printf("这一年是平年\n");
switch(month)
{
case 12 : days += 31;
case 11 : days += 30;
case 10 : days += 31;
case 9 : days += 30;
case 8 : days += 31;
case 7 : days += 31;
case 6 : days += 30;
case 5 : days += 31;
case 4 : days += 30;
case 3 : days += 31;
case 2 : days += (28 + flag);
case 1 : days += day;
default : break;
}
printf("这一天是这一年的第%d天\n", days);
return 0;
}
|
//11.两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #include <stdio.h>
int main(void)
{
char i = '\0', j = '\0', k = '\0';
for(i = 'x'; i <= 'z'; i++)
{
for(j = 'x'; j <= 'z'; j++)
{
if(i != j)
{
for(k = 'x'; k <= 'z'; k++)
{
if(k != i && k!= j)
{
if((i != 'x') && (k != 'x') && (k != 'z'))
{
printf("a-%c\tb-%c\tc-%c\n", i, j, k);
}
}
}
}
}
}
return 0;
}
|
//12.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是10岁。请问第五个人多大?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #include <stdio.h>
int age(int n);
int main(void)
{
printf("%d\n", age(5));
return 0;
}
int age(int n)
{
int c = 0;
if(n == 1)
c = 10;
else
c = age(n-1)+2;
return c;
}
|
//13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构成)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <stdio.h>
int main(void)
{
int a = 0, b = 0, c = 0;
printf("请输入三角形的三条边a b c:");
scanf("%d %d %d", &a, &b, &c);
if((a+b)>c && (a+c)>b && (b+c)>a)
{
if((a==b) && (a==c) && (b==c))
printf("等边三角形\n");
else if((a==b) || (a==c) || (b==c))
printf("等腰三角形\n");
else
printf("任意三角形\n");
}
else
printf("不能构成三角形\n");
return 0;
}
|
//14.输入10个数,分别统计其中正数、负数、零的个数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| #include <stdio.h>
int main(void)
{
int arr[10] = {0};
int i = 0;
int a = 0, b = 0, c = 0;
printf("请输入10个数:");
for(i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
for(i = 0; i < 10; i++)
{
if(arr[i] < 0)
a++;
if(arr[i] > 0)
b++;
if(arr[i] == 0)
c++;
}
printf("小于零的个数:%d\n大于零的个数:%d\n等于0的个数:%d\n", a, b, c);
return 0;
}
|
//15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
int i = 0, out = 0;
srand(getpid());
for(i = 100; i < 1000; i++)
{
out = (rand() % 100 + 100);
if((out%3==0) && (out%5==0) && (out%7)==0)
printf("%d\n", out);
}
return 0;
}
|
//16.用for编程找出100~200中的完全平方数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #include <stdio.h>
#include <math.h>
int main(void)
{
int i = 0, j = 0;
for(i = 100; i <= 200; i++)
{
for(j = 1; j < i; j++)
{
if(j*j == i)
{
printf("j = %d\ti = %d\n", j, i);
}
}
}
return 0;
}
|
//17.从终端输入三个正实数,判断这三个数能否构成直角三角形。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #include <stdio.h>
int main(void)
{
int a = 0, b = 0, c = 0;
printf("请输入三个正实数:");
scanf("%d,%d,%d", &a, &b, &c);
if((a+b>c) && (a+c)>b && (b+c)>a)
{
printf("%d %d %d", a, b, c);
if((a*a+b*b==c*c) || (a*a+c*c==b*b) || (b*b+c*c==a*a))
printf("能够构成直角三角形\n");
}
return 0;
}
|
//18.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <stdio.h>
#include <string.h>
int main(void)
{
char c = '\0';
int spaces = 0, others = 0, words = 0, digits = 0;
printf("请输入字符:");
while((c = getchar()) != '\n')
{
if((c>=65 && c<=90) || (c>=97 && c<=122))
words++;
else if((c>=48 && c<=57))
digits++;
else if(c == ' ')
spaces++;
else
others++;
}
printf("words:%d\nspaces:%d\ndigits:%d\nothers:%d\n", words, spaces, digits, others);
return 0;
}
|
//19.输入一个字串,判断它是否是对称串。如”abcdcba”是对称串,”123456789”不是。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| #include <stdio.h>
#include <string.h>
int main(void)
{
char *p = NULL, *q = NULL;
char a[100] = {0};
int size = 0;
gets(a);
size = strlen(a)-1;
p = &a[0];
q = &a[size];
while(1)
{
if(*p != *q)
break;
else
{
p++;
q--;
}
}
if(p >= q)
printf("对称串\n");
else
printf("非对称串\n");
return 0;
}
|
//20.随机产生N个大写字母输出,然后统计其中共有多少个元音字符。(设N为50)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
int main(void)
{
int i = 0;
char c = 0;
int num = 0;
char arr[51] = {0};
srand(getpid());
while(1)
{
c = (rand() % 97) + 25;
if(c >= 97 && c <= 122)
{
arr[i] = c;
i++;
if(strlen(arr) == 50)
break;
}
}
for(i = 0; i < 51; i++)
{
if((arr[i]=='a') || (arr[i]=='e') || (arr[i]=='i') || (arr[i]=='o') || (arr[i]=='u'))
{
num++;
}
printf("%c\n", arr[i]);
}
printf("num = %d\n", num);
return 0;
}
|
//21.找出三位自然数中的所有素数,要求判断x素数用自定义函数data(x)实现。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
int main(void)
{
int i = 0, j = 0;
for(i = 2; i < 1000; i++)
{
for(j = 2; j < i; j++)
{
if(i % j == 0)
break;
}
if(i == j)
printf("%d\n", i);
}
return 0;
}
|
//22.输出n行由“#”组成的矩形,每行“#”的个数为m个,其中n、m由终端(键盘)输入。要求输出m个“#”功能由函数satr(m)函数实现。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <stdio.h>
void satr(int m);
int main(void)
{
int i = 0, j = 0;
int n = 0, m = 0;
printf("请输入n和m的值:");
scanf("%d,%d", &n, &m);
for(i = 0; i < n; i++)
{
satr(m);
}
}
void satr(int m)
{
int i = 0;
for(i = 0; i < m; i++)
printf("#");
printf("\n");
}
|
//23.若ax2+bx+c=0有实根,则求之。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| #include <stdio.h>
#include <math.h>
int main(void)
{
int x1 = 0, x2 = 0, x3 = 0;
int a = 0, b = 0, c = 0;
int deta = 0;
printf("请输入a,b,c的值:");
scanf("%d,%d,%d", &a, &b, &c);
deta = ((b*b) - 4*a*c);
if(deta < 0)
{
printf("无实根\n");
}
if(deta == 0)
{
printf("有一个实根\n");
x3 = -b + sqrt((deta/(2*a)));
printf("x3 = %d\n", x3);
}
if(deta > 0)
{
printf("有两个实根\n");
x1 = -b + sqrt((deta/(2*a)));
x2 = -b - sqrt((deta/(2*a)));
printf("x1 = %d\nx2 = %d\n", x1, x2);
}
return 0;
}
|
//24.从键盘输入两个字串,判断它们是否相同。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
#include <string.h>
int main(void)
{
char a[100] = {0};
char b[100] = {0};
int size_a = 0, size_b = 0;
printf("请输入两组字符串,回车换行:\n");
scanf("%s", a);
scanf("%s", b);
printf("a = %s\nb = %s\n", a, b);
if(strcmp(a, b) == 0)
printf("两个字串相同\n");
else
printf("两个字串不同");
return 0;
}
|
//25.从键盘输入两个字串,输出其中较短的那个字串,并输出它的长度。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
#include <string.h>
int main(void)
{
char a[100] = {0};
char b[100] = {0};
int size_a = 0, size_b = 0;
printf("请输入字串:\n");
scanf("%s", a);
scanf("%s", b);
size_a = strlen(a);
size_b = strlen(b);
size_a < size_b ? printf("a = %s\nsize_a = %d\n", a, size_a) : printf("b = %s\nsize_b = %d\n", b, size_b);
return 0;
}
|
//26.从键盘输入长度不等的两个字串,将短串连接于长串之后输出。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
#include <string.h>
int main(void)
{
char a[100] = {0};
char b[100] = {0};
int size_a = 0, size_b = 0;
printf("请输入两个长度不等的字串:\n");
scanf("%s", a);
scanf("%s", b);
size_a = strlen(a);
size_b = strlen(b);
size_a > size_b ? printf("%s\n", strcat(a, b)) : printf("%s\n", strcat(b, a));
return 0;
}
|
//27.从键盘输入长度不等的两个字串,将长串连接于短串之后输出。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
#include <string.h>
int main(void)
{
char a[100] = {0};
char b[100] = {0};
int size_a = 0, size_b = 0;
printf("请输入两个长度不等的字串:\n");
scanf("%s", a);
scanf("%s", b);
size_a = strlen(a);
size_b = strlen(b);
size_a < size_b ? printf("%s\n", strcat(a, b)) : printf("%s\n", strcat(b, a));
return 0;
}
|
//28.随机产生N个两位自然数,降序排列后输出。(设N为20)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
int i = 0, j = 0, temp = 0;
int arr[20] = {0};
srand(getpid());
for(i = 0; i < 20; i++)
{
arr[i] = rand() % 100;
}
for(i = 0; i < 19; i++)
{
for(j = 0; j < 19 - i; j++)
{
if(arr[j] < arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for(i = 0; i < 20; i++)
printf("%d ", arr[i]);
printf("\n");
return 0;
}
|
//29.从键盘输入两个字串,输出其中较长的那个字串,并输出它的长度。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
#include <string.h>
int main(void)
{
char a[100] = {0};
char b[100] = {0};
int size_a = 0, size_b = 0;
printf("请输入字串:\n");
scanf("%s", a);
scanf("%s", b);
size_a = strlen(a);
size_b = strlen(b);
size_a > size_b ? printf("a = %s\nsize_a = %d\n", a, size_a) : printf("b = %s\nsize_b = %d\n", b, size_b);
return 0;
}
|
//30.从键盘输入10个战士的身高,输出平均身高,并找出哪些身高低于平均身高。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <stdio.h>
int main(void)
{
int i = 0;
float average_hieght = 0;
int arr[10] = {0};
printf("请输入10个战士的身高:\n");
for(i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
average_hieght += arr[i];
}
average_hieght /= 10;
printf("average_hieght = %.2f\n", average_hieght);
for(i = 0; i < 10; i++)
{
if(arr[i] < average_hieght)
printf("arr[i] = %d\n", arr[i]);
}
return 0;
}
|
//31.从键盘输入10个战士的身高,输出平均身高,并找出哪些身高高于平均身高。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <stdio.h>
int main(void)
{
int i = 0;
float average_hieght = 0;
int arr[10] = {0};
printf("请输入10个战士的身高:\n");
for(i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
average_hieght += arr[i];
}
average_hieght /= 10;
printf("average_hieght = %.2f\n", average_hieght);
for(i = 0; i < 10; i++)
{
if(arr[i] > average_hieght)
printf("arr[i] = %d\n", arr[i]);
}
return 0;
}
|
//32.从键盘输入10个战士的身高,输出最高、最低的身高。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| #include <stdio.h>
int main(void)
{
int i = 0, j = 0, k = 0, temp = 0;
float average_hieght = 0, max_height = 0, min_height = 0;
int arr[10] = {0};
printf("请输入10个战士的身高:\n");
for(i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
average_hieght += arr[i];
}
average_hieght /= 10;
printf("average_hieght = %.2f\n", average_hieght);
for(i = 0; i < 9; i++)
{
k = i;
for(j = i + 1; j < 10; j++)
{
if(arr[j] < arr[k])
k = j;
}
if(i != k)
{
temp = arr[k];
arr[k] = arr[i];
arr[i] = temp;
}
}
max_height = arr[9];
min_height = arr[0];
printf("max_height = %.2f\nmin_height = %.2f\n", max_height, min_height);
return 0;
}
|
//33.“百钱百鸡”问题。百钱买百鸡,鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
int main(void)
{
int a = 0, b = 0, c = 0;
for(a = 0; a < 34; a++)
{
for(b = 0; b < 50; b++)
{
for(c = 0; c < 100; c++)
{
if(((a*3) + (b*2) + (c*1)) == 100)
printf("%d %d %d\n", a, b, c);
}
}
}
return 0;
}
|
//34.有三个小孩,一个比一个大2岁,已知其年龄之和为39,问这三个小孩各几岁?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #include <stdio.h>
int main(void)
{
int x = 0;
int x_up = 0, x_down = 0;
for(x = 1; x < 39; x++)
{
if(x + (x+2) + (x-2) == 39)
{
x_up = x + 2;
x_down = x - 2;
printf("x = %d\nx_up = %d\nx_down = %d\n", x, x_up, x_down);
}
}
return 0;
}
|
//35.键盘输入长方体的长宽高l、w、h,求其体积及表面积。要求用自定义函数val(l,w,h)计算长方体的体积和表面积,计算结果使用全局变量带回主函数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #include <stdio.h>
void val(int l, int w, int h);
int s = 0, v = 0;
int main(void)
{
int l = 0, w = 0, h = 0;
printf("请输入长方体的长,宽,高:\n");
scanf("%d,%d,%d", &l, &w, &h);
val(l, w, h);
printf("s = %d\nv = %d\n", s, v);
return 0;
}
void val(int l, int w, int h)
{
s = (l*w) + (l*h) + (w*h);
v = l * w * h;
}
|
//36.计算:1/2+1/4+……+1/n,设n是由键盘输入的正偶数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #include <stdio.h>
int main(void)
{
float a = 1, n = 0, out = 0;
float i = 0;
printf("请输入正偶数n:\n");
scanf("%f", &n);
for(i = 2; i <= n; i+=2)
{
out += a/i;
}
printf("out = %f\n", out);
return 0;
}
|
//37.计算:1/1+1/3+……+1/n,设n是由键盘输入的正奇数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #include <stdio.h>
int main(void)
{
float a = 1, n = 0, out = 0;
float i = 0;
printf("请输入正奇数n:\n");
scanf("%f", &n);
for(i = 1; i <= n; i+=2)
{
out += a/i;
}
printf("out = %f\n", out);
return 0;
}
|
//38.计算:1/2-2/3+3/4-4/5……,前100项。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <stdio.h>
int main(void)
{
float a = 1, b = 2, n = 0, out = 0;
int i = 0;
printf("请输入正奇数n:\n");
scanf("%f", &n);
for(i = 2; i <= n; i++)
{
if(i % 2 == 0)
{
out += a/i;
}
else
{
out -= a/i;
}
}
printf("out = %f\n", out);
return 0;
}
|
//39.有一个数组{1,4,80,23,47,76,14,52}。现输入一个数,要求按原来的规律将它插入数组中并从大到小输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| #include <stdio.h>
#include <string.h>
int main(void)
{
int arr[100] = {1, 4, 80, 23, 47, 76, 14, 52};
int size_arr = 0;
int i = 0, j = 0, temp = 0;
while(arr[size_arr])
size_arr++;
printf("请输入要插入的数:\n");
scanf("%d", &arr[size_arr]);
while(arr[size_arr])
size_arr++;
for(i = 0; i < size_arr - 1; i++)
{
for(j = 0; j < size_arr - 1 - i; j++)
{
if(arr[j] < arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for(i = 0; i < size_arr; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
|
//40.公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:甲说“乙没有偷,是丁偷的”, 乙说“我没有偷,是丙偷的”,丙说“甲没有偷,是乙偷的”,丁说“我没有偷”。请根据这四人的答话判断谁是盗窃者。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| #include <stdio.h>
int main(void)
{
int i = 0, a = 1, b = 0, c = 0, d = 0;
for(i = 0; i < 4; i++)
{
if((b+d)==1 && (b+c)==1 && (a+b)==1)
break;
else
{
if(i == 0)
{
a = 0;
b = 1;
}
if(i == 1)
{
b = 0;
c = 1;
}
if(i == 2)
{
c = 0;
d = 1;
}
}
}
if(i == 0)
printf("甲是窃贼\n");
if(i == 1)
printf("乙是窃贼\n");
if(i == 2)
printf("丙是窃贼\n");
if(i == 3)
printf("丁是窃贼\n");
return 0;
}
|
//41.求s=a+aa+aaa+aaaa+……+aa…a的值,其中a是1~9之间的一个数字,表达式项数从键盘输入(设不超过10项)。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #include <stdio.h>
int main(void)
{
int i = 0;
int n = 0, num = 0;
int temp = 0, sum = 0;
printf("请输入数值:\n");
scanf("%d,%d", &n, &num);
temp = num;
for(i = 0; i < n; i++)
{
sum += temp;
temp = temp*10+num;
}
printf("%d", sum);
return 0;
}
|
//42.设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:1234的反序数是4321。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| #include <stdio.h>
int main(void)
{
int i = 0;
int temp = 0;
int a = 0, b = 0, c = 0, d = 0;
int e = 0, f = 0, g = 0, h = 0;
for(i = 1000; i < 10000; i++)
{
a = i / 1000;
b = i % 1000 / 100;
c = i / 10 % 10;
d = i % 10;
temp = i*9;
e = temp / 1000;
f = temp % 1000 / 100;
g = temp / 10 % 10;
h = temp % 10;
if((a==h) && (b==g) && (c==f) && (d==e))
printf("%d\n", i);
}
return 0;
}
|
//43.爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问这条阶梯至少有多少阶?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
int main(void)
{
int n = 1;
while(1)
{
if((n%2)==1 && (n%3)==2 && (n%5)==4 && (n%6)==5 && (n%7)==0)
{
printf("%d\n", n);
break;
}
else
n++;
}
return 0;
}
|
//44.输入任意一行字符,降序排列之。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| #include <stdio.h>
#include <string.h>
int main(void)
{
int i = 0, j = 0, temp = 0;
char arr[100] = {0};
char c = 0;
int size_arr = 0;
printf("请输入一行字符:\n");
while((arr[i] = getchar()) != '\n')
{
i++;
}
size_arr = strlen(arr);
for(i = 0; i < size_arr - 1; i++)
{
for(j = 0; j < size_arr - 1 - i; j++)
{
if(arr[j] < arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(i = 0; i < size_arr; i++)
printf("%c ", arr[i]);
printf("\n");
return 0;
}
|
//45.输入一行字符串,按如下规则加密:如果是英文字母则大写变小写、小写变大写,对非英文字符则保持不变。试写加密程序。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #include <stdio.h>
int main(void)
{
int i = 0, j = 0;
char c[100] = {0};
printf("请输入字符串:\n");
while((c[i] = getchar()) != '\n')
{
i++;
}
for(j = 0; j < i; j++)
{
if((c[j]>='a') && c[j]<='z')
{
c[j] -= 32;
printf("%c", c[j]);
}
else if((c[j]>='A') && c[j]<='Z')
{
c[j] += 32;
printf("%c", c[j]);
}
}
return 0;
}
|
//46.输入一行小写英文字母,按如下规则加密:a→c、b→d、…、x→z、y→a、z→b,试写加密程序。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| #include <stdio.h>
int main(void)
{
int i = 0, j = 0;
char a[100] = {0};
int num = 0;
while((a[num] = getchar()) != '\n')
{
num++;
}
for(i = 0; i < num; i++)
{
if(a[i] < 120)
a[i] += 2;
else
a[i] -= 24;
}
for(i = 0; i < num; i++)
printf("%c", a[i]);
printf("\n");
return 0;
}
|
//47.输入一行英文,已知各单词之间用1个空格相隔(设第一个单词前没有空格),统计这行英文有多少个单词。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| #include <stdio.h>
int main(void)
{
int i = 0;
char arr[100] = {0};
int arr_num = 0;
int arr_sapces = 0;
printf("请输入一行英文:\n");
while((arr[arr_num] = getchar()) != '\n')
arr_num++;
for(i = 0; i < arr_num; i++)
{
if(arr[i] == ' ')
arr_sapces++;
}
arr_sapces++;
printf("arr_spaces = %d", arr_sapces);
return 0;
}
|
//48.求1+12+123+……前n项之和,其中n是从键盘输入的一个数字(1~9)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #include <stdio.h>
int main(void)
{
int n = 0;
int i = 0;
int sum = 0;
printf("请输入数字n:\n");
scanf("%d", &n);
for(i = 1; i <= n; i++)
{
sum += i;
}
printf("sum = %d\n", sum);
return 0;
}
|
//49.随机生成10道100以内的加减乘除数学题 回答正确的加10分错误不加分 然后显示成绩 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
int i = 0;
int a = 0, b = 0;
int right = 0, answer = 0;
int ch = 0;
srand(getpid());
for(i = 0; i < 10; i++)
{
a = rand() % 10;
b = rand() % 10;
ch = rand() % 4;
switch(ch)
{
case 0 :
printf("%d + %d = ", a, b);
break;
case 1 :
printf("%d - %d = ", a, b);
break;
case 2 :
printf("%d * %d = ", a, b);
break;
case 3 :
if(b == 0)
b = rand() % 10;
printf("%d / %d = ", a, b);
break;
}
if(ch == 0)
right = a+b;
else if(ch == 1)
right = a-b;
else if(ch == 2)
right = a*b;
else if(ch == 3)
right = a/b;
scanf("%d", &answer);
if(answer == right)
printf("回答正确\n");
else
printf("回答错误\n");
printf("正确答案:%d\n", answer);
printf("**************\n");
}
return 0;
}
|
//50.有1000发子弹 要提前装道10箱子里面,接收键盘输入,要取多少颗子弹数,只能显示整箱的个数,问这10个箱子怎么装(定义一个数组10个元素,分别装子弹的个数,比如取走100发子弹 程序运行结果,比如2箱)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| #include <stdio.h>
int main(void)
{
int arr[10] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 489};
int num = 0;
int i = 0;
printf("请录入要取走的子弹数:\n");
scanf("%d", &num);
for(i = 9; i >= 0; i--)
{
if(arr[i] <= num)
{
printf("arr[%d] = %d\n", i, arr[i]);
num -= arr[i];
}
}
return 0;
}
|
*/