成都大学C语言考试编程题及答案.docx
- 文档编号:17493735
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:28
- 大小:21.36KB
成都大学C语言考试编程题及答案.docx
《成都大学C语言考试编程题及答案.docx》由会员分享,可在线阅读,更多相关《成都大学C语言考试编程题及答案.docx(28页珍藏版)》请在冰点文库上搜索。
成都大学C语言考试编程题及答案
成都大学C语言考试试题
1、从键盘中输入一个大写字母,要求改用小写字母输出
#include
voidmain()
{
charc1,c2;
c1=getchar();
printf(“%c,%d\n”,c1,c1);
c2=c1+32;
printf(“%c,%d\n”,c2,c2);
}
2、编程求1+2+3+…+100的值,并输出结果
#include"stdio.h"
voidmain()
{
inti,sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf("\nsum=%d",sum);
}
3、用递归方法求n!
。
#include
voidmain()
{
floatfac(intn);
intn;
floaty;
printf("inputanintegernumber:
");
scanf("%d",&n);
y=fac(n);
printf("%d!
=%10.0f\n",n,y);
}
floatfac(intn)
{floatf;
if(n<0){printf("n<0,dataerror!
");}
elseif(n==0\\n==1)f=1;
elsef=fac(n-1)*n;
return(f);
}
4、将一个数组中的值按逆序重新存放。
例如,原来顺序为8,6,4,3,2,0。
要求改为0,2,3,4,6,8。
#include
#definenum6
voidmain()
{inti,j,t,a[6]={8,6,4,3,2,0};
printf("outputprimcrydate:
");
for(i=0;i<6;i++)
printf("%2d",a[i]);
printf("\n");
for(i=0,j=5;i {t=a[i];a[i]=a[j];a[j]=t;} printf("outputtheinversedate: "); for(i=0;i<6;i++) printf("%2d",a[i]); } 5、输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。 #include voidmain() { floatc,F; printf("Pleaseinput: "); scanf("%f",&F); c=5.0/(9.0*(F-32)); printf("%5.2f",c); } 6、写一个函数,求两个整数中的较大者,用主函数调用这个函数,并输出结果, #include voidmain() { intmax(intx,inty); inta,b,c; scanf("%d,%d",&a,&b) c=max(a,b); printf("maxis%d",c); } intmax(intx,inty) { intz; z=x>y? x: y; return(z); } 7、有三个整数a,b,c,由键盘输入,输出其中最大者。 #include voidmain() { inta,b,c,max; printf(“Pleaseinput: a,b,c: \n”); scan(“%d,%d,%d”,&a,&b,&c); max=a; if(max if(max printf(“%d\n”,max); } 9、有一个3乘4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。 #include voidmain() {inti,j,row=0,colum=0,max; inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; max=a[0][0]; for(i=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]>max) (max=a[i][j]; row=i; colum=j; ) printf("max=%d,row=%d,colum=%d\n",max,row,colum);} 10、有一函数: 当x<0时,y=-1;当x=0时,y=0;当x>0时,y=1。 编一程序,输入x的值,输出y的值. #include voidmain() { intx,y; printf(“pleaseinputx: ”); scanf(“%d”,&x); if(x<0) {y=-1; printf(“x=%d,y=%d\n”,x,y);} elseif(x=0) {y=0; printf(“x=%d,y=%d\n”,x,y);} else {y=1; printf(“x=%d,y=%d\n”,x,y);} } 11、输入三角形的三边长,求三角形面积。 求三角形面积的公式为area=s(s-a)(s-b)(s-c),其中s=(a+b+c)/2 #include #include voidmain() { floata,b,c,s,area; scanf(“%f,%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s); printf(“area=%7.2f\n”,area); } 12、输入两个正整数m和n,求其最大公约数和最小公倍数。 #include voidmain() { intp,r,m,n,temp; printf("Pleaseenter2nums: "); scanf("%d%d",&n,&m); if(n { temp=n; n=m; m=temp; } p=n*m; while(m! =0) { r=n%m; n=m; m=r; } printf(": %d\n",n); printf(": %d\n",p/n); } 13、编程判断整数m是否是素数,并输出结果 #include #incldue voidmain() { intm,i,k; scanf("%d",&m); k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>k) printf("%disaprimenumber\n",m); else printf("%disnotaprimenumber\n",m); } 14、有5个人坐在一起,问第5个人多少岁? 他说比第4个人大2岁。 问第4个人多少岁? 他说比第3个人大2岁。 问第3个人多少岁? 他说比第2个人大2岁。 问第2个人多少岁? 他说比第1个人大2岁。 最后问第1个人,他说是10岁。 请问的第5个人多大。 用递归方法解决该问题。 #include intage(intn) { intc; if(n==1)c=10; else c=age(n-1)+2; return(c); } voidmain() { printf("theageofNo.fivepeopleis: %d\n",age(5)); } 15、将一个二维数组行和列的元素互换,存到另外一个二维数组中。 #include voidmain() { staticinta[2][3]={{1,2,3},{4,5,6}}; staticintb[3][2]; inti,j; printf("arraya: \n"); for(i=0;i<=1;i++){ for(j=0;j<=2;j++){ printf("%5d",a[i][j]); b[j][i]=a[i][j]; } printf("\n"); } printf("arrayb: \n"); for(i=0;i<=2;i++) { for(j=0;j<=1;j++) printf("\n"); } } 16、有一函数: 当x<1时,y=|x|;当1<=x<10时,y=2x-1;当x>=10时,y=3x+11。 编一程序,输入x的值,输出y的值. #include #include voidmain() {intx,y; printf(“pleaseinputx: ”); scanf(“%d”,&x); if(x<1) y=abs(x); elseif(x<10) y=2*x-1; else y=3*x+11; printf("x=%d,y=%d\n",x,y); } 17、输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。 然后输出最后得到的字符。 #include voidmain() { charch; scanf("%c",%ch); ch=(ch>='A'&&ch<='Z')? (ch+32): ch; printf("%c\n".ch); } 18、输入两个实数,将这两个数按由大到小的顺序排列,并输出这两个数。 #include voidmain() {floata scanf("%f%f",&a,%b); if(a { t=a;a=b;b=t; } printf("%5.2f,%5.2f\n",a,b); } 19水仙数 #include voidmain() { inti,j,k,n; printf("narcissusnumbersare"); for(n=100;n<100;n++) { i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf("%5d",n); } printf("\n"); } 20编程求圆面积,圆周长。 要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。 #include voidmain() { floatr,l,s; floatpi=3.1415926; printf("r: "); scanf("%f",&f); l=2*pi*r; s=pi*r*r; printf("l=%6.2f\n",l); printf(s=%6.2f\n",s); } 21编程求圆柱体积,圆柱表面积。 要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字 #include voidmain() { floatr,h,v,s; floatpi=3.1415926; printf("r,h: "); scanf("%f<%f",&r,&h); v=pi*r*r*h; s=2*pi*r*r+2*pi*r*h; printf("v=%6.2f\n",v); printf("s=%6.2f\n".s); } 1.5请参照本章例题,编写一个C程序,输出以下信息: ************ VeryGoodj! ************ 解: main() { printf("************\n"); printf("\n"); printf("VeryGood! \n"); printf("\n"); printf("************\n"); } 1.6编写一个程序,输入abc三个值,输出其中最大者。 解: main() {inta,b,c,max; printf("请输入三个数a,b,c: \n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max max=b; if(max max=c; printf("最大数为: %d",max); } 第三章 3.3请将下面各数用八进制数和十六进制数表示: (1)10 (2)32(3)75(4)-617 (5)-111(6)2483(7)-28654(8)21003 解: 十八十六 (10)=(12)=(a) (32)=(40)=20 (75)=(113)=4b (-617)=(176627)=fd97 -111=177621=ff91 2483=4663=963 -28654=110022=9012 21003=51013=520b 3.5字符常量与字符串常量有什么区别? 解: 字符常量是一个字符,用单引号括起来。 字符串常量是由0个或若干个字符 而成,用双引号把它们括起来,存储时自动在字符串最后加一个结束符号'\0'. 3.6写出以下程序的运行结果: #include voidmain() { charc1='a',c2='b',c3='c',c4='\101',c5='\116'; printf("a%cb%c\tc%c\tabc\n",c1,c2,c3); printf("\t\b%c%c\n",c4,c5); 解: 程序的运行结果为: aabbccabc AN 3.7将"China"译成密码.密码规律: 用原来的字母后面第4个字母代替原来的字母, 例如,字母"A"后面第4个字母是"E",用"E"代替"A".因此,"China"应译为"Glmre".请编一程序,用赋初值的议程使c1,c2,c3,c4,c5分别变成'G','1','m','r','e',并输出. main() {charc1="C",c2="h",c3="i",c4='n',c5='a'; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 3.8例3.6能否改成如下: #include voidmain() { intc1,c2;(原为charc1,c2) c1=97; c2=98; printf("%c%c\n",c1,c2); printf("%d%d\n",c1,c2); } 解: 可以.因为在可输出的字符范围内,用整型和字符型作用相同. 3.9求下面算术表达式的值. (1)x+a%3*(int)(x+y)%2/4=2.5(x=2.5,a=7,y=4.7) (2)(float)(a+b)/2+(int)x%(int)y=3.5(设a=2,b=3,x=3.5,y=2.5) 3.10写出下面程序的运行结果: #include voidmain() { inti,j,m,n; i=8; j=10; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n); } 解: 结果: 9,11,9,10 第4章 4.4.a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'.想得 到以下的输出格式和结果,请写出程序要求输出的结果如下: a=3b=4c=5 x=1.200000,y=2.400000,z=-3.600000 x+y=3.60y+z=-1.20z+x=-2.40 u=51274n=128765 c1='a'or97(ASCII) c2='B'or98(ASCII) 解: main() { inta,b,c; longintu,n; floatx,y,z; charc1,c2; a=3;b=4;c=5; x=1.2;y=2.4;z=-3.6; u=51274;n=128765; c1='a';c2='b'; printf("\n"); printf("a=%2db=%2dc=%2d\n",a,b,c); printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z); printf("x+y=%5.2fy=z=%5.2fz+x=%5.2f\n",x+y,y+z,z+x); printf("u=%6ldn=%9ld\n",u,n); printf("c1='%c'or%d(ASCII)\n",c1,c2); printf("c2='%c'or%d(ASCII)\n",c2,c2); } 4.5请写出下面程序的输出结果. 结果: 57 57 67.856400,-789.123962 67.856400,-789.123962 67.86,-789.12,67.856400,-789.123962,67.856400,-789.123962 6.785640e+001,-7.89e+002 A,65,101,41 1234567,4553207,d687 65535,17777,ffff,-1 COMPUTER,COM 4.6用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a', 问在键盘上如何输入? main() { inta,b; floatx,y; charc1,c2; scanf("a=%db=%d,&a,&b); scanf("x=%fy=%e",&x,&y); scanf("c1=%cc2=%c",&c1,&c2); } 解: 可按如下方式在键盘上输入: a=3b=7 x=8.5y=71.82 c1=Ac2=a 4.7用下面的scanf函数输入数据使a=10,b=20,c1='A',c2='a',x=1.5,y=-3.75,z=57.8,请问 在键盘上如何输入数据? scanf("%5d%5d%c%c%f%f%*f%f",&a,&b,&c1,&c2,&y,&z); 解: main() { inta,b; floatx,y,z; charc1,c2; scanf("%5d%5d%c%c%f%f",&a,&b,&c1,&c2,&x,&y,&z); } 运行时输入: 1020Aa1.5-3.75+1.5,67.8 4.8设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积,用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字.请编程. 解: main() { floatpi,h,r,l,s,sq,vq,vz; pi=3.1415926; printf("请输入圆半径r圆柱高h: \n"); scanf("%f,%f",&r,&h); l=2*pi*r; s=r*r*pi; sq=4*pi*r*r; vq=4.0/3.0*pi*r*r*r; vz=pi*r*r*h; printf("圆周长为: =%6.2f\n",l); printf("圆面积为: =%6.2f\n",s); printf("圆球表面积为: =%6.2f\n",sq); printf("圆球体积为: =%6.2f\n",vz); } 4.9输入一个华氏温度,要求输出摄氏温度,公式为C=5/9(F-32),输出要有文字说明,取两位小数. 解: main() { floatc,f; printf("请输入一个华氏温度: \n"); scanf("%f",&f); c=(5.0/9.0)*(f-32); printf("摄氏温度为: %5.2f\n",c); } 第五章逻辑运算和判断选取结构 5.4有三个整数a,b,c,由键盘输入,输出其中最大的数. main() { inta,b,c; printf("请输入三个数: "); scanf("%d,%d,%d",&a,&b,&c); if(a if(b printf("max=%d\n",c); else printf("max=%d\n",b); elseif(a printf("max=%d\n",c); else printf("max-%d\n",a); } 方法2: 使用条件表达式. main() {inta,b,c,termp,max; printf("请输入A,B,C: "); scanf("%d,%d,%d",&a,&b,&c); printf("A=%d,B=%d,C=%d\n",a,b,c); temp=(a>b)? a: b; max=(temp>c)? temp: c; printf("A,B,C中最大数是%d,",max); } 5.5main() {intx,y; printf("输入x: "); scanf("%d",&x); if(x<1) {y=x; printf("X-%d,Y=X=%d\n",x,y); } elseif(x<10) {y=2*x-1; printf("X=%d,Y=2*X-1=%d\n",x,y); } else {y=3*x-11; printf("X=5d,Y=3*x-11=%d\n",x,y); } } 5.81.if语句 main() {longi; floatbonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; bon2=100000*0.075+bon1; bon4=200000*0.05+bon2; bon6=200000*0.03+bon4; bon10=400000*0.015+bon6; printf("请输入利润"); scanf("%ld",&i); if(i<=le5) bonus=i*0.1; elseif(i<2e5) bonus=bon1+(1-100000)*0.075; elseif(i<=4e5) bonus=bon2+(i-200000)*0.05; elseif(i<=6e5) bonus=bon4+(i-400000)*0.03; elseif(i<=le6) bonus=bon6+(i-600000)*0.015; else bonus=bon10+(i-1000000)*0.01; printf("奖金是%10.2f",bonus); } 用switch语句编程序 main() {longi; floatbonus,bon1,bon2,bon4,bon6,bon10; intbranch; bon1=100000*0.1; bon2=bon1+100000*0.075
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 成都 大学 语言 考试 编程 答案