2017年中国人民大学信息学院(专业学位)程序设计复试仿真模拟三套题
● 摘要
一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。
A.1, 2
B.3, 4
C.5, 6
D.123, 456
【答案】C
【解析】程序中首先定义一个一维数组,然后将数组中的值写入到中,然后再从中读出数组中的元素,每次读出2个元素,分别赋值给k 和n , 循环执行3次,故最终k 和n 的值为5和6。
2. 若在程序中变量均已定义成int 类型,且已赋大于1的值,贝!J 下列选项中能正确表示代数
式的表达式是( )。
A.1.0/a/b/c
B.1/(a*b*c)
C.1.0/a*b*c
D.1/a/b/(double )c
【答案】A
【解析】abc 均大于1, 所以表达式1/abc小于1,需要用浮点类型表示。若要计算表达式值,需要使其自动转化成浮点类型,A 项正确。B 项变量与常量均为整型,不会自动转换为浮点类型,B 项错误。C 项表示表达式be/a,错误。D 项,算数运算法结合性自左向右,先计算1/a,结果为0, 之后的计算无论是否转换数据类型结果均为0, D 项错误。
3. 有以下程序
执行后的输出结果是( )。
A.2
B.3
C.7
D.0
【答案】A
【解析】函数的递归调用,调用过程如下表所示。
4. 有以下程序:
程序运行后的输出结果是( )。
A.0
B. 变量无定义,输出不确定
C.-1
D.1
【答案】A
【解析】NULL 是包含在头文件stdiah 中的宏定义,其数值由编译器确定,一般情况下是0。
5. 设有定义:
则以下赋值语句中正确的是( )。
A.s[0]=m[l];
B.s=m;
C.s.l3=m.n;
D.s[2].x=m[2].x;
【答案】A
【解析】定义了结构体类型数组s ,长度为2,结构体类型数组m ,长度为2,并进行了初始化。同类型的结构体可以直接用变量名实现赋值,A 选项正确。数组名为数组首地址,地址常量之间不可以相互赋值,B 选项错误。C 选项引用结构体成员错误,数组名为地址常量不是结构体变量,不能引用成员。D 选项数组越界,不存在s[2]与m[2]。
6. 以下选项中错误的是( )。 A. B. C. D.
【答案】D
【解析】D 项,表示a 不等于b 时,运算结果为1,或者为0; 而^是一种语法错误,是非运算,且是单目运算符,只要求有一个操作数,故两者不等价。
7. 以下选项中正确的语句组是( )。 A. B. C. D.
【答案】D
【解析】字符串常量在赋值过程中给出的是这个字符串在内存中所在的一串连续存储单元的首地址。在初始 化字符串时,若选择给指针赋值字符串的方式应
为
三项错误,在给数组赋值
的时候应该为:
8. 若有以下程序
则程序的输出结果是( )。
A.H9
B. 表达式不合法输出无定值 C. D.
【答案】A
或是