2017年河北科技师范学院数学与信息科技学院341农业知识综合三[专业硕士]之C程序设计考研强化模拟题
● 摘要
一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。
A.02
B.13
C.57
D.12
【答案】D
【解析】(表达式1)(表达式2)中,如果表达式1为假或0, 那么表到式2就不会被执
和为零,不满足循环条件,所以不行。本题中首先进入while 的判断语句,执行会被执行,while 循环结束后,k 经过运算自增为1, n没有进行运算,仍为2。
2. 有以下程序:
程序运行后的输出结果是( )。
A.0
B.1
C.4
D.8
【答案】C
【解析】对局部静态变量在编译时赋初值,以后每次调用函数时一直保持不变,只是保留上次函数调用结束 时的值。在主函数中调用了两次fim0函数,所以x 的值变为
3. 有以下程序:
程序运行后的输出结果是( )。
A.INT :14
B.INT :13
C.INT :12
D.INT :20
【答案】D
【解析】0x13是十六进制数,需要输出十进制数,换算成十进制:输出INT=x+l=20,因此答案为D 选项。
4. 设有n 个数按从大到小的顺序存放在数组x 中,以下能使这n 个数在x 数组中的顺序变为从小到大的是( )。
【答案】A
【解析】本题使用for 循环实现数组元素首尾倒置。A 项中控制变量上限为n/2, 用变量t 实现数组下标值i 与的元素交换,使数组元素首尾倒置,从而实现从小到大排列,A 项正确。B 项控制变量上限为m 用变量t 实现数组下标值i 与n-i-1的元素交换,当i=n/2时,已经实现数组首尾倒置,而继续运行至i=n,将再次将新的数组首尾倒置,与原数组相比没有发生变化,依然是从大到小排列,B 项错误。C 项数组越界,i=0时x[n+ll不存在,C 项错误。D 项控制变量每次加2, 实现数组偶数下标值的元素首尾倒置,奇数下标值元素不变,不能实现整个数组从小到大排列,D 项错误。
5. 有以下程序
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是( )。
A.1245
B.1256
C.1278
D.1267
【答案】A
【解析】scanf ( )是格式化输入函数;getehar ( )函数从键盘缓冲区读入下一个字符;putehar ( )输出一个字符;printf ( )函数是格式化输出函数。在题目中,程序执行到scanf ( )函数时,会暂停等待用户输入4个字符,按题意输入123〈回车〉后,字符1〜3被分别赋值到cl 〜c3中,而c4会得到一个换行符然后执行第1个getchar ( )函数,由于前面的scanf ( )函数读完了缓冲区中的所有字符,所以此时程序又会暂停等待用户输入,按题意输入45678〈回车〉后,缓冲区第一个字符4赋值c5, 第二个字符5赋值给c6。
6. 有以下程序
程序运行后输出结果是( )。
A.0, 2
B.0, 3
C.1, 3
D.1, 2
【答案】D 【解析】
话,则是与逻辑操作符,两侧都为真,结果为真,否则结果为假;如果前面为0的. 后面的不予判定,这是逻辑操作符的短路特性。
的执行顺序是,先判定a 是否等于0, 如果等于0, 执行a++,跳出循环(短