一、选择题
1. 以下选项中能表示合法常量的是( )。
【答案】A
【解析】A 项,表示的是字符串常量。B 项,浮点数的指数部分应该是整型;C 项,单个转义符没有意义; D 项,整数常量中间不能出现逗号。
2. 有以下函数:
程序运行后的输出结果是( )。 A.3 B.8 C.4 D.9
【答案】B
【解析】strlen 函数的作用是求字符串长度,
与
均是反义字符,各表示一个字符,所以
打印值为8。
3. 在以下给出的表达式中,与while (E )中的(E )不等价的表达式是( )。
A.
B.
C.
D. 【答案】C
【解析】ABD 三项都是E 不等于零时执行while 循环,C 项是E 等于零时执行while 循环。
4. 有以下程序:
程序运行后的输出结果是。 A.2
B.4 C. D.8 【答案】D
a 的初始值为2, 程序中将a 左移2位的结果赋值给b , 即相当于十进制乘以4, 结果为【解析】8。
5. 有以下程序:
若文本文件filea.txt 中原有内容为:hello ,贝U 运行以上程序后,文件( )。
A.Helloabc B.abclo C.abc
D.abchello 【答案】C
【解析】
为写而打开文本文件。这时,如果指定的文件不存在,系统将用在fopen 调用
文件以写的形式打开
再利用fprintf 函
中指定的文件名建立一个新文件; 如果指定的文件已存在,则将从文件的起始位置开始写,文件中
原有的内容将全部消失数对文件进行操作,而故
中的内容是abc 。
6. 以下叙述中错误的是( )。
A. 当在程序的开头包含头文件stdio. h时,可以给指针变量赋NULL B. 函数可以返回地址值
C. 改变函数形参的值,不会改变对应实参的值 D. 可以给指针变量赋一个整数作为地址值 【答案】D
【解析】不能将一个整数直接赋给指针变量作为地址,D 项错误。标准库文件stdiah 定义了 NULL 是一个 类型为void*,值等于0的对象。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。
7. 有以下定义和语句:
中的内容为
是先将文件清空,再写入,所以本题是将abc 写入
能给w 中year 成员赋1980的语句是( )。
【答案】D
【解析】w 是一个结构体变量,Pw 是一个结构体指针变量,指向w 所在的内存单元。A 项错误,pw 是指针,
所以在引用其内部变量时应该用操作符是结构体workers 中的结构体成员s 中的成员。
8. 若有定义语句执行了
A. B. C. D. 【答案】C 列表间用逗号隔开。由题知_
而不是
BC 两项错误,year
之后,输入语句正确的是( )。
,格式控制和地址【解析】输入函数scanf 使用的标准形式是:scanf (格式控制,地址列表)
即px 指向x 的地址,py 指向y 的地址。AD 两项错
误,表达式中的x 和y 都需要取地址;B 项,格式控制和地址列表间用逗号隔开。
9. 有以下程序:
程序运行后的输出结果是( )。