2017年河海大学计算机与信息学院838数据结构及程序设计考研仿真模拟题
● 摘要
一、选择题
1. 以下程序段中,循环次数不超过10的是( )。 A. B. C. D.
【答案】A
【解析】A 项,
执行函数体判断条件不成立,退出循环,循环次数为1,不超过10
由于执行函数体时i 在增加,一直成立,
由于函次,A 项正确。B 项执行函数体i=6, 判断条件为程序陷入无限循环,循环次数大于10, B 项错误。C 项执行函数体i=3, 判断条件为
D 项执行函数体i=4, 判断条件为数体中i 每次増加2, 所以永远不可能等于10, 故程序会陷入无限循环,循环次数大于10, C 项错误。由于函数体中i 每次减少2, 所以永远不可能等于1,故程序会陷入无限循环,循环次数大于10, D 项错误。
2. 有以下定义:
inta ;
longh ;
double x,y ;
则以下选项中正确的表达式是( )。
【答案】C
【解析】C 项正确,(int )(x-y )是把x-y 得到的浮点数强制转换成整型。A 项错误,a*y结果是浮点数,不能参与模运算;B 项错误,C 语言中没有<>运算符;D 项错误,x+y是右值,不能给其赋值。
3. 有如下程序:
程序运行后的输出结果是( )。
A.56,57,
B.57,58,
C.57,57,
D.55,57,
【答案】C
【解析】convert ( )函数定义了一个形参:指针变量*data。函数体中将指针变量*data对应地址的值进行加1处理,再返回加1前data 的值。main ( )函数中,定义了变量data 并赋初值56,调用covert ( )函数,改变变量data 的值,此时data=57; 程序执行data=convert
,函数convert ( )返回的是执行前data 的值,所以data=57。C 项正确。 (&data)
4. 以下选项中,值为1的表达式是( )。
【答案】C
【解析】ASCII 码表
,
5. 有以下程序段:
选C 。
当执行上述程序段,并从键盘输入:name=Lilinum=1001<回车>后,name 的值为( )。
A.Lili
B.name=Lili
C.Lilinum=
D.name=Lilinum=1001
【答案】A
【解析】在C 语言中输入多个字符串时,系统会把空格字符作为输入的字符串之间的分隔符。本题中,由于输入两个变量,所以中间应该以回车键为间隔,当从键盘输入name=Lilinum=1001只是输入第一个变量,并且只将Lili 赋值给了name 。
6. 以下程序段中,与其他三个功能不同的程序段是( )。
【答案】A
【解析】B 、C 、D 项都表示对1到10进行累加后赋给s ,而A 项中含break 语句,循环体只执行一次,结束整个循环过程。
7. 以下关于C 语言函数参数传递方式的叙述正确的是( )。
A. 数据只能从实参单向传递给形参
B. 数据可以在实参和形参之间双向传递
C. 数据只能从形参单向传递给实参
D.C 语言的函数,参数既可以从实参单向传递给形参,也可以在实参和形参之间双向传递,可视情况选择使用
【答案】A
【解析】数据只能由实参单向传递给形参称为“值传递”,而不能由形参传给实参,A 项正确;数组名、指针等作参数,实参传递给形参的是地址值,这样形参和实参就指向同一段内存单元,在函数体内对形参数据的改 变也将影响到实
8. 有以下说明语句:
指针s 所指字符串的长度是( )。
A.17
B.15
C.14
D. 说明语句不合法
【答案】C
【解析】以
9. 有以下程序:
程序运行时键盘输入
A.10
B.11
C.9
D.8 则输出的结果是( )。 开头的转义字符也是字符常量。用一对双引号括起来的多个字符为字符串。
为转义字符,所以字符串长度为14。