一、选择题
1. 若有定义inta=l,b=2,c=3;,则执行表达式II (a=b+c)(++b)后a 、b 、c 的值依次为( )。
A.1、2、3
B.5、3、2
C.5、2、3
D.5、3、3
答:C
【解析】根据优先级规则,晒边都是括号,则从左至右执行括号中的表达式,将b+c的值赋值给a ,即a 为5, 不为0, 则II 右边的括号不需要再执行。
2. 程序运行后的输出结果是( )。
A.14.0
B.31.5
C.7.5
D. 程序有错无输出结果
答:D
【解析】宏定义有两种:无参数的宏定义,即#definePT3.5; 带参数的宏定义,不能用宏来计算,宏只能做简单的代替而不能做计算,故程序会报错。
3. 有如下程序:
程序运行后的输出结果是( )。
第 2 页,共 33 页
答:D
【解析】程序执行过程为:
定义结构体变量
将
赋值给
ABC , 故D 项正确。
4. 下面结构体的定义语句中,错误的是( )。
答:B
【解析】C 语言中结构体变量的定义有3种方法:①定义结构体类型的同时定义结构体变量,如C 项;②使 用无名结构体类型定义结构体变量,如D 项;③先定义结构体类型,后定义结构体变量,如A 项。
5. 有如下程序:
程序运行时,从键盘输入:3〈回车〉后,程序输出结果为( )。
A.3, 4,
B.0, 1,
C.3, 4, 5,
D.0, 1, 2, 3,
答:D
【解析】break 语句作用是结束整个循环过程,不再判断执行循环的条件是否成立,且在嵌套循环中,其只跳出最内层的一层循环。本题执行过程为:输入3, 则data=3; 执行for 循环,在
时,if 条件不成立,执行语句依次输出i 值,0,1,2,3; 直到i=4时,if 条件成立,执行break 退出for 循环。故D 选项正确。
6. 若变量已正确定义,有以下程序段
i=0:
第 3 页,共 33 页 调用strcpy
函数为结构体成员赋值
最后输出结果为
其输出结果是( )。
A.0, 1
B.0, 0
C.1, 1
D. 程序进入无限循环
答:A
【解析】首先进入do 语句,输出0
; 是先判定i 是否为0, 不管判定结果如何,都执行i++。i 等于0,判定结果为false ,执行i++,跳出do-while 循环,然后输出1。
7. 以下叙述中错误的是( )。
A. 算法正确的程序最终一定会结束
B. 算法正确的程序可以有零个输出
C. 算法正确的程序可以有零个输入
D. 算法正确的程序对于相同的输入一定有相同的结果
答:B
【解析】算法的5个特性:①有穷性;②确定性;③可行性;④有零个或多个输入;⑤有一个或多个输出。
8. 有以下程序
程序的运行结果是( )。
答:D
【解析】首先用函数的方式开打文件
第 4 页,共 33 页 然后调用两次fwrite 函数将数组a