一、选择题
1. 对于一个正常运行的C 程序,以下叙述中正确的是( )。
A. 程序的执行总是从程序的第一个函数开始,在main 函数结束 B. 程序的执行总是从main 函数开始
C. 程序的执行总是从main 函数开始,在程序的最后一个函数中结束
D. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束 答:B
【解析】一个正常运行的C 程序总是从main 函数开始执行,最后返回到main 函数结束。
2. 有以下程序:
程序运行后的输出结果是( )。 A.2, 1 B.6, 1 C.6,0 D.2, 0
答:A
【解析】程序前面表达式等同于a=2; 优先级低于
程序执行过程为:c=241, c/100=2, 2%9=2, 得
为真,
非0值为真,0值为假,即(-1)为真,逻辑与表达式
得b=l。
3. 变量a 中的数据用二进制表示的形式是01011101,变量b 中的数据用二进制表示的形式是11110000。若要求将a 的高4位取反,低4位不变,所要执行的运算是( )。
A.
B.
C.
D. 答:A
A 项,【解析】
结果为10101101,
B 项,01011101|11110000表示异或运算;
结果为11111101, “|”表示或运算;C 项,D 项,
4. 有以下程序:
结果为01010000, 表示按位与;
程序运行后的输出结果是( )。 A.3344 B.2050 C.3040 D.0304 答:C
【解析】main 函数的主体是一个for 循环语句,for 循环中包含一个switch 语句,如果判断条件为0则进入第二个switch 语句,如果判断语句为1则执行
,最后将数组顺序输出。所
以程序功能是将数组的偶数项设为0, 奇数项如果为奇数则减1,为偶数就加1,最后得到结果。
5. 以下函数findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错,导致不能实现预定功能。
造成错误的原因是( )。
A. 定义语句inti ,max ; 中,max 未赋初值 B. 赋值语句max=MIN; 中,不应给max 赋MIN 值 C. 语句
中,判断条件设置错误
D. 赋值语句max=MIN; 放错了位置 答:D
【解析】该题中for 循环先将MIN 值赋值给max ,再判断x[i]与max 的值比较,即每次都是将MIN 值与X[i]值进行比较,因为MIN 被定义为整型的最小值,所以无论x[i]的值是什么都不会影响if 的判断语句,始终执行max=x[i]。所以最后返回的是最后一个x[i]的值,本题的错误在于max=MIN的位置错误,max=MIN应该放在for 循环之前,仅在循环之前赋一次值,然后在循环中不断跟新max 的值。
6. 若变量已正确定义。在
A.
B.
C.
D. 答:A
中,以下不可替代W 的是( )。
【解析】在C 语言中,并没有运算符,判断不相等时,使用
7. C 语言整数不包括( )。
A. 带小数点的整数 B. 正整数 C. 负整数 D. 无符号整数 答:A
其他三个选项都可以。
【解析】C 语言整数包括正整数,负整数,无符号整数,不含带小数点的整数。
8. 有以下程序:
程序运行后的输出结果是( )。