一、选择题
1. 若变量已正确定义,则以下for 循环( ):
A. 执行4次B. 执行3次
C. 执行次数不确定
D. 执行123次
【答案】C
【解析】
优先级低于
逻辑与表达式。规则为:对expl 求值,若为0, 则表达式为0, 则不计算exP2; 若expl 非0, 则求exP2值,作为表达式值。本题计算过程为:先判断a>b为假,m=0, 整个逻辑表达式为假,不计算右表达式,n=2。故C 选项正确。
2. 有以下程序:
程序运行时键盘输入9〈回车>,则输出的结果是( )。
A.10
B.11
C.9
D.8
【答案】A
【解析】“++”和“一”运算,当以前缀形式出现时,贝U 先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,再进行加一或减一操作。判断条件中if (a++<9)是先用后加,即a 的值为9,所以条件不成立,但是a 已经进行了自增1操作,a 的值此时为10。执行else 语句时,因为打印a_-,是先用后减,所以先输出10,然后a 的值变为9。
3. 有以下程序:
程序运行后的输出结果是( )。
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。
4. 设有定义:doublex=2.12; ,以下不能完整输出变量x 值的语句是( )。
【答案】A
【解析】printf 函数控制字符财输出float 类型,%If 输出double 类型。格式控制%m.nf ,表示数据输出总的宽度为m 位,其中小数部分占n 位。当数据的小数位多于指定宽度n 时,截去右边多余的小数,并对截去的第一位小数做四舍五入处理;而当数据的小数位少于指定宽度n 时,在小数的右边补零;当m 小于有效位数时,整数部分输出所有有效数字并且自动对齐,小数部分按照n 指定位数输出。A 项按照float 格式输出数据,宽度为5位,保留小数0位,输出为2,不能完整输出X ,选择A 项。B 项按照float 格式输出数据,输出为2.120000。C 项按照double 格式
输出数据,输出为2.120000〇D 项按照float 格式输出数据,保留小数位数为5,输出为2.12000。
5. 若有以下程序
则程序的输出结果是( )。
A.5, 1, 2, -1
B.2, 1, 2, -1
C.2, 2, 2, 4
D.1, 2, 3, 4
【答案】A 【解析】和II 是逻辑运算符,符号两侧都为真时,结果为真,否则返回假;苻号两侧都为假时,结果为假,否则返回真。
题目没有答案,原题可能是
输出a ,b ,c ,d
第一个if 判定表达式中是两个赋值语句,结果判定为true ,执行结束后a=2, b=l,c=2在第二个if 判定表达式中,c==3判定为false ,然后执行d=-l,非零值,判定为true ,所以执行a=5,最终结果是a=5,b=1,c=2,d=-1,选A 。
6. 若程序中有宏定义行:
#defineN100
则以下叙述中正确的是( )。
A. 宏定义行中定义了标识符N 的值为整数100
B. 在编译程序对C 源程序进行预处理时用100替换标识符N
C. 上述宏定义行实现将100赋给标识符N
D. 在运行时用100替换标识符N
【答案】D
【解析】D 项正确,预处理程序对源程序中所有使用宏名的地方进行直接替换。A 项错误,宏定义没有类型限制;B 项错误,预处理程序进行宏替换,而非编译程序;C 项错误,宏定义不是赋值操作,而是进行在预编译时进行替换。
7. 有如下定义:
若文件已正确打开,且数组x 的10个元素均已赋值,以下将数组元素写到文件中的语句错误的是( )。
【答案】A
【解析】A 项中,因为n=l, 即每次写入1个结构体数据,x 是数组的首地址,因此,每次写入的数据都是数组的首个结构体元素,没有将整个数组写入文件中去。
8. 有以下程序: