2018年上海海事大学文理院828数据结构及程序设计之C程序设计考研基础五套测试题
● 摘要
一、选择题
1. 有以下程序:
程序运行后输出的结果是。
A.0, 4, 5
B.4, 4, 5
C.4, 4, 4
D.0, 0, 0
【答案】A
【解析】C 语言中可以将多条语句放在同一行,用“;”隔开。赋值运算和逗号运算都是从左到右结合。首先执行A-=A-5,即A=A-(A-5),得A 的值为5, 然后执行C=(A-=A-5), 即将A 的值5赋给变量C , 使得C 的值也为5。然后执行下句逗号表达式中的A=B, 把B 的值0赋给A ,此时A 的值为0, 然后执行B=B+4, 使得B 的值为4,最后打印输出。
2. 有以下程序:
程序运行时键盘输入
A.10
B.11
C.9
D.8
【答案】A 【解析】和则输出的结果是( )。 运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当
是先用后加,即a
第 2 页,共 40 页 以后缀形式出现时,则先取值,再进行加一或减一操作。判断条件中
的值为9, 所以条件不成立,但是a 已经进行了自增1操作,a 的值此时为10。执行else 语句时,因为打印是先用后减,所以先输出10, 然后a 的值变为9。
3. 有以下程序:
程序的运行结果是( )。
A.3
B.5
C.6
D. 结果不确定
【答案】A
【解析】( )的优先级大于*,故先将1.99强制转化为1,即浮点数1.99被强制转换成1,执行语句a=(int )1.99*3;计算得a=lX3=3。
4. 有以下程序:
程序的运行结果是( )。
A.5, 0
B.6, 0
C.5, -1
D.6,-1
【答案】C
【解析】程序执行过程为:执行do …while 的循环体:y=5,判断y 为真,x=l; y=4, x=2; y=3, x=3; y=2,x=4; y=l, x=5; y=0,判断y 为假,退出循环体。判断条件y=0为假,y=—1,退出循环。输出x , y 为5,-1, 故C 项正确。
5. 已知字母A 的ASCII 码值为65,若变量kk 为char 型,以下不能正确判断出kk 中的值为大写字母的表达式是( ) A.
第 3 页,共 40 页
B.
C.
D.
【答案】B
无法判断kk 中的值是否为大写字母,逻辑错误。B 项,
【解析】表达式等价为
大写字母的ASCII 码值是65〜90, 小写字母的ASCII 码值是97〜122,isalpha (kk )是判断kk 是否是字母的函数,是字母并且字母ASCII 值小于91的一定为大写字母。
6. 以下选项中合法的C 语言赋值语句是( )。
A.++i;
B.a=b=34
C.a=3,b=9
D.k=int(a+b);
【答案】A
【解析】B 项和C 项缺少分号,不合法。D 项类型转换不合法,应为k=(int )(a+b)。
7. 有以下程序:
程序运行后的结果是( )。
【答案】D
【解析】main 函数首先将数组a 中的元素值写入文件,再将文件中的元素倒序存放在数组a 中,最后答应数组a 的值,最终输出为6, 5, 4,3, 2,1。
8. 若有定义语句:则表达式的值为( )。
【答案】B
第 4 页,共 40 页