C语言习题参考答案缩小版.docx
- 文档编号:6938621
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:29
- 大小:36.41KB
C语言习题参考答案缩小版.docx
《C语言习题参考答案缩小版.docx》由会员分享,可在线阅读,更多相关《C语言习题参考答案缩小版.docx(29页珍藏版)》请在冰豆网上搜索。
C语言习题参考答案缩小版
附录D习题参考答案
习题1答案习题1答案略。
习题2答案
一、选择题
1.A2.C3.D4.C5.B6.A7.B8.B9.C10.D
二、程序分析题
1.1,65,1.5,6.52.163.c,1004.4.0000005.10,26.-27.38.k=11,k=13,k=b
三、填空题
1.62.scanf(%d,%d,%d:
&i,&j,&k);3.7.0000004.0405.6.6
6.ch=C,i=67,f1=67.00,db=67.007.20,408.n1=%d\nn2=%d\n9.-3
10.x=1,y=2,z=2
x=1,y=3,z=3
x=2,y=1,z=1
四、编程题
2.从键盘输入一个大写字母,要求改用小写字母输出。
main()
{charc1;
scanf("%c",&c1);
printf("%c",c1+32);
}
1.编写一个求立方的宏,其中数值要求可以输入任意整数。
#include"stdio.h"
#defineSQR(n)((n)*(n)*(n))
main()
{inti,j;
scanf("%d",&i);
j=SQR(i);
printf("求得的立方是%d\n",j);
4.输入一个华氏温度,要求输出摄氏温度,公式为c=5/9(F-32),其中F代表华氏温度,c代表摄氏温度,输出要求有文字说明,取2位小数。
main()
{floatx,y;
scanf("%f",&x);
y=5.0/9*(x-32);
printf("所求得的摄氏温度为:
%5.2f\n",y);
}
}
3.输入三角形的三边长要求是整数,求三角形的周长。
main()
{intx;
scanf("%d,%d,%d",&x,&y,&z);
printf("周长是:
%d\n",c);
}
习题3答案
一、选择题
1.B2.A3.D4.A5.D6.B
二、填空题
1.x=-x或x=abs(x);2.m%i==03.continue4.switch(c)5.x>=0
三、程序改错题答案略
四、程序分析题
1.432.10,4,33.164.235.226.6
7.0.18.a=2,b=19.210.7
2.输入10个整数,统计并输出正数、负数和零的个数。
main()
{intx,zs=0,fs=0,zr=0,i;
printf("input10integerdata:
");
for(i=1;i<=10;i++)
{scanf("%d",&x);
if(x>0)zs++;
elseif(x==0)zr++;
elsefs++;
}
printf("zs=%dfs=%dzr=%d\n",zs,fs,zr);
}
五、编程题。
1.输入三个单精度数,输出其中最小值。
main()
{floatx,y,z,min;
printf("inputthreefloatnumbers:
");
scanf("%f%f%f",&x,&y,&z);
if(x elsemin=y; if(min>z)min=z; printf("min=%f\n",min); }_ 3.输入三角形的三边长,输出三角形的面积。 #include"math.h" 4.输入两个正整数,输出它们的最大公约数和最小公倍数。 main() {inta,b,maxgy,mingb; printf("inputtwointegerdata: "); scanf("%d%d",&a,&b); maxgy=a a: b; while(a%maxgy! =0||b%maxgy! =0)maxgy--; mingb=a>b? a: b; while(mingb%a! =0||mingb%b! =0)mingb++; printf("maxgy=%dmingb=%d\n",maxgy,mingb); } main() {floata,b,c,s,area; printf("inputthreeedges: "); scanf("%f%f%f",&a,&b,&c); if((a+b>c)&&(b+c>a)&&(c+a>b)) {s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%.2f\n",area); } else printf("Notriangle\n"); } 6.用switch~case结构编写一程序,输入月份1~12后,输出该月的英文名称。 5.用if~else结构编写一程序,求一元二次方程ax2+bx+c=0的根。 #include"math.h" main() {floata,b,c,disk,x1,x2; scanf("%f%f%f",&a,&b,&c); disk=b*b-4*a*c; if(disk>=0) {x1=(-b+sqrt(disk))/(2*a); x2=(-b-sqrt(disk))/(2*a); printf("x1=%f\nx2=%f\n",x1,x2); } else {printf("x1=%f+%f*i\n",-b/(2*a),sqrt(-disk)/(2*a)); printf("x2=%f-%f*i\n",-b/(2*a),sqrt(-disk)/(2*a)); } } #include"stdio.h" main() {intmonth; charch; while (1) {printf("\ninputmonth(1-12): "); scanf("%d",&month); switch(month) {case1: printf("January\n");break; case2: printf("February\n");break; case3: printf("March\n");break; case4: printf("April\n");break; case5: printf("May\n");break; case6: printf("June\n");break; case7: printf("July\n");break; case8: printf("August\n");break; case9: printf("September\n");break; case10: printf("October\n");break; case11: printf("November\n");break; case12: printf("December\n");break; default: printf("inputerror\n"); } getchar(); printf("\ncontinue? (Y/N): "); ch=getche(); if(ch! ='y'&&ch! ='Y')break; } }_ 8.打印出所有的“水仙花数”。 所谓“水仙花数”是指一个三位数,其各位数的立方和等于该数本身。 如: 153=13+53+33,则153是一个水仙花数。 main() {inti,j,k; for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) if(i*i*i+j*j*j+k*k*k==i*100+j*10+k) printf("%8d",i*100+j*10+k); } 7.求Sn=a+aa+aaa+…+aa…a(最后一项为n个a)的值,其中a是一个数字。 如: 2+22+222+2222+22222(此时n=5),n的值从键盘输入。 main() {inta,n,i; floats=0,result=0; printf("inputa(1-9): "); scanf("%d",&a); printf("inputn: "); scanf("%d",&n); for(i=1;i<=n;i++) {s=s*10+a; result+=s; } printf("\nresult=%f\n",result); 10.编程序按下列公式计算e的值(精度要求为 <10-6)。 … main() {floati,s=1,sum=0; i=1; while(1/s>=1e-6) {sum+=1/s; i++; s*=i; } printf("e=%f\n",sum+1); }_ } 9.计算 。 main() {floatsum=0,i; for(i=1;i<=100;i++) if(i<=50) sum+=1/i+1/(i*i); else sum+=1/i; printf("sum=%f\n",sum); } 11.编程序按下列公式计算y的值(精度要求为 <10-6)。 12.有一篮子苹果,两个一取余一,三个一取余二,四个一取余三,五个一取刚好不剩,问篮子至少有多少个苹果? main() {inttotal=5; while(total%2! =1||total%3! =2||total%4! =3) total+=5; printf("total=%d\n",total); } main() {floati,s=2,sum=0; i=1; while(1/s>=1e-6) {sum+=1/s; i++; s=i*i+1; } printf("sum=%f\n",sum); }_ 习题4答案 一、选择题 1.D2.C3.A4.C5.D6.C7.D8.D9.C10.D 11.B12.B13.A14.C15.B16.B 二、程序分析题 1.192.33.194.2558 5.***** ***** ***** ***** ***** 三、程序填空题 1.k=i 2.strlen(str)-1 3.n%base 4.s[i]+=a[i+j] 5.scanf("%s",a); 6.9 7.g.i=4142 g.s[0]=42 g.s[1]=41 g.s=1 四、编程题 1.输入10个整型数并存入一维数组,要求输出值和下标都为奇数的元素个数。 main() 2.有5个学生,每个学生有四门课程,将有不及格课程的学生成绩输出。 main() {inta[5][4]={{78,87,93,65}, {66,57,70,86}, {69,99,76,76}, {78,59,87,90}, {90,67,97,87}}; inti,j,k; for(i=0;i<5;i++) for(j=0;j<4;j++) if(a[i][j]<60) {printf("%4d",i+1); for(k=0;k<4;k++) printf("%4d",a[i][k]); printf("\n"); break; } } {inta[10],i,num=0; printf("enterarraya: \n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) if(i%2==1&&a[i]%2==1)num++; printf("num=%d\n",num); }_ _ 3.从键盘上输入一个字符串,统计字符串中的字符 个数。 不允许使用求字符串长度函数strlen()。 #include"stdio.h" main() {charstr[81],*p=str; intnum=0; printf("inputastring: \n"); gets(str); while(*p++)num++; printf("length=%d\n",num); }_ 4.在n个数中查找某一个数。 #defineN5 5.矩阵转置 #defineN4 main() {inti,j,a[N][N],t; for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i for(j=0;j {t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;} for(i=0;i { for(j=0;j printf("%4d",a[i][j]); printf("\n"); }getch(); } main() {inta[N],i,x; printf("input%dnumbers: \n",N); for(i=0;i scanf("%d",&a[i]); printf("inputxtolookfor: "); scanf("%d",&x); for(i=0;i if(a[i]==x) { printf("find: %ditisa[%d]\n",x,i); exit(0); } printf("%dnotbeenfound.\n",x); } 6.输入一行字符,将其中的小写字母转换为大写字 母,其余字符不变。 #include"stdio.h" main() {charc[81]; inti; for(i=0;(c[i]=getchar())! =’\n’;i++); c[i]=’\0’; for(i=0;c[i]! =’\0’;i++) { if(c[i]>=’a’&&c[i]<=’z’) c[i]-=32; printf("%c",c[i]); } } 7.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。 #include"stdio.h" main() {charstr[81],c,i; intword=0,num=0; gets(str); for(i=0;(c=str[i])! ='\0';i++) 8.输入3个复数的实部和虚部放在一个结构体数组中,根据复数的模由小到大顺序对数组进行排序并输出。 (注: 复数的模=sqrt(实部*实部+虚部*虚部)) #include"math.h" main() {structcomplex {floatx; floaty; floatm; }a[N],t; inti,j,k;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 参考答案 缩小