C语言习题及答案2.docx
- 文档编号:6429745
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:9
- 大小:20.84KB
C语言习题及答案2.docx
《C语言习题及答案2.docx》由会员分享,可在线阅读,更多相关《C语言习题及答案2.docx(9页珍藏版)》请在冰豆网上搜索。
C语言习题及答案2
习题2和参考解答
1)选择题
(1)请选出可以作为C语言用户标识符的一组标识符( )。
A.void,define,WORDB.A3_B3,_123,abc
C.FOR,-abc,CaseD.2a,Do,Sizeof
【答案】B
【解析】C语言中的标识符只能由字母、数字和下划线3种字符组成,第一个字符只能是字母或下划线,且不允许是系统关键字。
(2)下列运算符优先级最高的是( )。
A.关系运算符B.赋值运算符
C.算术运算符D.逻辑运算符
【答案】C
【解析】上述4种运算符中,算术运算符的优先级最高。
(3)sizeof(float)是( )。
A.一种函数调用B.一个不合法的表示形式
C.一个整型表达式D.一个浮点表达式
【答案】C
【解析】sizeof()用来获取一个数据或数据类型在内存中所占空间的字节数,它的结果返回值为字节数,即为整型值。
(4)下列叙述不正确的是( )。
A.一个C语言程序可由一个或多个函数组成
B.一个C语言程序必须包含一个main函数
C.C语言程序的基本组成单位是函数
D.在C语言程序中,注释说明只能位于一条语句的后面
【答案】D
【解析】在C语言程序中,注释可以位于程序中任意合适的位置。
(5)编译C语言程序时,程序中的注释部分将( )。
A.不参加编译,也不会出现在目标程序中
B.参加编译,但不会出现在目标程序中
C.不参加编译,但会出现在目标程序中
D.参加编译,并会出现在目标程序中
【答案】A
【解析】注释不参与编译过程,也不会出现在目标程序中。
(6)下列字符串常量不正确的是( )。
A.'abc'B."12'12"C."0"D.""
【答案】
【解析】字符串常量指用双引号括起来的若干字符。
(7)下列4个选项中,均是合法整型常量的是( )。
A.160-0xffff011❤
B.-0xcdf01ª0xe
C.-01986,0120668
D.-0x48a2e50x
【答案】A
【解析】本题主要考查十进制、八进制、十六进制实型数据的表达方式。
(8)以下选项中不属于C语言类型的是( )。
A.signedshortintB.unsignedlongint
C.unsignedintD.longshort
【答案】D
【解析】C语言中没有longshort类型。
(9)数值029是一个( )。
A.八进制数B.十六进制数
C.十进制数D.非法数❤
【答案】D
【解析】C语言中,以数字0开头的数值表示八进制数,八进制数的合法字符是0~7。
(10)在C语言中,要求运算数必须是整型的运算符是( )
A./B.++C.!
=❤D.%
【答案】D
【解析】取余运算(%)要求两边的运算数必须是整型。
(11)当c的值不为0时,以下能将c的值赋给变量a,b的是( )。
A.c=b=aB.(a=c)||(b=c)
❤C.(a=c)&&(b=c)D.a=c=b
【答案】C
【解析】本题主要考查逻辑运算的短路特性。
(12)若有说明语句“charc=‘\72’;”,则变量c( )。
A.❤包含1个字符B.包含2个字符
C.包含3个字符D.说明不合法,c的值不确定
【答案】A
【解析】转义字符代表一个字符常量。
(13)设有说明“charw;intx;floaty;doublez;”,则表达式“w*x+z-y”值的数据类型为( )。
A.floatB.charC.intD.double❤
【答案】D
【解析】混合运算表达式的数据类型为其中精度最高的运算量的数据类型。
(14)长整型数据在内存中的存储形式是( )。
A.ASCII码B.原码C.反码D.补码❤
【答案】D
【解析】任何整型数据在内存中的存储形式都是补码。
(15)字符型常量在内存中的存放形式是( )。
A.ASCII码❤B.BCD码C.内部码D.十进制码
【答案】A
【解析】字符型常量在内存中采用ASCII码形式存放。
(16)若x、i、j和k都是int型变量,则计算表达式“x=(i=4,j=16,k=32)”后,x的值为()。
A.4B.16
C.32❤D.52
【答案】C
【解析】考查逗号表达式的运算规则。
逗号表达式的值为最后一个表达式的值。
(17)若有代数式
,则下列C语言表达式中不正确的是()。
A.a/b/c*e*3B.3*a*e/b/c
C.3*a*e/b*c❤D.a*e/c/b*3
【答案】C
【解析】3*a*e/b*c对应的代数式为
。
(18)表达式“109!
=99”的值是()。
A.1❤B.非空值C.0D.true
【答案】A
【解析】关系表达式的值为0或1,其中0表示假,1表示真。
(19)若t为double类型,表达式“t=1,t*5”,则t的值为()。
A.1B.6.0C.2.0D.1.0❤
【答案】D
【解析】该题是问t的值,而不是表达式的值,故为1.0。
(20)表示关系“x<=y<=z”的C语言表达式为()。
A.(x<=y)&&(y<=z)❤B.(x<=y)AND(y<+z)
C.(x<=y<=y)D.(x<=y)&(y<=z)
【答案】A
【解析】多于一个关系运算符的表达式,在C语言中应该用逻辑运算符连接。
(21)在C语言中,int、char和short三种类型数据所占用的内存()。
A.均为2个字节B.由用户自己定义
C.由所用机器的字长决定的❤D.是任意的
【答案】C
【解析】C语言中各种类型数据所占内存字节数是由所用机器的字长决定的。
(22)下列程序的执行结果是()。
#include
voidmain()
{
inti=2;
printf(“%d,%d\n”,++i,--i);
}
A.1,1B.2,1❤
C.1,2D.2,2
【答案】B
【解析】printf语句是从右向左计算输出表达式的值。
(23)字符串常量"\\\22a,0\n"的长度是()。
A.8B.7
C.6❤D.5
【答案】C
【解析】该题主要考查转义字符的使用。
(24)下列叙述错误的是()。
A.在C语言程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若变量a和b的类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值❤
【答案】D
【解析】当从键盘输入数据时,对于实型变量也可以输入整型值,只不过接收进来之后自动在末尾加“.0”。
(25)下列叙述中正确的是()。
A.C语言中既有逻辑类型也有集合类型
B.C语言中没有逻辑类型但有集合类型
C.C语言中有逻辑类型但没有集合类型
D.C语言中既没有逻辑类型也没有集合类型❤
【答案】D
【解析】C语言中既没有逻辑类型也没有集合类型。
2)填空题
(1)已知“intx=6;”,则执行语句“x+=x-=x*x”后x的值是-60。
X=x+x=x-x*x
【答案】-60
(2)若“w=1,x=2,y=3,z=4”,则条件表达式“w>x?
w:
y y: z”的结果是3。 【答案】3 (3)若“intm=5,y=2;”,则计算表达式“y+=y-=m*=y”后y的值是-16。 y=y+y=y-m=m*y 【答案】-16 (4)在C语言中,一个int型数据在内存中如果占2个字节,则int型数据的取值范围为。 【答案】-32768~32767 (5)已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式“ch='a'+'8'-'3'”的值为f。 【答案】f (6)若x和n均为int型变量,且x和n的初值均为5,则计算表达式“x+=n++”后x的值为10,n的值为6。 【答案】106 (7)若有定义“inta=2,b=3;floatx=3.5,y=2.5;”,则表达式“(float)(a+b)/2+(int)x%(int)y”的值为3.5。 2.5+1 【答案】3.500000 (8)下列程序的输出结果是6.4。 #include intmain() { intk=2,i=2,m; m=(k+=i*=k);k=k+i=i*k printf(“%d,%d\n”,m,i); return0; } 【答案】6,4 (9)以下程序的执行结果是。 #include intmain() { inta,b,c; a=b=1; c=a++-1;c=0 printf(“%d,%d,”,a,c);a=2 c+=-a+++(++b||++c);c=c+-a+(++b||++c)=1 printf(“%d,%d\n”,a,c);a=3 return0; } 【答案】2,0,3,-1 (10)以下程序的执行结果是18。 #include intmain() { intn=023;3+16=19 printf(“%d\n”,--n); return0; } 【答案】18 (11)以下程序的执行结果是10.10.10。 #include voidmain() { inti=10; printf(“%d,%d,%d”,i--,i--,i--); } 【答案】10,10,10 (12)以下程序的执行结果是。 #include voidmain() { inta=-32768,b; b=a-1; printf(“a=%d,b=%d”,a,b); } 【答案】a=-32768,b=-32769 (13)以下程序的执行结果是8。 #include voidmain() { intx=042,y=067,z; z=(x>>2)&(y<<3); printf(“%d\n”,z); } 【答案】8 (14)以下程序的执行结果是。 #include voidmain() { intx=10,y=9; inta,b,c; a=(--x==y++)? --x: ++y;810 b=x++;811 c=y;1011 printf(“%d,%d,%d\n”,a,b,c); } 【答案】8,8,10 (15)以下程序输入123456789,其输出结果是。 #include voidmain() { inta,b; floatf; scanf(“%2d%*2d%2d%f”,&a,&b,&f);跳过输入流 printf(“%d,%d,%f\n”,a,b,f); } 【答案】12,56,789.000000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 答案