一、选择题
1. 有如下程序:
程序运行后的输出结果是( )。
答:A
【解析】
后的结果
2. 设有定义
A.
B.
C.
D.
答:A 右移运算符。程序执行过程为:定义结构体数组data ,并且初始化,
则
循环依次输出结构体变量的成员与经过位运算之
4,1, 1, 4。 程序运行后输出结果为:以下选项中能够使字符型指针c 正确指向一个字符串的是( )。
【解析】scanfO 函数是将C 定义为一个字符数组的数组名,选项C 是将c 定义为一个字符型变量,选项 D 应该是在指针的定义同时为它赋值,否则是不合法的。选项A 中定义字符数组str ,再将字符数组stt 的首地址 赋给字符型指针C 。
3. 以下函数findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错,导致不能实现预定功能。
造成错误的原因是( )。
A. 定义语句inti ,max ; 中,max 未赋初值
B. 赋值语句max=MIN; 中,不应给max 赋MIN 值
C. 语句
答: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 的值。
4. 以下叙述中正确的是( )。
A. 数组说明符的一对方括号中只能使用整型常量,而不能使用表达式
B. —条语句只能定义一个数组
C. 每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元
D. 在引用数组元素时,下标表达式可以使用浮点数
答:C
【解析】C 项正确,数组内部的变量都是同一类型,在内存中是连续存储的。A 项错误,方括号中应当是整型常量表达式,可以使用表达式,只要计算结果是整型常量即可;B 项错误,可以使用逗号隔开,来定义多个数组;D 项错误,引用数组时,下标必须是自然数,还应保证下标不越界。
5. 以下选项中,能用作数据常量的是( )。
答:D
中,判断条件设置错误 D. 赋值语句max=MIN; 放错了位置
【解析】A 项错误,十六进制数用数学0和字符x (或大写字母X )开头;B 项错误,八进制整数常量以数字0开始,有效数字为0〜7; C项错误,C 语言中实型常量有两种表示:小数形式和指数形式。指数形式中,字母e (或E )之前必须要有数字,且后面的指数必须为整数。
6. 有以下程序:
程序的运行结果是( )。
答:A
【解析】结构体作为函数参数时是传值调用。本题中,函数传递的是实参结构体变量中的值。函数体内对形参结构体变量中任何成员的操作都不会影响对应实参中成员的值。因此f ( )没有任何实际作用。
7. 有以下程序
程序执行后的输出结果是( )。
A.lbc ,a23
B.abc ,123
C.123,abc
D.321,cba