一、选择题
1. 设有以下语句
执行后,c 的值为( )。
A.9
B.7
C.8
D.6
答:A 【解析】后得到8, 异或操作,两个操作数相同得0, 不同得1。a 的最右4位是0001,b
的最右4位是1000, 其佘尾全部是0。
2. 设有两行定义语句:
int scanf;
float case;
则以下叙述正确的是( )。
A. 两行定义语句都不合法
B. 两行定义语句都合法
C. 第1行语句不合法
D. 第2行语句不合法
答:D
【解析】预定义标识符是系统已经有过定义的标识符,用户可以重新定义,可以作为变量名。scanf 为库函 数名,属于预定义标识符,可以被用户重定义,第一行语句合法。C 语言关键字是被保留的,不能用作其他用途 的一些标识符,它们在程序中都代表着固定的含义,用户不可重新定义。case 是选择结构switch 语句中的关键字,不可被用户重定义,第二行语句不合法。
3. 以下程序段中,不能实现条件“如果a
A.
B.
C.
D.
答:D
【解析】A 项:条件运算符?运算过程为:如果a>=b,x=—10, 否则x=10, 能实现题目中功能。B 项:如果a=b情况下有x=—10, 能实现题目中功能。如果a
则x=—10,其中没有对a=b进行判断,不能实现题目中功能,选择D 项。
4. 有以下程序:
程序运行的结果是( )。
A.4
B.34
C.31
D.32
答:C
【解析】函数fun 通过数组指针引用二维数组,其作用是遍历
中最大的元素。
5. 以下叙述中正确的是( )。
A.C 程序中的注释只能出现在程序的开始位置和语句的后面
B.C 程序书写格式严格,要求一行内只能写一个语句
C.C 程序书写格式自由,一个语句可以写在多行上
D. 用C 语言编写的程序只能放在一个程序文件中
答:C
【解析】C 程序的注释可以出现在C 程序的任何位置,注释符号:“//”或“/*•••*/”。C 程序中,一行内可写多个语句,每条语句用分号“;”结束。用C 语言编写的程序可以放在多个程序文件中,用#indude命令行实现文件包含功能。
6. 有以下程序:
程序的运行结果是( )。
找出数组
A.3
B.5
C.6
D. 结果不确定
答:A
【解析】( )的优先级大于*,故先将1.99强制转化为1,即浮点数1.99被强制转换成1,执行语句a=(int )1.99*3;计算得a=lX3=3。
7. 以下叙述中错误的是( )。
A. 在程序中凡是以“#”开始的语句行都是预处理命令行
B. 预处理命令行的最后不能以分号表示结束
C.#defineMAX是合法的宏定义命令行
D.C 程序对预处理命令行的处理是在程序执行的过程中进行的
答:D
,其中的末尾不得用“;【解析】在C 语言中,以“#”开头的行都称为“编译预处理命令行””
结束,区别语句的定义和说明语句。C 项,中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C 源程序进行编译前执行的。
8 若有定义inta , b ;, 通过语句能把整数3赋给变量a , 5赋给变量.
b 的输入数据是( )。
A.35
B.3, 5
C.3;5
D.35
答:C
scanf 函数在输入字符型时,【解析】要求输入数据时按照一一对应的位置原样输入这些字符。
根据语句scan
隔,故输入3; 5。
9. 有如下程序:
即要求输入整型数3和5, 由于语句中间是由相