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