c语言第二章数据类型与数据处理练习题
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A.(m=n=6,m+n,m+1)
B.(m=n=6,m+n,n+1)
C.(m=6,m+1,n=6,m+n)
D.(m=6,m+1,n=m,n+1)
33.假设所有变量均为整型,则表达式(x=2,y=5,y++,x+y)的值是( )。
A.7
B.8
C.6
D.2
34.已知 s是字符型变量,下面不正确的赋值语句是( )。
6. 不属于 C语言关键字的是( )。
A.int
B.break
C.while
D.character
7. 是 C语言提供的合法关键字的是( )。
A.Float
B.signed
C.integer
D.Char
8. 以下不能定义为用户标示符的是( )。
A.scanf
B.Void
C._3com_
D.int
9. 一个 C程序是由( )。
B.x=y=100
C.x++;
D.x=int(z);
37.设 x、y均为 float型变量,则不正确的赋值语句是( )。
A.++x;
B.x*=y-2;
C.y=(x%3)/10;
D.x=y=0;
38.下列语句中符合 C语言的赋值语句是( )。
A.a=7+b+c=a+7;
B.a=7+b++=a+7;
C.a=7+b,b++,a+7
A.2.500000 B.2.750000 C.3.500000
D.0.000000
29.在 C语言中,char型数据在内存中的存储形式是( )。
A.补码
B.反码
C.原码
D.ASCII码
30.设变量 x为 float类型,m 为 int类型,则以下能实现将 x中的数值保留小数点后两位,
第三位进行四舍五入运算的表达式是( )。
B.3*a*b/c/d
C.3*a*b/c*d
D.a*b/d/c*3
23.已知各变量的类型说明如下:
intm=8,n,a,b;
unsignedlongw=10;
doublex=3.14,y=0.12;
则以下符合 C语言语法的表达式是( )。
A.a+=a-=(b=2)*(a=8)
B. n=n*3=18
C.x%3
D.y=float(m)
24.以下符合 C语言语法的赋值表达式是( )。
A.a=9+b+c=d+9
B.a=(9+b,c=d+9)
C.a=9+b,b++,c+9
D.a=9+b++=c+9
25. 已知字母 A的 ASCII码为十进制数 65,且 S为字符型,则执行语句 S=’A’+’6’-’3’;后,
S中的值为( )。
D.float2_and=1-e-3;
21.与数学式子
对应的 C语言表达式是( )。
A.9*x^n/(2*x-1) C.9*pow(x,n)*(1/(2*x-1))
B.9*x**n/(2*x-1) D.9*pow(n,x)/(2*x-1)
22.若有代数式 ,则不正确的 C语言表达式是( )。
A.a/c/d*b*3
C.主函数只能调用用户函数或系统函数,用户函数可以相互调用
D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数
12.以下说法中正确的是( )。
A.C语言程序总是从第一个定义的函数开始执行
B.在 C语言程序中,要调用的函数必须在 main()函数中定义
C.C语言程序总是从 main()函数开始执行
第二章基础知识练习题
一、选择题
1. 以下不是 C语言的特点的是( )。
A.语言简洁紧凑
B. 能够编制出功能复杂的程序
C.C语言可以直接对硬件操作
D. C语言移植性好
2. 下列字符序列中,不可用作 C语言标识符的是( )。
A.abc123
B.no.1
C._123_
D.¬_ok
3. 正确的 C语言标识符是 ( )。
18.以下选项中,正确的字符常量是( )。
A.”F”
B.’\\’’
C.’W’ D.’’
19.以下选项中可作为 C语言合法整数的是
A.10110B B.0386
C.0Xffa
D.x2a2
20.下列变量定义中合法的是
A.short_a=1-.le-1;
B.doubleb=1+5e2.5;
C.longdo=0xfdaL;
A.¬_buy_2
B.2_buy
C.?_buy
D.buy?
4. 请选出可用作 C语言用户标识符的一组标识符( )。
A.void
B.a3_b3
C.For D.2a
define
_123
-abc
DO
WORD
IF
Case
sizeof
5. 下列符号中,不属于转义字符的是( )。
A.\\
B.\0xAA
C.\t
D.\0
A.5E2.0
B.E-3
C.2E0
D.1.3E
16.已知大写字母 A的 ASCII码值是 65, 小写字母 a的 ASCII码是 97,则用八进制表示
的字符常量’\101’是( )。
A.字符 A B.字符 a
C.字符 c
D.非法的常量
17.以下选项中, 合法转义字符的选项是( )。
A.’\\’
B.’\018’ C.’xab’ D.’\abc’
A.一个主程序和若干子程序组成
B. 一个或多个函数组成
C.若干过程组成
D.若干子程序组成
10.C语言程序的基本单位是( )。
A.程序行
B.语句
C.函数
D.字符
11.下列说法中,错误的是( )。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号
B.每个函数都有一个函数头和一个函数体,主函数也不例外
接后生成文件的后缀是________。 4. C语言的关键字都用________{大写或小写}。 5. 一个函数由两部分组成,它们是_______、_______。 6. 函数体一般包括_______、_______。 7.若 x和 y均为 int型变量,则以下语句的功能是________。
x+=y; y=x-y; x-=y;
D.a=7+b,c=a+7;
二、填空题
1. C语言的符号集包括________、________、________。 2. 结构化设计中的三种基本结构是________、_______、________。 3. C语言源程序文件的后缀是________,经过编译后生成文件的后缀是________,经过链
D.C语言程序中的 main()函数必须放在程序的开始部分
13.C编译程序是( )。
A.C程序的机器语言版本
B.一组机器语言指令
C.将 C源程序编译成目标程序
D.由制造厂家提供的一套应用软件
14.以下选项中,合法的用户标识符是( )。
A.long
B._2abc
C.3dmax
D.A.dat
15.以下选项中,合法的实型常数是( )。
答案及部分解析
一. 1.B 7.B 13.C 19.C 25.A 31.C 37.C
选择题答案 2.B 8.D 14.B 20.A 26.D 32.C 38.D
3.A 9.B 15.C 21.C 27.A 33.B 39.D
4.B 10.C 16.A 22.C 28.A 34.B
5.B 11.A 17.A 23.A 29.D 35.C
A.s=’\012’;
B.s=’u+v’;
C.s=’1’+’2’;来自D.s=1+2;
35.已知 s是字符型变量,下面正确的赋值语句是( )。
A.s=’abc’;
B.s=’\08’;
C.s=’\xde’;
D.s=”\”;
36.若有以下定义,则正确的赋值语句是( )。
intx,y;
floatz;
A.x=1,y=2,
6.D 12.C 18.C 24.B 30.B 36.C
14.解析:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须 为字母或下划线。而且不能与 C语言规定的关键字同名。关键字如:auto,break,
case,char,const,continue,default,do,double,else,entry,extern,for,float, goto,if,int,int,long,register,return,short,signed,sizeof,static,struct, unsigned,while,switch,typedef,void,volatile,unior。这些关键字先不必硬背下 来,随着后续的学习,你将发现它们都是一些数据的类型、语句等,自然会随着 学习的深入,而记下来。 15.解析:用指数形式表示一个实型常数时,E或 e之前必须有数字,且 E后面指数必须为 整数。 16.解析:’\101’为转义字符,相对应一个 ASCII码字符。(101)8=(65)10=A. 17.解析:转义字符的特征是以“\”开头,其后跟一些字符,如\n,\t,\’,\\,\},\”,\b,\f等 代表一些特殊的含义,而\后如跟数字,可以为八进制或者十六进制,将其转换 为对应的 ASCII码值,就可以得出对应的字符。“\”后跟八进制的写法:\0nn,或 者\nn,表示“\0”或者“\”后只能跟 1或 3位 0——7之间的数字;“\”后跟 十六进制的写法:\xnn,或者\nn,表示“\x”或者“\”后只能跟 1或 2位 0— —9及 a——f(A——F)之间的字符。选项 B的错误在于 8不是八进制;而选项 C的错误在于没有“\”;选项 D的错误在于超长(多了一位)。 21.解析:B的错误在于赋值语句的左侧只能为一个简单变量,如:n=3*(n=18);C的错误 在于%运算符只能适用于整型数据,D的错误在于作类型转换时,应将类型加上 括号,即为:y=(float) m 31.解析:逗号表达式的最终结果为最右端的表达式(即 x+y)的值,其运算顺序是从左自 右的。第三个表达式 y++,其隐含有两步操作:先取 y的原值,再执行 y=y+1运 算;而本题中,虽然没有将 y赋给某个变量(取其原值),但还是一定会执行加 运算的。因而,经过第三个表达式,y已经自加为 6,故 x+y的值为 8,相对应 得表达式最终结果为 8。若本题改为:(x=2,y=5,z=y++,x+z),则其结果应为 7。
二. 填空题答案 1. 答案:英文字母、数字、一些有特定含义的标点符号 2. 答案:顺序结构、选择结构、循环结构 3. 答案:C,OBJ,EXE 4. 答案:小写 5. 答案:函数说明部分和函数体 6. 答案:变量定义部分和执行部分 7.答案:交换 x和 y的值
A.’D’
B.68
C.不确定的值
D.’C’
26.在 C语言中,要求运算数必须是整型的运算符是( )。
A./
B.++
C.*=
D.%
27.若有说明语句:chars=’\72’;则变量 s( )。
A.包含一个字符
B.包含两个字符
C.包含三个字符
D.说明不合法,s的值不确定
28.若有定义:intm=7;floatx=2.5,y=4.7;则表达式 x+m%3*(int)(x+y)%2/4的值是( )。
A.x=(x*100+0.5)/100.0
B.m=x*100+0.5,x=m/100.0
C.x=x*100+0.5/100.0
D.x=(x/100+0.5)*100.0
31.表达式 13/3*sqrt(16.0)/8的数据类型是( )。
A.int
B.float
C.double
D.不确定
32.设以下变量均为 int类型,则值不等于 7的表达式是( )。