2017年南京工业大学C,C++程序设计复试仿真模拟三套题
● 摘要
一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。
A.7, 4
B.4, 10
C.8, 8
D.10, 10
【答案】B
【解析】在C 语言中,strlen ( )用来统计字符串中字符的个数,sizeof ( )是求分配给数组的存储空间大小。题目中字符串a 中字符个数为4, 但由于数组a 定义含有10个字符,所以所占空间大小为10。
2. 有以下程序
程序运行后,若从键盘输入(从第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。
3. 已知大写字母A 的ASCII 码是65,小写字母a 的ASCII 码是97。以下不能将变量c 中的大写字母转换为对应小写字母的语句是( )。
A.c=c+32 B. C. D.
【答案】B
【解析】大写字母转换为对应小写字母,即加上32, B 项不是累加32。
4. 有如下程序:
程序运行后的输出结果是( )。
A.ABC
B.012
C.abc
D.123
【答案】B
【解析】while 循环语句执行时,首先判断表达式,成立(非0)则执行循环体,不成立(0)则退出循环。字符之间做加减法,是用其ASCII 码进行加减,所以程序执行过程为:定义字符变量ch=‘A ’,判断‘A ’<‘D ’成立,‘A ’-‘A ’=0,输出0, ch++后,值为‘B ’;判断‘B ’<‘D ’成立,‘B ’-‘A ’=1, 输出1, ch++后,值‘C ’;判断‘C ’<‘D ’成立,‘C ’-‘A ’=2,输出2,ch++后值‘D ’;判断‘D ’<‘D ’不成立,退出循环。程序运行后的输出结果是012, 故B 项正确。
5. 有以下程序
:
程序运行后的结果是( )。
A.1, 2, 4
B.1, 3, 6
C.3, 10, 14
D.3, 6, 10
【答案】C
【解析】case 分支后面如果没有break , 那么就会顺序执行下面的case , 直到遇到break 跳出或者到switch 语句块结尾。所以第一次循环后s 的值为3, 打印输出。第二次S 的值为即
为10, 打印输出。第三次没有匹配成功直接执行default 语句,s=s+4, 所以s 的值为14, 打印输出。
6. 以下选项中,能用作数据常量的是( )。
A.o115
B.0118
C.1.5el.5
D.115L
【答案】D
【解析】A 项错误,十六进制数用数学0和字符x (或大写字母X )开头;B 项错误,八进制整数常量以数字0开始,有效数字为0〜7;C 项错误,C 语言中实型常量有两种表示:小数形式
和指数形式。指数形式中,字母e (或E )之前必须要有数字,且e 或E 后面的指数必须为整数。
7. 关于C 语言标识符,以下叙述错误的是( )。
A. 标识符可全部由数字组成
B. 标识符可全部由下划线组成
C. 标识符可全部由小写字母组成
D. 标识符可全部由大写字母组成
【答案】A
【解析】标识符只能由字母、数字、下划线组成,且标识符的第一个字符只能是字母或下划线。所以,B 、C 、D 选项正确,答案为A 选项。
8. 设有如下程序段:
以下叙述正确的是( )。
A. 只有a ,b ,c 的定义是合法的
B.a , b ,c ,d 的定义都是合法的
C. 只有a , b 的定义是合法的