C习题参考答案第2版.docx
- 文档编号:5987352
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:29
- 大小:46.81KB
C习题参考答案第2版.docx
《C习题参考答案第2版.docx》由会员分享,可在线阅读,更多相关《C习题参考答案第2版.docx(29页珍藏版)》请在冰豆网上搜索。
C习题参考答案第2版
C语言程序设计习题参考答案
习题1
一、填空题
1.C语言符号集包括。
答案:
26个英文字母、10个阿拉伯数字(0,1,2,……,9)和其它特殊符,以运算符为主(+,-,*,/,=,%,<,>等)。
2.一个C程序有且仅有一个函数。
答案:
main()
3.一个C源程序有个main()函数和个其他函数。
答案:
一个多个
4.C语言程序的执行是从开始执行的。
答案:
main()
5.C语言源程序的语句分隔符是。
答案:
;
二、单项选择题
1.以下不是C语言特点的是( )。
A)C语言简洁、紧凑B)能够编制出功能复杂的程序
C)C语言可以直接对硬件进行操作D)C语言移植性好
答案:
B
2.以下不正确的C语言标识符是( )。
A)ABC B)abc C)a_bcD)ab.c
答案:
D
3.以下正确的C语言标识符是( )。
A)%xB)a+bC)a123D)test!
答案:
C
4.一个C程序的执行是从( )。
A)main()函数开始,直到main()函数结束
B)第一个函数开始,直到最后一个函数结束
C)第一个语句开始,直到最后一个语句结束
D)main()函数开始,直到最后一个函数结束
答案:
A
5.在C程序中,main()的位置( )。
A)必须作为第一个函数B)必须作为最后一个函数
C)可以任意D)必须放在它所调用的函数之后
答案:
C
6.一个C程序是由( )。
A)一个主程序和若干个子程序组成B)一个或多个函数组成
C)若干过程组成D)若干子程序组成
答案:
B
7.C语言源程序的基本单位是( )。
A)过程B)函数C)子程序D)标识符
答案:
B
三、编程题
1.请参照本章例题,编写一个C程序,从键盘上输入圆的半径,求圆的面积、周长和以此半径所组成的球的体积。
答案:
voidmain()
{floatr,s,l,v,pi=3.;
printf("Pleaseinputaradius:
");
scanf("%f",&r);
s=pi*r*r;
l=2*pi*r;
v=4.0/3.0*pi*r*r*r;
printf("%f,%f,%f\n",s,l,v);
}
2.编写一个C程序,输入45、21、60三个数,输出其中最大者。
答案:
intmax(intx,inty)
{retum(x>y?
x:
y);}
voidmain()
{intnuml,num2,num3;
printf("Inputthefirstintegernumber:
");
scanf("%d",&numl);
printf("Inputthesecondintegernumber:
");
scanf("%d",&num2);
printf("Inputthethreeintegernumber:
");
scanf("%d",&num3);
printf("max=%d\n",maxmax((numl,num2),num3));
}
或:
voidmain()
{inta,b,c,d,max;
printf("Pleaseinputthreenuber:
");
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("Pleaseinputthreenuber:
");
scanf("%d%d%d",&a,&b,&c);
if(a>b&&a>c)max=a;
if(b>a&&b>c)max=b;
if(c>a&&c>b)max=c;
printf("%d\n",max);
}
习题2
一、填空题
1.表达式10/3的结果是 ,表达式10%3的结果是 。
答案:
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
8.执行下列语句后,a,b,c的值分别是、、。
intx=10,y=9;
inta,b,c;
a=(--x==y++)?
--x:
++y;b=x++;c=y;
答案:
8810
9.以下程序的执行结果是。
#include
voidmain()
{floatf=13.8;
intn;
n=((int)f)%3;
printf("n=%d\n",n);
}
答案:
1
10.以下程序的执行结果是。
#include
voidmain()
{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
二、选择题
1.以下结果为整数的表达式(设有inti;charc;floatf;)( )。
A.i+f B.i*cC.c+fD.i+c+f
答案:
B
2.以下不正确的语句(设有intp,q)是( )。
A.p*=3;B.p/=q;C.p+=3;D.p&&=q;
答案:
D
3.以下使i的运算结果为4表达式是( )。
A.inti=0,J=0;
B.inti=1,j=0;j=i=((i=3)*2);
C.inti=0,j=1;(j==1)?
(i=1):
(i=3);
D.inti=1,j=1;i+=j+=2;
答案:
D
4.设charch;以下正确的赋值语句是( )。
A.ch='123';B.ch='\xff';C.ch='\08';D.ch="\";
答案:
C
5.设n=10,i=4,则值运算n%=i+1执行后,n的值是( )。
A.0B.3C.2D.1
答案:
A
6.逗号表达式(a=3*5,a*4),a+15的值为( ),a的值为( )。
(1) A.15B.60C.30 D.不正确
(2) A.60B.30 C.15D.90
答案:
CC
7.如果a=1,b=2,c=3,d=4,则条件表达式a
a:
c c: d的值为( )。 A.1B.2C.3D.4 答案: A 8.设intn=3;则++n的结果是( ),n结果是( )。 A.2B.3C.4D.5 答案: CC 9.设intn=3;则n++的结果是( ),n结果是( )。 A.2B.3C.4D.5 答案: CC 10.设inta=2,b=2,则++a+b的结果是( ),a的结果是( ),b的结果是( )。 A.2B.3C.4D.5 答案: DBA 11.设intm=l,n=2,则m++==n的结果是( )。 A.0B.1C.2D.3 答案: A 12.设a=2,b;则执行b=a==! a;语句后,b的结果是( )。 A.0 B.1C.2D.3 答案: A 13.设有以下语句,则c的二进制值是( )。 chara=3,b=6,c; c=a^b<<2; A.B.C. D. 答案: A 14.sizeof(double)是一个( )表达式。 A.整型 B.双精度C.不合法D.函数调用 答案: A 15.编辑程序是( )。 A.建立并修改程序 B.将C源程序编译成目标程序 C.调试程序D.命令计算机执行指定的操作 答案: A 16.C编译程序是( )。 A.C程序的机器语言版本B.一组机器语言指令 C.将C源程序编译成目标程序的程序D.由制造厂家提供的一套应用软件 答案: C 17.设有整型变量a,实型变量f,双精度型变量x,则表达式10+'b'+x*f的值的类型为()。 A.intB.floatC.doubleD.不能确定 答案: C 18.若有intk=5;flaotx=1.2;则表达式(int)(x+k)的值是()。 A.5B.6.2C.7D.6 答案: D 19.下面对变量赋初值正确的是()。 A.inta=b=c=1;B.inta=1,b=c=2;C.inta=1,b=1,c=1;D.inta=b=1,c=2; 答案: C 20.设有以下语句: inta=3,b=6,c;c=a^b<<2;则c的二进制值是()。 A.B.C.D. 答案: A 21.当a=3,b=2,c=1时,表达式f=a>b>c执行完后f的值是()。 A.1B.0C.3D.2 答案: B 习题3 一、填空题 1.若定义floatx=1.;则”printf(“%f\n”,x);”的输出结果为。 答案: 1. 2.标准C的所有输入输出函数都包含在头文件中。 答案: "stdio.h" 3.设a=3,b=4,c=5,若有语句“scanf(“a=%d: b=%d,c=%d”,&a,&b,&c);”,则正确的输入格式为。 答案: a=3: b=4,c=5 4.设已说明 inti=65,j=66; charch1=’A’,ch2=’B’; 则执行下列与剧组的输出结果为: printf(“%d,%d,%c,%c”,i,j,ch1,ch2); printf(“%c,%c,%d,%d”,i,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=; unsignedu=65535; printf(“%d%d\n”,a,b); printf(“%3d%3d\n”,a,b); printf(“%f,%f\n”,x,y); printf(“%-10f,%-10f\n”,x,y); printf("%8.2f,%8.2f,%.4f,%.4f,%3f%3f\n",x,y,x,y,x,y); printf(“%e,%10.2e\n”,x,y); printf(“%c,%d,%o,%x\n”,c,c,c,c); printf(“%ld,%lo,%x\n”,n,n,n); printf(“%u,%o,%x,%d\n”,u,u,u); printf(“%s,%5.3s\n”,”computer”,”computer”); } 答案: 二、选择题 1.能正确定义整型变量a和b,并为他们赋初值5的语句是()。 A.a=b=5 B.inta,b=5; C.inta=b=5; D.inta=5,b=5; 答案: D 2.以下程序段的输出结果是()。 intu=020,v=0x20,w=20; printf("%d%d%d",u,v,w); A.16,32,20 B.20,20,20 C.16,16,20 D.32,16,20 答案: A 3.以下程序段的输出结果是()。 charc1='a',c2='c'; printf("%d%c",c2-c1,c2-'a'+'c'); A.2,mB.3,E C.2.ED.格式控制与输出项不一致。 结果不确定。 答案: C 4.下列程序的执行结果是()。 main() {inta=100,b; b=a++>100? a+100: a+200; printf("%d%d",a,b); } A.101201B.101301 C.100200D.100300 答案: B 5.下列程序的输出结果是()。 main() {inta,b,c=241; a=c/100%9; b=1&&-1; printf("a=%d,b=%d",a,b); } A.2,0B.2,1 C.6,1D.0,1 答案: B 6.执行下面程序语句后,a的值是()。 main() { inta=5; printf("%d\n",(a=3*5,a*4,a+5)); } A.65B.20 C.15D.10 答案: B 7.执行下列程序片断时输出的结果是()。 intx=10; x+=3+x%(-3); printf("%d",x); A.11;B.12 C.14D.15 答案: C 8.设有定义语句intx;floaty;当执行scanf(“%3d%f”,&x,&y);语句时,从第一列输入数据12345ㄩ678↙,(ㄩ表示空格,↙表示回车),则y的值是()。 A.123.0B.678.0C.45.678D.45.0 答案: D 9.下面程序的输出结果是()。 main() { doubled;floatf;longm;intI; I=f=m=d=20/3; printf("%d%ld%.lf%.lf\n",I,m,f,d); } A.666.6. B.666.76. C.666.6.7 D.666.76.7 答案: A 10.已知字母A的ASCII值为十进制数65,下面程序的输出是()。 main() {charch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d%c\n",ch1,ch2); } A.67,DB.67,C C.B,CD.C,D 答案: A 习题4 一、单项选择题 1.下列合法的if语句是(intx,y,z,a,b;)( )。 A.if(a=b)z=x+y; B.if(a= C.if(a<>b)z=x+y; D.if(a<=b)z=x+y; 答案: D 2.一个switch结构的各case后面的“常量表达式”的值是( )。 A.可以相同 B.必须互不相同 C.一定相同 D.无所谓相同与不相同 答案: B 3.有下列程序段: inta=2; if (1)a=a+2; printf("%d",a); 输出结果是( ) A.0 B.4 C.2 D.1 答案: B 二、多项选择题 1.下列说法正确的是( ) A.在C语言中,else子句必须和if配对使用。 B.在C语言中,else子句不必和if配对使用。 C.在C语言中,if必须和else子句配对使用。 D.在C语言中,if不必和else子句配对使用。 答案: AD 2.switch结构中,switch后面的“表达式”的类型可以是( )。 A.int B.枚举型 C.char D.A、B和C皆可 答案: AC 3.if语句后面的“表达式”可以是( ) A.关系表达式 B.逻辑表达式 C.整型 D.字符型 答案: ABCD 三、判断题 1.在switch语句的一般表达式中,switch语句后面的“表达式”的类型只能是整型或实型。 ( ) 答案: 错 2.在switch语句中,每遇到一次case,就要进行一次条件判断。 ( ) 答案: 错 3.if语句的嵌套位置是固定的 只能在else之后。 ( ) 答案: 错 4.if语句的嵌套层数越多越好。 ( ) 答案: 错 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 voidmain() { intb=1,a; if(! b)a=10; elsea=20; printf("a=%d\n",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 4.下程序的输出结果是 。 #include voidmain() { intx=5,y; if(x>2)y=x; elseif(x<2)y=2*x; elsey=4*x; printf("y=%d\n",y); } 答案: y=5 5.输入d,A,5后,下面程序执行结果为 。 #include voidmain() { charc; printf("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 6.分析以下程序的运行结果,然后上机测试一下,看实际运行结果与自己的分析运行结果是否一致。 若不一致,要仔细分析其中的原因。 (1)#include“stdio.h” voidmain() { inta=10; if(a++>11)printf(“%d”,a); elseprintf(“%d”,a--); } 分析运行结果: _______________;实际运行结果: ______________; 错误原因: ___________________________________________________; 答案: 11(执行if后表达式判断不成立,然后对a加1使a=11,执行else子句先打印结果后减1,所以实际运行结果11) (2)#include“stdio.h” voidmain() { inttemp=2; switch(temp) { case1: printf(“%d\n”,++temp);break; case2: printf(“%d\n”,++temp); case3: printf(“%d\n”,temp--);break; case4: printf(“%d\n”,temp--); default: printf(“%d\n”,temp); } } 分析运行结果: ______3,3_________;实际运行结果: _______________; 错误原因: ___________________________________________________; 答案: 3 3 五、编程题 1.编写一个程序,输入三个整数,按降序输出。 答案: #include"stdio.h" voidmain() { floatx,y,z,temp; printf("Pleaseinputthreenumber: \n"); scanf("%f,%f,%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)