一、选择题
1. 有以下函数:
程序运行时从第一行开始输入
A.
B.this is a C. D.
答:C 则输出结果是( )。
【解析】scanf 语句接收字符串时遇到空格就认为字符串的结束,所以a 数组中为this , b数组中为is ,但是 gets 函数遇到回车才认为结束,所以c 数组为
2. 有以下程序:
程序运行时键盘输入
A.10
B.11
C.9
D.8
答:A 【解析】
和则输出的结果是( )。 运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当
是先用后加,即a 以后缀形式出现时,则先取值,再进行加一或减一操作。判断条件中
因为打印是先用后减,所以先输出10, 然后a 的值变为9。
3. 有以下程序
第 2 页,共 34 页 的值为9, 所以条件不成立,但是a 已经进行了自增1操作,a 的值此时为10。执行else 语句时,
程序运行后的输出结果是( )。
A.2,3,1
B.2,3,2
C.2,3,3
D.2,2,1
答:A
,赋值运算符的优先级高于逗号运算符的优先级,【解析】对于表达式“z=x++,y++,++y; ”
,,可改成“(z=x++)(y++)(++y)”。然后从左向右先计算表达式z=x++,因为x++先使用后自増,
所以z 的值为1,x 的值为2。再计算逗号表达式第二个表达式y++,此时y 的值为1,y++的值为2。最后计算第三个表达式++y,y 的值为3。
4. 以下C 语言用户标示符中,不合法的是 。
答:D
【解析】C 语言中的标识符只能由字母、数字和下画线构成,且第一个字符必须是字母或下
画线,同时不能与C 语言中的关键字相同。D 项还有非法字符
5 若有定义语句,
则错误引用x 数组元素的是( )。.
A. 1
B.
C.
D.
答:B
【解析】对一维数组元素可以采用多种方式。直接引用,数组名[下标],数组的大小为n 时,
B 项错误,下标的取值范围为0〜(n_l)。数组x 的下标为0〜4, A 项,溢出。通过指针访问C
D 项,通过数组名访问 项,通过指针访问
6. 下列选项中,能够满足“若字符串si 等于字符串s2, 则执行ST ”要求的是( )。
A. B. C. D.
答:A
第 3 页,共 34 页
【解析】字符串比较不能直接进行比较,字符串判断函数是strcmp 。
7. 以下叙述中正确的是( )。
A.C 程序中的注释只能出现在程序的开始位置和语句的后面
B.C 程序书写格式严格,要求一行内只能写一个语句
C.C 程序书写格式自由,一个语句可以写在多行上
D. 用C 语言编写的程序只能放在一个程序文件中
答:C
【解析】C 程序的注释可以出现在C 程序的任何位置,注释符号:“//”或“/*•••*/”。C 程序中,一行内可写多个语句,每条语句用分号“;”结束。用C 语言编写的程序可以放在多个程序文件中,用#indude命令行实现文件包含功能。
8. 有以下程序(注:字符a 的ASCII 码值为97):
程序运行后的输出结果是( )。
A.abc
B.789
C.7890
D.979800
答:B
【解析】a 、b 、c 的ASCII 值分别为97、98、99。程序中执行输出S 中的内容与10进行模运算后的值,s 是一个指针,首先指向字符a ,先执行97%10, 结果为7; 然后++s,指针指向下一个字符b ,执行98%10, 结果为8, 直到s 所指为空,故最后输出的结果为789。
9. 有以下定义:
则以下选项中正确的表达式是( )。
答:C
【解析】C 项正确,是把得到的浮点数强制转换成整型。A 项错误,
运算符;D 项错误,结果是浮点数,不能参与模运算;B 项错误,C 语言中没有是右值,不能给
第 4 页,共 34 页