C语言程序设计习题及答案.docx
- 文档编号:3694792
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:133
- 大小:99.52KB
C语言程序设计习题及答案.docx
《C语言程序设计习题及答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题及答案.docx(133页珍藏版)》请在冰豆网上搜索。
C语言程序设计习题及答案
第一部分C语言基础
一、单项选择
1.以下不是C语言的特点的是()。
(A)C语言简洁、紧凑(B)能够编制出功能复杂的程序
(C)C语言可以直接对硬件进行操作(D)C语言移植性好
2.下列浮点数的表示中正确的有()。
(A)223(B).719E22(C)e23(D)12e2.0
3.字符型常量在内存中存放的是()。
(A)ASCII代码(B)BCD代码(C)内部码(D)十进制码
4.“BB\n\\\123\r”在内存中占的字节数是(),此字符串的长度为()。
(A)6(B)7(C)8(D)9(E)10(F)11
5.对于语句scanf(“%f□%f,z=%f”,&x,&y,&z);,其合法的输入形式为()。
(A)□14.7□2.0□15.3(B)14.7,2.0,15
(C)14.7□□2.0,15.3(D)14.7□□□2.0,z=15
6.下列运算符中,结合方向为自左向右的是()。
(A)=(B),(C)+=(D)――
7.若有intx;则sizeof(x)和sizeof(int)两种描述()。
(A)都正确(B)值不一样(C)前者正确(D)后者正确
8.整型变量x=1,y=3,经下列计算后,x的值不等于6的是()。
(A)x=(x=1+2,x*2)(B)x=y>2?
6:
5(C)x=9-(--y)-(--y)(D)x=y*4.2/2
9.单精度变量x=3.0,y=4.0,下列表达式中y的值为9.0的是()。
(A)y/=x*27/4(B)y+=x+2.0(C)y-=x+8.0(D)y*=x-3.0
10.若整型变量i=3,j=4,作运算j=i+++j+i后,i的值为(),j的值为()。
(A)10(B)4(C)3(D)11
11.设有整型变量x=10,表达式(x&&1535)&(x|55&100)的值为()。
(A)0(B)1(C)10(D)11
12.设有整型变量x,其值为25,则表达式:
(x&20>>1)|(x>10|7&x^33)的值为()。
(A)35(B)41(C)11(D)3
13有整型变量x,单精度变量y=5.5,表达式:
x=(float)(y*3+((int)y)%4)执行后,x的值为()。
(A)17(B)17.500000(C)17.5(D)16
14.表达式:
0?
2:
0,3/2,0==3>=2?
55:
6.0,4%3的值为()。
(A)1.3333333(B)1(C)6.0(D)1.5
15.以下选项中属于C语言中数据类型的是()。
(A)复数型(B)逻辑型(C)双精度型(D)集合型
16.在C语言中,不正确的int类型的常数是()。
(A)32768(B)0(C)037(D)0xAF
17.语句:
printf(“%d\n”,(a=2)&&(b=-2));的输出结果是()。
(A)无输出(B)结果不确定(C)-1(D)1
18.当c的值为0时,在下列选项中能正确将c的值赋给变量a,b的是()。
(A)c=b=a;B)(a=c)||(b=c);(C)(a=c)&&(b=c);(D)a=c=b;
19.下列程序的输出结果是()。
(A)3(B)3.2(C)0(D)3.07
main()
{doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;
printf(“%d\n“,d*y);
}
20.下列变量定义中合法的是()。
(A)short_a=1-.1e-1;(B)doubleb=1+5e2.5;
(C)longdo=0xfdaL;(D)float2_and=1–e–3;
21.设intx=1,y=1;表达式(!
x||y--)值是
(A)0(B)1(C)2(D)-1
22.下列程序执行后的输出结果是()。
(A)G(B)H(C)I(D)J
main()
{intx=‘f‘;printf(“%c\n“,‘A’+(x–‘a‘+1));}
23.下列程序执行后的输出结果是()。
(A)-32767(B)FFFE(C)-1(D)-32768
main()
{charx=0xFFFF;printf(“%d\n“,x--);}
24.设有如下定义:
inti=8,k,a,b;
unsingedlongw=5;
doublex=1.42,y=5.2;
则以下符合C语言语法的表达式是:
(A)a+=a-=(b=4)*(a=3)(B)x%(-3)
(C)a=a*3=2(D)y=float(i)
25.以下程序的执行结果是()。
inta=2,c=5;printf(“a=%%d,b=%%d\n”,a,c);
(A)a=%2,b=%5(B)a=2,b=5
(C)a=%%d,b=%%d(D)a=%d,b=%d
26.在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是()。
(A)a=20000+20000;(B)a=4000*10;
(C)a=30000+10000;(D)a=4000L*10L;
27.以下叙述正确的是
(A)可以把define和if定义为用户标识符。
(B)可以把define定义为用户标识符,但不能把if定义为用户标识符。
(C)可以把if定义为用户标识符,但不能把define定义为用户标识符。
(D)define和if都不能定义为用户标识符。
28.以下程序的输出结果是
main()
{inta=3;printf("%d\n",a+(a-=a*a));}
(A)-6(B)12(C)0(D)–12
29.下列程序执行后的输出结果是(小数点后只写一位)
(A)666.06.0(B)666.76.7
(C)666.06.7(D)666.76.0
main()
{doubled;floatf;longl;inti;i=f=1=d=20/3;
printf("%d%ld%f%f\n",i,l,f,d);
}
30.已定义x为float型变量。
X=213.82631;printf("%-4.2f\n",x);
则以上程序运行结果为()。
(A).输出为-213.82(B).输出为213.83
(C).输出为213.82(D).输出格式描述符的域宽不够,不能输出
二、填空
1.C语言规定,标识符只能由_______,_______,_______三种字符组成,而且,第一个字符必须是_____或______.
2.一个C程序一般由若干函数构成的,程序中有且只有一个______.
3.一个C函数是由_________和____________两部分组成的。
4.一个C程序总是从_______开始执行的.
5.C语言的基本数据类型有_______.________.________和实型数据,其中实型数据又分为_________和_________.
6.在内存中占据16位的无符号整型变量的范围是_______到_________.
7.在C语言中,八进制整常量以_____开头,十六进制整常量以_______开头.
8.十进制数7转化为八进制为________,十进制数–2248转化为十六进制为________.
9.在C语言中,&运算符用作_________运算和_________运算,而*运算符用作________和_________运算.
10.将下列运算符按优先级从高到低顺序排列:
>=!
=!
+&&()||>>%&是_______________________.
11.‘x’在内存中占_____字节,”x”在内存中占______字节,”\101”在内存中占_____字节.
12.若x为整型变量,执行语句x=‘b’-‘A’;后,x的值为________.
13.浮点单精度变量x,执行表达式语句x=8.7+123.7*6–‘a’%7;后,x的值为______________.
14.整型变量i和j,i的初值为3,执行表达式语句j=(i++)+(i++)+(i++);后,变量i的值为_____,变量j的值为______.
15.整型变量a,b,c它们的初值都是0,运行表达式:
++a&&b++&&++c后,a.b.c的值分别为:
_____,______,_____.若在同样的初值的条件下,运行表达式:
++a||b++||++c后,a,b,c的值分别为:
_______,______,________.
16.输出语句printf(“%-8.4s,%5.3f,%4d”,”MAYAPP”,”35.1753”,12346);的输出结果为_______________________.
17.若x为单精度型变量,y为字符型变量,z为整型变量,执行如下的输入语句:
scanf(%f%c%d”,&x,&y,&z);后,从键盘输入12.77A79A86.此时,变量x,y,z的值分别为_______,_______,_______.
18.欲将一个16位二进制的整型变量的高8位清零,而只保留低8位,可用的方法是_______________________________________.
19.已知有a.b两个数,执行x=b;b=a;a=x操作后,执行的效果是____________.
20.位运算符_______(填能或不能)用于浮点数.
21.将下列数学式改写成C语言的表达式.
(1)ax3+bx2+cx+d写成____________________.
(2)
写成
22.分析下面的程序的运行结果.
main()
{intx=0,y=0,z=0;
x=++y+(++z);print(“%d,%d,%d*”,x,y,z);
x=y+++z++;printf(“%d,%d,%d*”,x,y,z);
x=--y+z--;printf(“%d,%d,%d*”,x,y,z);
}
程序结果为:
_____________________.
23.由C语言编成的程序文件FILE1.C经编译后的文件名是。
24.程序文件中若有语句getchar();该程序文件头应有予编译命令。
25.若有说明语句floatx=8;inta[2];则表达式sizeof(x)==sizeof(a)的值是。
26.整型变量a=5,b=7;表达式b/a*100的值是。
27.以下程序段运行的结果是。
inta=5,b=3;
printf(“a+b=%4d,”,a+=b+=a+b);
printf(“a–b=%4d\n”,a-=b-=a-b);
28.设有以下变量定义,并已赋确定的值
charw;intx;floaty;doublez;
则表达式:
w*x+z–y所求得值的数据类型为。
29.写出与代数式(x+2)ex+2对应的C语言表达式:
。
30.写出“若char类型变量ch是大写英文字母,改变ch为对应小写字母”的C表达式:
三、判断正误
1.C语言程序设计是一种面向过程的结构化设计语言。
2.C语言程序是由函数构成的。
3.任何C语言编写的文件必须至少包含一个main()函数。
4.一个C语言程序可以在不同的文件中。
5.C语言程序不允许直接访问物理地址。
6.函数的过程体实际是一个复合语句。
7.用宏定义的符号型常量必须是用大写字母来表示。
8.void型数据类型是指数据不存在。
9.C语言中变量必须先定义,后使用。
10.C语言中,scanf与Scanf等同。
11.当有如下定义unsignedintI;时,做如下赋值I=-1;是不允许的。
12.有如下定义floatx=1.2345;执行printf(“%f”,x);结果输出为1.2345。
13.如下定义charc1=’a’,c2=’b’,c3=c1-c2;执行printf(“%c”,c3);结果为无任何显示。
14.可以有如下定义:
inta=b=c=0;
15.intx=4,y=5;floatz=x/y;则z的值为0.8;
16.inti=4;x=(i++,i++);后,x的值为5;
17.空语句没有任何意义,所以在C程序中不应该出现空语句。
18.要求出某一变量占用内存空间的长度可以用函数sizeof(变量)实现。
19.要判断x,y,z的大小顺序可以用如下表达式x>y>z;
20.在do{}while(P);结构中,当条件P成立时,结束循环。
21.Switch结构中必须要有default项。
22.在main()函数中若加入return语句,则编译出错。
23.for循环语句中括号内至少必须要有一个表达式。
24.各种循环结构可以相互替代。
25.if(i=1)i++;编译时不能通过。
26.以下定义是否正确:
inta=120,b++=a;
27.以下语句是否正确:
floata[10];inti=0;while(i++<10)scanf(“%f“,a[i]);
28.以下语句是否正确:
intR=getchar()&0200;
29.设有intx=11;则表达式x++*1/3;的值是4。
30.若有“intx;floaty=1.6,z=2.4;”则执行“x=(int)y+z;”后,x的值是3。
四、阅读程序,写出运行结果
1.#include“stdio.h”
main()
{inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}
2.#include“stdio.h”
main()
{inti,j,x,y;i=5;j=7;x=++i;y=j++;printf(“%d,%d,%d,%d”,i,j,x,y);}
3.#include“stdio.h”
main()
{floatf=13.8;intn;n=((int)f)%3;printf(“n=%d”,n);}
4.#include“stdio.h”
main()
{intn=2;n+=n-=n*n;printf(“n=%d”,n);}
5.#include“stdio.h”
main()
{inta,b,x;x=(a=3,b=a--);printf(“x=%d,a=%d,b=%d”,x,a,b);}
6.#include“stdio.h”
main()
{floatf1,f2,f3,f4;intm1,m2;f1=f2=f3=f4=2;
m1=m2=1;printf(“%d\n”,(m1=f1>=f2)&&(m2=f3 } 7.#include“stdio.h” main() {intx=5,y=2;printf(“1: %d*”,! (y==x/2));printf(“2: %d*”,y! =x%3)); printf(“3: %d*”,x>0&&y<0);printf(“4: %d”,x! =y||x>=y); } 8.#include“stdio.h” main() {unsignedintb=65535;printf(“%d”,b);} 9.#include“stdio.h” main() {intx=10,y=9;inta,b,c; a=(--x==y++)? -x: ++y;b=x++;c=y;printf(“a=%d,b=%d,c=%d\n”,a,b,c); } 10.#include“stdio.h” main() {intx=0,y=0,z=0; x=++y+(++z);printf(“%d,%d,%d*”,x,y,z); x=y+++z++;printf(“%d,%d,%d*”,x,y,z); x=--y+z--;printf(“%d,%d,%d*”,x,y,z); } 11.#include“stdio.h” main() {shorti=-1;printf(“%d,%o,%x,%u\n”,i,i,i,i);} 12.#include“stdio.h” main() {shorti=1;printf(“%d,%o,%x,%u\n”,i,i,i,i);} 13.#include“stdio.h” main() {charc=’A’;printf(“%d,%o,%x,%c\n”,c,c,c,c);} 14.#include“stdio.h” main() {floatf=3.1415927;printf(“%f,%5.4f,%3.3f\n”,f,f,f);} 15.#include“stdio.h” main() {floatf=3.5;printf(“%f,%g\n”,f,f);} 16.#include“stdio.h” main() {floatf=31.41592;printf(“%f,%e\n”,f,f);} 17.#include“stdio.h” main() {charc=’A’+10;printf(“%c\n”,c);} 18.#include“stdio.h” main() {inta,c;charb;scanf(“%d%c%d”,&a,&b,&c);printf(“%d,%c,%d\n”,a,b,c);} 19.以下程序输入123456 #include“stdio.h” main() {inta,b;charb;scanf(“%2d%3d”,&a,&b);printf(“%d,%d\n”,a,b,);} 20.以下程序输入ABC #include“stdio.h” main() {charc;scanf(“%3c”,&c);printf(“%c\n”,c);} 21.以下程序输入100 #include“stdio.h” main() {intn;scanf(“%o”,&n);printf(“%d\n”,n);} 22.以下程序输入x=1.23,y=50 #include“stdio.h” main() {floatx,y;scanf(“x=%f,y=%f”,&x,&y);printf(“x=%7.2f,y=%7.2f”,x,y);} 五、编写程序 1.编写一个程序从键盘输入圆锥体的半径r和高度h,并计算其体积。 2.输入一个三位数n(例如672)把他倒着输出(如: 输出276)。 3.用两个不同的程序,实现变量a与变量b之间值的交换。 第一部分参考答案 一、单项选择 1.B2.B3.A4.BA5.D6.B7.A8.C9.B10.BA11.A 12.B13.A14.B15.C16.A17.D18.B19.C20.A21.B 22.A23.C24.A25.D26.D27.D28.D29.C30.B 二、填空 1.字母,数字,下划线,下划线,字母2.main函数 3.函数,函数体4.main函数 5.整型,字符型,实型,float,double6.0,216-17.0,0x8.7, 9.按位与,取地址,乘,取值10.()、! 、%、+、&、>>、>、 11.1,2,212.3313.744.914.6,9 15.1,1,01,0,016.MAYA,35.175,12346 17.12.77,A,7918.与0x00ff按位与19.交换a,b的值 20.不能21. (1)a*x*x*x+b*x*x+c*x+a (2)sqrt((a*a+b*b)/(a*b)) 22.2,1,1*2,2,2*3,1,1*23.FILE1.OBJ24.#include 25.126.10027.a+b=16,a-b=10 28.double29.(x+2)*exp(x+2)30.tolower(ch) 三、判断正误 1.√2.√3.×4.√5.×6.√7.×8.×9.√10.× 11.×12.×13.√14.×15.×16.×17.×18.×19.×20.× 21.×22.×23.×24.√25.×26.×27.×28.√29.×30.√ 四、阅读程序,写出运行结果 1、2,12、6,8,6,73、n=14、n=-45、x=3,a=2,b=36、0 7、1: 0*2: 0*3: 0*4: 18、–19、a=8,b=8,c=1010、2,1,1*2,2,2*3,1,1* 11、-1,177777,ffff,6553512、1,1,1,113、65,41,101,A 14、3.141593,3.1416,3.14215、3.500000,3.516、31.415920,3.14159e+01 17、K18、1,,219、12,34520、A 21、6422、x=1.23,y=50.00 五.编程 1、#include“stdio.h> main(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题 答案