C语言程序设计习题参考答案.docx
- 文档编号:12714295
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:34
- 大小:343.82KB
C语言程序设计习题参考答案.docx
《C语言程序设计习题参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题参考答案.docx(34页珍藏版)》请在冰豆网上搜索。
C语言程序设计习题参考答案
C语言程序设计习题参考答案
习题1
一、填空题
1.C语言符号集包括
答案:
26个英文字母、10个阿拉伯数字(0,1,2,……,9)和其它特殊符,以运算
符为主(+,-,*,/,=,%,<,>等)。
2.一个C程序有且仅有一个
答案:
一个多个
答案:
main()
5.C语言源程序的语句分隔符是
答案:
;二、单项选择题
1.以下不是C语言特点的是(
A)C语言简洁、紧凑
C)C语言可以直接对硬件进行操作
答案:
B
2.
以下不正确的C语言标识符是(
3.
答案:
D
答案:
A
5.在C程序中,main()的位置(
答案:
C
voidmain()
{intnuml,num2,num3;
printf("Inputthefirstintegernumber:
");scanf("%d",&numl);
printf("Inputthesecondintegernumber:
");scanf("%d",&num2);
printf("Inputthethreeintegernumber:
");scanf("%d",&num3);
A)必须作为第一个函数
Printf("max=%d\n",maxmax((numl,num2),num3));
}
voidmain()
{inta,b,c,d,max;
printfC'PIeaseinputthreenuber:
");scanf("%d%d%d",&a,&b,&c);d=(a>b?
a:
b);
max=(d>c?
d:
c);printf("%d\n",max);
}或:
voidmain()
{inta,b,c,max;
printf("PIeaseinputthreenuber:
");scanf("%d%d%d",&a,&b,&c);
if(a>b&&a>c)
if(b>a&&b>c)
if(c>a&&c>b)
printf("%d\n",max);
}
习题2
、填空题
答案:
31
2.定义intx,y,执行y=(x=l,++x,x+2);语句后,y的值是答案:
4
3.设intx=9,y=8;表达式x==y+1的结果是答案:
1
4.设inta=l,b=2,c=3,d:
执行d=!
(a+b+c)后,d的结果是答案:
0
5.设intx;当x值分别为1、2、3、4时,表达式(x&1==1)?
1:
0的值分别
是
答案:
1010
6.执行下列语句后,a的值是
inta=12:
a+=a-=a*a;
答案:
-264
7.执行下列语句后,z的值是
intx=4,y=25,z=2;
z=(--y/++x)*z--;答案:
7
&执行下列语句后,a,b,c的值分别是
intx=10,y=9;
inta,b,c;
a=(--x==y++)?
--x:
++y;b=x++;c=y;
答案:
8810
9.以下程序的执行结果是
#include
intn;
n=((int)f)%3;
printf("n=%d\n",n);
答案:
1
10.以下程序的执行结果是
#include
{inta,b,x;
x=(a=3,b=a--);
printf("x=%d,a=%d,b=%d\n",x,a,b);
}
答案:
x=3,a=2,b=3
11.如下程序的执行结果是
#include
voidmain()
{
intn=l;
printf("%d%d%d\n",n,++n,n--);
答案:
111
二、选择题
答案:
B
inti=0,J=0;
inti=1,j=0;j=i=((i=3)*2);
C.
inti=0,j=1;(j==1)?
(i=1):
(i=3);
inti=1,j=1;i+=j+=2;
答案:
D
答案:
A.0
B.
3
C.2
D.1
答案:
A
6.逗号表达式
(a=3*5,
a*4),
a+15的值为(
),a的值为(
)。
(1)
A.15
B.60
C.30
D.不正确
(2)
A.60
B.30
C.15
D.90
答案:
CC
答案:
A
答案:
答案:
答案:
DBA
答案:
A
答案:
A
chara=3,b=6,c;
c=aAb<<2;
答案:
A
答案:
A
答案:
17.设有整型变量a,实型变量f,双精度型变量X,则表达式10+'b'+x*f的值的类型为()。
答案:
D
答案:
A
21.当a=3,b=2,c=1时,表达式f=a>b>c执行完后f的值是()。
答案:
B
习题3
、填空题
1.若定义floatx=1.23444355;则”rintf(%f\n”x);"的输出结果为
答案:
1.234444
答案:
"stdio.h"
3.设a=3,b=4,c=5,若有语句"seanf(a=%d:
b=%d,c=%d",&a,&b,&c);",则正确的输入格式
为
答案:
a=3:
b=4,c=5
4.设已说明
inti=65,j=66;
charch1='A',ch2=''
则执行下列与剧组的输出结果为:
printf(%d,%d,%c,%c”,j,ch1,ch2);printf(%c,%c,%d,%d”,j,ch1,ch2);
答案:
65,66,A,BA,B,65,66
5.设有语句scanf(%c%c%c”&c1,&c2,&c3);,若c1,c2,c3的值分别为a,b,c,则正确的输入方法为
答案:
abc
6.请写出下面程序的输出结果:
#include
voidmain()
{
inta=5,b=7;
floatx=67.8564,y=-789.124;
charc=‘A'
longn=1234567;
%d%d\n”a,b);%3d%3d\n”a,b);
%f,%f\n”x,y);%-10f,%-10f\n”x,y);
unsignedu=65535;
printf(
printf(
printf(
printf(
%e,%10.2e\n”x,y);%c,%d,%o,%x\n”c,c,c,c);%ld,%lo,%x\n”,n,n,n);%u,%o,%x,%d\n'',u,u,u);%s,%5.3s\n”"computer”"computer”;
printf("%8.2f,%8.2f,%.4f,%.4f,%3f%3f\n",x,y,x,y,x,y);
printf(
printf(
printf(
printf(
printf(
}
答案:
寅G:
Win-TC\proiects^noname*exe
57
67,856400,-789.124023
£7.856400,-789*124023
67.66,-789.12,67.e5t4,-739.1240,t7.8E&400-?
09.124033[1234567,4553207.dfiO?
fe5535,177777,ffff,2fc44
conputei*,com
二、选择题
1.能正确定义整型变量a和b并为他们赋初值5的语句是(
A.a=b=5
B.inta,b=5;
C.inta=b=5;
D.inta=5,b=5;
答案:
D
charc1-a',c2-c';
printf("%d%c",c2-c1,c2-'a'+'c');
A.2,mB.3,E
C.2.ED.格式控制与输出项不一致。
结果不确定。
答案:
C
main()
{
inta=5;
printf("%d\n",(a=3*5,a*4,a+5));
}
B.20
D.10
A.65
C.15
答案:
B
A.123.0B.678.0C.45.678D.45.0
答案:
D
main()
{
doubled;floatf;longm;intI;
I=f=m=d=20/3;
printf("%d%ld%.lf%.lf\rr,l,m,f,d);
}
main()
{charch1,ch2;
ch仁'A'+'5'-3;
ch2='A'+'6'-3;
printf("%d%c\rr,ch1,ch2);}
C.B,C
D.C,D
答案:
A
习题4
一、单项选择题
1.
)。
if(a=
if(a<=b)z=x+y;
下列合法的if语句是(intx,y,z,a,b;)(
A.if(a=b)z=x+y;B.
C.if(a<>b)z=x+y;
答案:
D
2.
)。
—个switch结构的各case后面的“常量表达式”的值是(
B.必须互不相同
D.无所谓相同与不相同
A.可以相同
C.一定相同
答案:
B
3.有下列程序段:
inta=2;
if
(1)a=a+2;
printf("%d",a);
输出结果是()
A.0
C.2
答案:
AC
4.if语句后面的“表达式”可以是()
A.关系表达式B.逻辑表达式
C.整型D.字符型
答案:
ABCD
三、判断题
switch语句后面的“表达式”的类型只能是整型或
1.在switch语句的一般表达式中,实型。
答案:
2.在
答案:
switch语句中,每遇到一次错
case,就要进行一次条件判断。
3.if
答案:
4.if
答案:
语句的嵌套位置是固定的错
语句的嵌套层数越多越好。
错
只能在else之后。
5.switch结构中的多个case子句可以共用同一语句(集)。
答案:
对
四、阅读程序
1.下面程序输入2后,执行结果为
#include
voidmain(){
chara;
printf("请输入一个数:
”);
scanf("%d",&a);
switch(a){
case1:
printf("A\n”);break;
case2:
printf("B\n");
case3:
printf("C\n");
case4:
printf("D\n");
case5:
printf("E\n");break;default:
printf("error\n");
}
答案:
B
C
D
E
2•下面程序的执行结果为
#include
{
intb=1,a;if(!
b)a=10;elsea=20;
printf("a=%d\rT’a);
}
答案:
a=20
3.输入20,40,30后,下面程序执行结果为
#include
voidmain()
{
inta,b,c,m;
printf("inputthreenumbers(a,b,c):
");scanf("%d,%d,%d",&a,&b,&c);if(a>b)
m=a;
else
m=b;
if(m m=c; printf("m=%d\n",m); } m=40 答案: 5.下程序的输出结果是 #include { intx=5,y; if(x>2)y=x; elseif(x<2)y=2*x; elsey=4*x;printf("y=%d\n",y); } 答案: y=5 6.输入d,A,5后,下面程序执行结果为 #include { charc; printfC'pleaseinputaalphabet(c): ");scanf("%c",&c); if(('a'<=c)&&(c<='z')) { c=c-32; printf("%c",c); } elseif(('A'<=c)&&(c<='Z')) { c=c+32; printf("%c",c); } else printf("error! "); } 答案: D 7.分析以下程序的运行结果,然后上机测试一下,看实际运行结果与自己的分析运行 结果是否一致。 若不一致,要仔细分析其中的原因。 (1)#includestdio.h” voidmain(){ inta=10; if(a++>11)printf(%d”,a);elseprints%d",a--); } ;实际运行结果: 分析运行结果: 错误原因: _ 答案: 11(执行if后表达式判断不成立,然后对a加1使a=11,执行else子句先打印结果后减1,所以实际运行结果11) (2)#includestdio.h” voidmain() { inttemp=2; switch(temp) case1: prints case2: pnntf( case3: pnntf(case4: pnntf(default: pnntf( { "%d\n”,++temp);break; “%d\n”,++temp); “%d\n”,temp--);break; “%d\n”,temp--); “%d\n”,temp); } } ;实际运行结果: 分析运行结果: 错误原因: 答案: 3 3 五、编程题 1.编写一个程序,输入三个整数,按降序输出。 答案: #include"stdio.h"voidmain() { floatx,y,z,temp; printf("PIeaseinputthreenumber: \n");scanf("%f,%f,%f",&x,&y,&z);if(x { temp=x; x=y;y=temp; }if(x }if(y { temp=y; y=z;z=temp; } printf("Thesequenceis: %3.1f,%3.1f,%3.1f\n",x,y,z);} /*x和y的比较互换操作*/ /*x和z的比较互换操作*/ /*y和z的比较互换操作*/ 2.输入一个不多于4位的正整数,要求如下: (1)求出它是几位数; (2)输出每一位数 答案: #inelude"stdio.h" voidmain() { intm,b=0,n=0; printfC'PIeaseinputanumber: \n");scanf("%d,",&m); if(m) {printf("%5d",m%10); m=m/10; b=b+1;} if(m) {printf("%5d",m%10);m=m/10; b=b+1;} if(m) {printf("%5d",m%10);m=m/10; b=b+1;} if(m) {printf("%5d",m%10);m=m/10; b=b+1;} printf("\nThebitis: %d",b);} 3.有函数如下: 2 X+2x+5 XcO且xH—2 5x+1 X>5 其它 编程实现: 当输入X的值,输出y值 答案: #include"stdio.h" voidmain() { floatx,y; printfC'PIeaseinputanumber: \n"); scanf("%f,",&x); y=2; if(x>5)y=5*x+1; if(x<0&&x! =-2.0)y=x*x+2*x+5; printf("%f",y); } 4. s提成,年销售总额超过1万元 提成7% 提成6%提成5% 比如某销售人员的年销售总额为 10万元按7%提成,50万 某公司销售员工的年终奖根据该员工的年销售总额才提成,超过部分提成比例如下: 1万 10万 s>50万元(包括50万元) 注: 超过部分是指后一级相对于前面级的超过部分, 70万元,排出不提成的1万元,剩下69万元按如此计算奖金: 元按6%提成,9万元按5%提成。 编程实现: 根据员工的年销售总额s计算其年终奖。 答案: #include"stdio.h"voidmain() { longv; floaty; printf("Pleaseinputasalesvolume: \n");scanf("%ld,",&v); if(v>10000&&vv=100000) y=(v-10000)*0.07; if(v>100000&&vv=500000)y=(90000)*0.07+(v-100000)*0.06; if(v>500000)y=(90000)*0.07+(400000)*0.06+(v-500000)*0.05; printf("Thebonusif%f",y); } 、选择题 (1)在循环结构的循环体中执行break语句,其作用是( 结束本次循环,进行下次循环 B) 继续执行break语句之后的循环体中各语句 (2)以下程序运行结果是( main() {inta[]={2,4,6,8,10},y=1,x;for(x=0;x<3;x++)printf(%d\n”,y); } B)18 D)20 A)17 C)19 答案: C (3)若inti;则以下循环语句的循环执行次数是( for(i=2;i==0;)printf(%d”,i--); A)无限次B)0次 D)2次 答案: D ⑷下面程序的输出结果为( voidmain() {inti; for(i=100;i<200;i++) { if(i%5==0)continue;printf(%d\n”);break; } } A)100 C)无限循环 101 无输出结果 答案: B ⑸以下程序的输出结果是( voidmain() {inti,k,a[10],p[3];k=5; for(i=0;i<10;i++) for(i=0;i<3;i++) for(i=0;i<3;i++)printf("%d\n",k); } A)20 答案: B a[i]=i; p[i]=a[i*(i+1)];k+=p[i]*2; B)21 C)22 D)23 (6)有如下程序: voidmain() {inti,sum; for(i=1;i<=3;sum++)sum+=i; prints%d\n”,sum); } 该程序的执行结果是( A)6B)3 答案: C C) 死循环 D)0 (7)有以下程序段: intk=0; while(k=1)k++; while循环执行的次数是( A)无限次 C)一次也不执行 答案: C B)有语法错,不能执行 D)执行1次 三、程序填空题 1,其它元素值为: <行下标>—<列下标>+1。 1.以下程序显示如下所示的矩阵,矩阵中每个元素形成的规律是: 右上三角阵(含对角线)元素为 voidmain() {inti,j,a[5][5]; for(i=0;i<=4;i++) for(j=0;j<5;j++) if()a[i][j]=1; else=i-j+1; for(i=0;i<5;i++) {for(j=0;j<5;j++)printf(%3d”,a[i][j]); printf(\h”); } } 答案: i<=j voidprint(intn,intaa[]) {inti; for(i=1;i<=n;i++) {printf(%6d”aa[i]);if(! (i%5))printf(\h”; } printf(Vn”); } 答案: 54 3.输出9*9口诀。 #include"stdio.h"voidmain() {inti,j,result; printf("\n"); for(i=1;i<10;i++) {for(j=1;j<10;j++) {result=; printf("%d*%d=%-3d",i,j,result);/*-3d} printf("\n");/*每一行后换行*/ } } 答案: i*j 表示左对齐,占3位*/ 4.古典问题: 有一对兔子,从出生后第 第三个月后每个月又生一对兔子,假如兔子都不死, 3个月起每个月都生一对兔子,小兔子长到问每个月的兔子总数为多少? voidmain() {longf1,f2; inti; f1=f2=1; for(i=1;i<=20;i++) {printf("%12ld%12ld",f1,f2);if(i%2==0)printf("\n"); f1= } } 答案: f1+f2 f2= f1+f2 5.将一个正整数分解质因数。 例如: 输入voidmain() {intn,i; printf("\npleaseinputanumber: \n"); scanf("%d",&n); printf("%d=",n); for(i=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)