2024年6月15日发(作者:)
序号
1.
请编写程序,输出1~1000之间能被11整除且个位数为5的所有整数。
#include
int main()
{
}
int i;
printf("所有的整数有:n");
for(i=5;i<1000;i+=10)
if(i%11==0)
printf("%4d ",i);
return 0;
2. 有3个整数a,b,c,由键盘输入,输出其中最大的数。
#include
int main()
{
}
3. 从键盘任意输入一个4位正整数x,编程计算x的每一位上的数字相加
之和。例如:输入x为1234,则输出结果为10。
#include
int main()
{ int x;
int a,b,c,max;
printf("请输入三个整数,中间用空格隔开:n");
scanf("%d%d%d",&a,&b,&c);
if(a
max=b;
else
max=a;
if(max max=c; printf("最大的数是:"); printf("%d",max); return 0; printf("请输入一个四位整数 x:n"); scanf("%d",&x); printf("所有位数之和 是: %d",x/1000+x%1000/100+x%1000%100/10+x%10); return 0; } 4. 编程输出100~1000之间所有个位数字与十位数字之和对10求余等于 百位数字的数。例如:835,(3+5)%10=8。 #include int main() { int i; printf("所有的数为:n"); for(i=100;i<1000;i++) if((i%100/10+i%10)%10==i/100) printf("%5d",i); return 0; } 5. 编程判断用户输入的m是否为素数,已知0和1不是素数。 #include int main() { int a , i ; printf("请输入一个整数:"); scanf("%d", &a); for(i = 2; i < (a/2 + 1); i++) { if(a % i == 0) { printf("%d不是一个素数!n", a); return 0;//跳出整个函数 } } printf("%d是一个素数!n", a); return 0; } 6. 选取出100以上1000以内所有个位数字与十位数字之和被10除所得 余数恰是百位数字的素数(如293,(9+3)%10==2 并且293是素 数)。计算并输出上述这些素数的个数以及这些素数值的和。 #include int main() { int i,k,j,n=0,sum=0; bool flag; //bool只有true和false两种值 for(i=100;i<=1000;i++) { flag=true; //定义变量flag为真 for(j=2;j { if (i%j==0) flag=false; //bool两种情况 :①不是素数为 false②素数为true } if(((i%10+i/10%10)%10==i/100%10) && flag==true) { n++; sum+=i; } } printf("符合条件整数的个数是:%d个n",n); printf("素数总和是:%d",sum); return 0; } 7. 计算1+1/2+1/3+1/4+…+1/99+1/100的值并输出结果。 #include int main() { int i; double sum=0; for(i=1;i<=100;i++) {sum+=1.0/i;} //注意是1.0 printf("%f",sum); return 0; } 8. 计算1-1/2+1/3-1/4+…+1/99-1/100+…,直到最后一项的绝对值小 于10 -4 为止。 #include int main() { } 9. 输入一行不大于80个字符的字符串,统计其中小写字母的个数并输出 结果。 #include int main() { { if(str[i]>='a'&&str[i]<='z') x++; int i,x=0; char str[80]; printf("请输入字符串:"); scanf("%s",str); int i = 1, s = 1; double sum = 0, e; do { e = 1.0 / i; sum += e * s; s = -s; //改变符号,正负交替 i++; } printf("总和是:%fn", sum); return 0; while (e > 1e-4); for(i=0;str[i]!='0';i++) } } 10. 假如我国国民生产总值的年增长率9%,计算10后我国民生产总值与现 在比增长的百分比。计算公式为:公式p=(1+r) n ,r为年增长率,n为年 数,p为与现在相比的倍数。 #include #include int main() { printf("十年后增长的百分比:p=%f",pow(1+0.09,10.0)); } 11. 编程计算1-100之间所有的偶数的和。 #include int main() { int i,sum=0; for(i=1;i<=100;i++) { } 12. 韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数:按 从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个 士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再 按从1至11报数,最末一个士兵报的数为10。请编程计算韩信至少有 多少兵。 #include int main() { if(i%2==0) } return 0; sum+=i; printf("所有的偶数之和是: %d",sum); return 0; printf("小写字母的个数是: %d个",x); return 0; } 13. int i; for(i=10;;i++) if(i%5==1 && i%6==5 && i%7==4 &&i%11==10) { printf(" 韩信至少有: %d个兵n",i);break; } return 0; 用户输入一个三位正整数,编程输出该数的个位、十位、百位,例如: 输入356,输出6,5,3。 #include int main() { } int x,b,c,d; printf("请输入一个三位数:n"); scanf("%d",&x); b=x%10; c=x/10%10; d=x/100; printf("逆序输出是:%2d %2d %2dn",b,c,d); return 0; 14. 请编程计算圆锥体的体积。已知圆锥体的底面直径和高均为10 CM,圆 锥体体积计算公式为:V=(1/3)*S*h, S是圆锥的底面积,h是圆锥的 高。 #include int main() { double d=0.1,h=0.1,pi=3.14,s; s=pi*(d/2.0)*(d/2.0); printf("圆锥的体积是 %f立方米",(1.0/3)*s*h); return 0; } 15. 根据用户从键盘输入的三角形三边长度a,b,c,计算该三角形的面积。若 用户输入的三条边不能构成三角形,则直接输出信息:“不能构成三角 形!”。 提示: 1.构成三角形的三条边应满足条件:任意两条边的和均大于第三边; 2.已知三角形的三条边长,计算三角形面积的海伦公式为: ,其中p=(a+b+c)/2 #include #include int main() { int a,b,c ; double p; printf("请输入三条边:"); scanf("%d%d%d",&a,&b,&c); if(a+b<=c||a+c<=b||b+c<=a) {printf("不能构成三角形!");} else { p=(a+b+c)/2.0; printf("面积是: %f",pow(p*(p-a)*(p-b)*(p-c),1/2.0)); } return 0; } 16. 请编写程序,输出50~100之间能被7或11整除,但不能同时被7和 11整除的所有整数。 #include int main() { int i; printf("符合条件的整数有: "); for(i=50;i<=100;i++) if(( i%7==0 || i%11==0 ) && (!( i%7==0 && i%11==0 ))) printf("%5d",i); return 0; } 17. 某铁桶厂应客户要求定做一批铁桶,客户给出了铁桶的规格,高30cm, 半径10cm,共订做1500个铁桶。计算出所需的原材料。(注意:铁桶 包含一个底面和侧面) #include int main() { } 18. 编写程序,从键盘输入x,y的值,利用系统库函数求x y 的值。例如: 输入x,y的值分别是2,3,则输出结果为:8 #include #include int main() { double x,y; printf("请输入x,y的值:"); scanf("%lf%lf",&x,&y); printf("%f",pow(x,y)); return 0; } 19. 设圆半径r=1.5,圆柱高h=3,求圆柱体积,圆柱表面积。用scanf() 输入数据,输出计算结果。输出时要有说明,结果取小数点后两位数字。 (圆柱体积计算公式:底面积*高) #include int main() { double r,h,pi=3.14,v,s; printf("请输入半径和高:"); scanf("%lf%lf",&r,&h); v=pi*r*r*h; s=2*pi*r*h+2*pi*r*r; float s,r,h; int n; printf("请输入数据r,h,n,u。空格隔开:n"); scanf ("%f%f%d",&r,&h,&n); s=3.14*r*h*2+3.14*r*r; s=s*n; printf("所需材料的面积为:%.2fn",s/10000); return 0; printf("圆柱体积是:%.2fn",v); printf("圆柱表面积是:%.2f",s); return 0; } 20. 从键盘上输入一个小写字母,把它转变为大写字母再输出。 #include int main() { char ch; printf("请输入一个小写字母:"); scanf("%c",&ch); ch=ch-32; printf("对应的大写字母是;%c",ch); return 0; } 21. 编写程序输出Fibonacci数列中前20个数,Fibonacci数列的前两个 数为1,1,以后每一个数都是前两个数之和。 #include int main () { } 22. 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插 入数组中。 #include int main() { int f1=1,f2=1,i; for (i=0;i<=20;i++) { } return 0; printf("%12d%12d",f1,f2); f1=f1+f2; f2=f2+f1; printf("n"); } 23. int a[6]={9,27,52,69,88}; int i,t; printf("原数列是:"); for(i=0;i<5;i++) printf("%5d",a[i]); printf("请输入一个整数:"); scanf("%d",&a[5]); for(i=0;i<5;i++) if(a[i]>a[5]) {t=a[i];a[i]=a[5];a[5]=t;} printf("插入后的排序结果是:"); for(i=0;i<6;i++) printf("%5d",a[i]); printf("n"); return 0; printf("n"); 键盘任意输入10个不相同的整数,然后,输入要查找的数x,如果在这 10个数中找到x,则打印“Found!”;如果找不到,则打印“Not found!”。 #include int main() { int a[10],i,x; printf("请输入10个不相同的整数:"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("请输入要查找的数:"); scanf("%d",&x); for(i=0;i<10;i++) { if(a[i]==x) { printf("Found!"); return 0;//跳出整个函数 } } printf("Not found!"); } 24. 由用户输入一个包含10个元素的整型数组,将其中的元素逆序排列后, 输出逆序后的数组。例如:原数组:1,2,3,4,5,6,7,8,9,10,逆序排列后 的数组:10,9,8,7,6,5,4,3,2,1 #include int main() { } 25. 有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求找 出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此 数”。例如:原数组内容是15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,若 用户输入10,则输出“0是数组中第6个元素”,若用户输入16,则输 出“无此数”。 #include int main() { int a[15]={1,2,3,4,5,6,7,8,9,12,15,18,20,24,28}; int i,x; printf("原数列是:n"); for(i=0;i<15;i++) printf("%4d",a[i]); printf("n"); int a[10],i; printf("请输入十个整数:"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("逆序输出是:"); printf("%d ",a[i]); return 0; return 0; for(i=9;i>=0;i--) printf("请输入数组中的一个数:"); scanf("%d",&x); for(i=0;i<15;i++) { if(a[i]==x) {printf(" %d是数组中第%d个元素",x,i+1); return 0;//跳出整个函数 } } printf("无此数"); } 26. 有一分数序列: return 0; 23581321 ,,,,,...... 1235813 , 求出这个数列的前10项之和。 #include int main() { int f1=1,f2=1,num=0,sum=0,i; printf("前十项是:n"); for(i=0;i<10;i++) { printf("%4d",f2); num=f1+f2; sum+=f2; f1=f2; f2=num; } printf("n前十项之和是:sum=%dn",sum); return 0; } 27. 编写程序,从键盘输入某班10位学生的成绩(成绩均为float型数据), 对成绩进行由高到低排序,并输出排序结果。 #include int main() { } 28. 从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不 相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg 和abceef,则输出为-1。 #include int main ( ) { char str1[100],str2[100]; int i,s; printf("n Input string 1:n"); gets(str1); printf("n Input string 2:n"); gets(str2); for(i=0;;i++) { if(str1[i]==str2[i]) continue; float a[10],t; int i,j; printf("请输入十个学生的成绩:"); for(i=0;i<10;i++) scanf("%f",&a[i]); printf("n"); for(i=0;i<9-j;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} for(j=0;j<9;j++) printf("成绩从高到低依次是:n"); for(i=9;i>=0;i--) printf("%f ",a[i]); printf("n"); return 0; 29. else break; } s=str1[i]-str2[i]; printf("第一个不相同字符的ASCII码之差是:%dn",s); return 0; } 求一维数组a中所有元素的平均值。例如,当一维数组a中的元素为: 10,4,2,7,3,12,5,34,5,9程序的输出应为:The averge is:9.10. #include int main() { } float a[10],average,sum=0.0; int i; printf("请输入十个数字:"); for(i=0;i<10;i++) { scanf("%f",&a[i]); sum+=a[i]; } average=sum/10; printf("The average is:%.2f",average); return 0; 30. 求一维数组a中的最小元素及其下标。例如,当一维数组a中的元素为: 1,4,2,7,3,12,5,34,5,9,程序的输出应为:The min is:1,pos is:0 #include int main() { int a[10]={58,100,5,15,46,3,75,32,1,25}; int i,pos=0; int min=a[0]; for(i=0;i<10;i++) { if(a[i] {min=a[i]; pos=i;} } printf("The min is:%d,pos is:%d",min,pos); return 0; } 31. 编程计算一球从100米高度自由落下,每次落地后反跳回原高度的一半; 再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? #include int main() { float sn=100.0,hn=sn/2; int n; for(n=2;n<=10;n++) { sn=sn+2*hn; hn=hn/2; } printf("第10次落地时,共经过: %f米n",sn); } 32. 从键盘任意输入某班10个学生的成绩,输出最高分并统计出不及格人 数。 #include int main() { float a[10],max=a[0]; int i,n=0; printf("请输入十个学生的成绩:"); for(i=0;i<10;i++) { scanf("%f",&a[i]); if(a[i]>max) max=a[i]; if(a[i]<60) n++; printf("第10次反弹:%f米n",hn); return 0; } printf("最高分为:%.2f",max); printf("n不及格的人数有:%d个",n); return 0; } 33. 让用户从键盘输入一个年份,判断该年份是否是闰年。判断闰年的条件 是:年份被4整除不能被100整除,或者被400整除 #include int main () { int n; printf("请输入一个年份:"); } 34. 有一个函数 scanf("%d",&n); if(n%400==0 || (n%4==0 && n%100 !=0)) printf("%d是闰年n",n); printf("%d不是闰年",n); else return 0; x1 x y 2 x 1 (1x10) 3 x 11 (x10) 写程序,输入x的值,输出y相应的值。 #include int main() { float x,y; printf("请输入x的值:"); scanf("%f",&x); } 35. if(x<1) {y=x;} if(x>=1&&x<10) {y=2*x-1;} if(x>=10) {y=3*x-11;} printf("y=%.2f",y); return 0; 在学生成绩管理中,经常要将成绩的百分制转换成对应的等级制。90分 以上为A等,80-89为B等,70-79为C等,60-69分为D等,其余 为E等。编写程序,根据输入的百分制成绩,输出对应的等级。 #include int main() { } float i; printf("请输入一个成绩:"); scanf("%f",&i); switch((int)i/10) { case 10: case 9: printf("An"); } return 0; break; break; break; break; case 8: printf("Bn"); case 7: printf("Cn"); case 6: printf("Dn"); default: printf("En"); 36. 从1开始做自然数的累加,当其累加和超过1000的时候,共计累加了 多少数?当时的累加和是多少? #include int main () { } 37. 百钱买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只1元。用 100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只? #include int main() { } 38. 某歌手大赛,共有10个评委打分,分数采用百分制整数,去掉一个最 高分,去掉一个最低分,然后取平均分,得到歌手的成绩,编程实现。 #include int main() { int x,y,z; printf("可能的结果有:n"); for (x=0;x<=20;x++) for (y=0;y<=33;y++) { z=100-x-y; if (z%3==0&&(5*x+3*y+z/3==100)) } return 0; for(i=1;s<=1000;i++) { s+=i; n++; } printf("累加了:n=%d个n累加和是:s=%dn",n,s); return 0; int i,s=0,n=0; printf("公鸡=%2d,母鸡=%2d,小鸡=%2dn",x,y,z); int i,a[10]; float sum=0,aver,max,min; printf("请输入十个分数:"); for(i=0;i<10;i++) { scanf("%d",&a[i]); sum+=a[i]; } max=a[9],min=a[0]; for(i=0;i<10;i++) { if(a[i]>max) max=a[i]; if(a[i] min=a[i]; } aver=(sum-max-min)/8; printf("aver is :%f",aver); return 0; } 39. 给一个不多于5位的正整数,要求: 1. 求y出它是几位数并分别输出每一位数字; 2. 按逆序输出各位数字,例如原数为321,应输出123。 #include #include int main() { char a[20]; int j,k,m; scanf("%s",a); j=strlen(a); printf("这个数字是%u位数!n",j); printf("从最高位输出各个位数依次是:"); for(k=0;k<(int)j;k++) printf("%2c,",a[k]); printf("n逆序为:"); for(m=0;m<(int)j;m++) printf("%c,",a[j-m-1]); return 0; } 40. 编写程序,将一个3行2列的二维数组的行和列元素互换,存到另一个 2行3列的二维数组中,并输出其结果。 #include int main () { } 41. 写一个函数transposition,使给定的一个3X3的二维整型数组转置, 即行列互换void transposition(int x[3][3]) int a[3][2]={{1,2},{3,4},{5,6}}; int b[2][3],i,j; printf("array:an"); for(i=0;i<=2;i++) { } for(i=0;i<=1;i++) { } return 0; for(j=0;j<=2;j++) printf("%5d",b[i][j]); for(j=0;j<=1;j++) { } printf("%5d",a[i][j]); b[j][i]=a[i][j]; printf("n"); printf("array b:n"); printf("n"); #include int x[3][3]={1,2,3,4,5,6,7,8,9}; int transposition(int i,int t) { int j; for(i=0;i<3;i++) for(j=i;j<3;j++) { t=x[i][j]; x[i][j]=x[j][i]; x[j][i]=t; } return x[j][i]; } int main() { int i,j,t; printf("原数列是:n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%3d",x[i][j]); printf("n"); } printf("转置后的矩阵为:n"); x[j][i]=transposition(i,t); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%3d",x[i][j]); printf("n"); } return 0; } 42. 编程完成下述功能:从键盘输入一个4行4列矩阵的各元素的值,求出 该矩阵两条对角线上各元素值之和并输出结果。 #include int main() { } 43. 请编写程序,由用户输入不大于80个字符的字符串tt,用户输入要删除 的字符x,删除tt中所有值为x的元素,输出执行删除操作前、后的数 组。例如:输入字符串为 I love LinYi University,输入x的值为’i’, 则删除后字符串值为:I love LnY Unversty #include int main() { char tt[80],x; int i,j; printf("请输入一行字符串 :"); gets(tt); printf("原字符串是: "); puts(tt); printf("输入你想删除的字母 : "); x=getchar(); for(i=0;tt[i]!='0';i++) if(tt[i]==x) { int a[4][4],n=4,i,j,s=0; printf("请输入四乘四的数据用空格分开:n "); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i s+=(a[i][i]+a[i][n-1-i]); printf("两条对角线的和是:%dn",s); printf("两条对角线的和是:%dn",s-a[(n-1)/2][(n-1)/2]); return 0; if(n%2==0) else for(j=i;tt[j]!='0';j++) tt[j]=tt[j+1]; } printf("n删除%c后的字符串为:n%s",x,tt); return 0; } 44. 请编写程序,输入8个整数放入一维数组w中,将其中的最小值与数组 中第一个元素交换,最大值与最后一个元素交换,输出交换后的数组。 #include int main() { int w[8],max,min,maxpos=0,minpos=0,i; int t,m; printf("输入八个数字:n"); for(i=0;i<8;i++) { scanf("%d",&w[i]); } min=w[0];max=w[0]; for(i=0;i<8;i++) { if(w[i]>max) { max=w[i]; } { min=w[i]; } } t=w[maxpos]; w[maxpos]=w[7]; w[7]=t; maxpos=i; if(w[i] minpos=i; } 45. m=w[minpos]; w[minpos]=w[0]; w[0]=m; printf("调换后的结果是:n") ; for(i=0;i<8;i++) printf("%4d",w[i]); return 0; 请编写程序,用户输入不大于80个字符的字符串str,在str中找出最 大的字符,并将该字符前的所有字符向后移动一位(第一个字符不变), 请输出原字符串与变化后的字符串。例如:用户输入的字符串为 abcdgef. 移动后:aabcdef #include #include int main() { char str[80],b; int i,j,L,big=0; printf("请输入一行字符串:n"); scanf("%s",str); printf("原字符串是: %sn",str); L = strlen(str); for (i=1;i if (str[i] > str[big] ) big=i;str[i]=str[big]; for (i=big;i>0;i--) str[i]=str[i-1]; str[L]='0'; printf("变化后的字符串是: %sn",str); return 0; } 46. 请编写程序,其功能是调用自定义函数MyInt求实数的小数部分。例如, 对于3.1415926,函数返回0.141593。 #include double b; int MyInt(double x) { b=x-(int)x; return b; } int main() { double x; printf("请输入一个实数:"); scanf("%lf",&x); MyInt(x); printf("小数部分为:%lf n",b); return 0; } 47. 请编写程序,其功能是调用函数isprime判断一个整数是否为素数。若 是素数,则函数返回1,否则返回0。 #include int isprime(int m); int main() { } int isprime(int m) { int i; if(m<2)return 0;
发布评论