当前位置:问答库>考研试题

2017年云南财经大学高级程序设计语言(C++及Java)复试仿真模拟三套题

  摘要

一、选择题

1. 有以下结构体说明、变量定义和赋值语句

则以下scanf 函数调用语句有错误的是( )。

【答案】A

【解析】A 项错误

正确,确作符优先级高于是取是取s[0]中的age 成员,scanf 函数中需要传入变量的地址。B 项等价于C 项正确是取成员;D 项正

中的name 成员,name 是char 类型数组,自身就是首元素地址。

2. 有以下程序:

程序的运行结果是( )。

A.21

B.6

C.123456

D.11

【答案】A

【解析】程序执行过程为:以读/写方式建立一个新的文本文件

内输入将1写入文件;执行for 循环,将文件指针移到文件开头,将文件第一个数值1赋给k ,再将指针移动到开头,向文件循环实现将a 数组中元素累加,结果21存放在文件中。调用rewind 将文件指

函数关闭文件,打印k 针移动到开头,调用fscanf 函数从文件中读出数值赋予k=21,调用

值。

3. 以下叙述中正确的是( )。

A. 简单递归不需要明确的结束递归的条件

B. 任何情况下都不能用函数名作为实参

C. 函数的递归调用不需要额外开销,所以效率很高

D. 函数既可以直接调用自己,也可以间接调用自己

【答案】D

【解析】D 项正确,C 语言中的函数可以递归调用,S 卩:可以直接或间接地自己调用自己。前者称简单递归, 后者称间接递归。A 项错误,递归必定要有一个明确的结束递归的条件;B 项错误,递归就是把函数名作为实参 的一种特殊情况;C 项错误,函数的递归调用过程中,系统要为每一层调用中的变量开辟存储单元,要记住每一层调用后的返回点,要增加许多额外的开销,通常会降低程序的运行效率。

4. 有以下程序:

程序的运行结果是( )。

A.abcdl234mnop5678

B.abcd234op8

C.a2o8

D.alm5

【答案】B

【解析】程序执行过程为:定义指针数组,长度为4, 并为其初始化为4个字符串。定义指向指针的指针变 量,并为其初始化为指针数组首地址。f0r 循环依次输出4个字符串,第i 个字符

串从第i 个下标值处开始输出到 字符串结束,即第一个字符串输出abed , 第二个字符串输出234, 第三个字符串输出op ,第四个字符串输出8。程序的运行结果是abcd2340p8, 故B 项正确。

5. 有以下程序:

程序运行后的输出结果是( )。

A.A

B.a

C.H

D.h

【答案】D

【解析】首先将H 赋给变量a ,问号前一个表达式成立,问号后面减去一个大写字母A 再加上小写字母a 实际是将原来的大写字母转换成小写字母,即H 转换成h ,再将结果赋给a 。

6. 若有定义

则执行表达式后a 、b 、c 的值依次为( )。

【答案】C

【解析】根据优先级规则,II 两边都是括号,则从左至右执行括号中的表达式,将的值赋值给a ,即a 为5, 不为0, 则右边的括号不需要再执行。

7 设有定义inta=0, b=l;, 以下表达式中 ,,.会产生“短路”现象致使变量b 的值不变的是( )。:

A. B. C. D.

【答案】D

【解析】++放在变量前面时,表示将变量+1, 再参与其他操作,D 项,

值是0直接判定与运算结果为0, 忽视b++的值,因此b 值不发生改变。

8. 设有定义:

intk=0;

以下选项的四个表达式中与其他三个表达式的值不相同的是( )。

A.++k

B.k+=l

C.k++

D.k+1

时,由于a