2017年河海大学计算机与信息学院838数据结构及程序设计考研强化模拟题
● 摘要
一、选择题
1. 以下叙述中错误的是( )。
A. 在程序中凡是以“#”开始的语句行都是预处理命令行 B. 预处理命令行的最后不能以分号表示结束 C.#defineMAX是合法的宏定义命令行
D.C 程序对预处理命令行的处理是在程序执行的过程中进行的 【答案】D
,其中的末尾不得用“;【解析】在C 语言中,以“#”开头的行都称为“编译预处理命令行””结束,区别语句的定义和说明语句。C 项,中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C 源程序进行编译前执行的。
2. 结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是( )。
A. 三种基本结构不可以嵌套使用
B. 顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移 C. 选择结构是根据不同的条件执行不同分支中的语句
D. 循环结构是根据条件决定是否重复、重复执行多少次循环体语句 【答案】A
【解析】结构化程序主要由3种基本控制结构组成,顺序结构是最基本的算法结构,当执行由这些语句构成的程序时,将按这些语句在程序中的先后顺序逐条执行,没有分支,没有转移,没有步骤之间的相互约束,没有 对某一步骤的多次使用,完全按照步骤的原有次序依次执行,B 选项叙述正确。选择结构根据不同的条件去执行 不同分支中的语句,C 选项叙述正确。循环结构就是根据各自的条件,使同一组语句重复执行多次,D 选项叙述正确。三种结构可以嵌套使用,A 选项叙述错误,选择A 选项。
3. 若有定义语句( )。
【答案】D
【解析】A 项,p 所指内容执行增1操作;B 项,先取P 指针所指的内容,再执行后++运算;C 项,先取P 指针所指内容,再执行前++运算;D 项,实际上是p 指针执行++操作,而后取值。
第 2 页,共 42 页
以下不能使用变量year 中的值增至2010的语句是
4. 有以下程序:
程序运行的结果是( )。 A.1,2,3,4,5,6, 7,8, 9,0, B.2, 1, 4, 3, 6, 5, 8, 1, 0, 9,
C.0,9, 8,7,6,5,4, 3,2,1, D.0,1,2,3,4,5,6,7,8,9 【答案】A
【解析】在C 语言中,函数参数的传递默认是“传值”的,即形参和实参是两个没有关系的变量,函数fun 虽然看似交换了参数值,但是只交换了形参的值,结果不会传递给实参。因此,数组C 没有变化,按原样输出。
5. 要求通过while 循环不断读入字符,当读入字母N 时结束循环。若变量已正确定义,以下正确的程序段是( )。
A )B )C )D )【答案】D
【解析】D 项正确,ch 与
表达式从右向左计算,会把_它等价
6. 有如下程序:
. 赋值给
表示先把
函数的返回值赋值给ch ,然后判断
函数的返回值是右值,
A 项逻辑错误,B 项错误,是否相等。它表示读入字母’N ’时执行循环;
函数的返回值,而_
,(等于)的优先级高于=(赋值)
不可改变,出现编译错误;C 项逻辑错误,
此时ch 的取值是0或1。
第 3 页,共 42 页
程序运行后的输出结果是( )。 A.NAME0 B.NAMEE C.NAME D. 【答案】A
【解析】程序执行过程为:调用函数disp ,将字符串“NAME”首地址传给指针str , 在while 循环中,依次
判断字符串中字符是否为
时,结束循环,
返回字符
的
不是
则输出字符,
否则结束循环。当
码0, 并输出。程序运行后的输出结果是:
NAME0。
7. 有以下程序(注:字符a 的ASCII 码值为97):
程序运行后的输出结果是( )。 A.abc B.789 C.7890 D.979800 【答案】B
【解析】a 、b 、c 的ASCII 值分别为97、98、99。程序中执行输出S 中的内容与10进行模运算后的值,s 是一个指针,首先指向字符a ,先执行97%10, 结果为7; 然后++s,指针指向下一个字符b ,执行98%10, 结果为8, 直到s 所指为空,故最后输出的结果为789。
8. C 语言中char 类型数据占字节数为( )。
A.3 B.4 C.1 D.2
【答案】C
【解析】char 为关键字。字符变量在内存中占一个字节,可以存放ASCII 字符集中的任何字符。
9. 设有以下语句
第 4 页,共 42 页
相关内容
相关标签