C语言基础练习题含答案 下载本文

49.B 50.A 51.D 52.D 53.A 54.D 55.D

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)=(65)10=A. 8

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.答案:输入和输出函数

8.答案:dec:-1,oct:177777,hex:ffff,unsigned:65535 dec:1,oct:1,hex:1,unsigned:1

9.答案:dec:98,oct:142,hex:62,ASCII:b

10.答案:3.141593,3.1416,3.142,└┘└┘└┘└┘└┘3.142 3.141593e+00,3.1416e+00,3.142e+00,└┘└┘3.142e+00 (注:由于c编译系统不同,我们上机使用的机器,其 第二个printf语句实际结果为:

3.14159e+00,3.142e+00,3.14e+00,└┘└┘3.14e+00,即:小 数点后取5位。) 11.答案:c=h 12.答案:i=1,k=└┘,j=2

13.答案:第一种情况的执行结果:x1=98,x2=765,y1=4,y2=1 第二种情况的执行结果:x1=98,x2=76,y1=└┘,y2=3

第三种情况的执行结果:x1=98,x2=765,y1=4,y2=2 14.答案:交换x和y的值

15.答案:(1)格式符应为:%f;(2)变量前边未加取地址符&, 即应为scanf(”%f”,&k);

16.答案:【1】123 【2】45.000000

第二章选择结构 2.1 选择题

1.已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 && y+z/2的值是(D)。

A.6 B.0 C.2 D.1 2.设a=5,b=6,c=7,d=8,m=2,n=2, 则执行(m=a>b) && (n=c>d)后n 的值为(B)。

A.1 B.2 C.3 D.4 3.设x、y和z都是int类型变量,且x=3,y=4,z=5, 则下面的表达式中,值为0的表达式为(D)。 A.’x’ && ’y’B.x<=y

C.x||y+z && y-z D.!((x

5.逻辑运算符两侧运算对象的数据类型(D)。 A.只能是0或1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据

6.以下关于运算符优先顺序的描述中正确的是(C)。 A.关系运算符<算术运算符<赋值运算符<逻辑与运算符