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

2016年山东大学(威海)081200计算机科学与技术程序设计(同等学力加试)复试笔试仿真模拟题

  摘要

一、选择题

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

A. 函数的返回值不能是结构体指针类型 B. 函数的返回值不能是结构体类型

C. 在调用函数时,可以将结构体变量作为实参传给函数 D. 结构体数组不能作为参数传给函数 答:C

【解析】C 项正确,结构体变量作为实参时,是传值形式调用;AB 两项错误,函数的返回值可以是结构体变量和结构体指针变量;D 项错误,向函数传递结构体数组名时,传递的是实参结构体数组的首地址,是传引用形式调用。

2. fun 函数的功能是:通过键盘输入给x 所指的整型数组所有元素赋值。在下画线处应该填写的是( )。

A. B. C. D.

答:D

【解析】数组名本身就是地址,所以不需要用符号。C 选项不能对所有元素赋值而是反复给一个数值赋值且是死循环。

3. 有以下程序:

程序的运行结果是( )。

A. B. C. D. 答:B

【解析】调用函数fun ,输出的是即输出

4. 下面选项中的程序段,没有编译错误的是( )。

答:A

A 项正确,BCD 三项错误,【解析】首先定义了字符串指针sp ,然后执行字符串常量“Hello”。数组只有在初始化是可以被赋值,不能通过赋值语句将字符串常量或其他字符数组中的字符串直接赋给字符串变量。

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. C 语言程序中,若函数无返回值,则应该对函数说明的类型是( )。

A.int B.double C.char D.void 答:D

【解析】A 项,int 表示返回值是整型;B 项,double 表示返回值是双精度型;C 项,char 表示返回值是字符型;D 项,void 表示无返回值。

7. 有以下程序段:

已知字符a 的ASCII 码十进制值为97,则执行上述程序段后输出的结果是( )。 A. 因变量类型与格式描述符的类型不匹配输出无定值 B. 输出项与格式描述符个数不符,输出为零值或不定值 C.a ,97,12k=12 D.a ,97,k=12 答:D

【解析】字符变量中的值就是该字符的Ascn 代码值,

可以参与对整型变量所允许的任何运算。

c 表示以字符格式输出ch 的值,所以输出为a ; %d表示以十进制代码的形式输出。h

,然后以十进制的值,为97; k 没有对应的输出格式,不输出。在第二个语句中,首先输出“k=”代码输出k 的值,为12。

8. 有以下程序:

程序运行后的输出结果是( )。 A.42 B.0 C.1 D.41 答:C

【解析】main 函数中定义了3个变量,a ,b 和指针变量q ,并且q 存放的是a 的地址,fun 函数中s 是重新分配的空间,将重分配的空间中存放*pl和*p2即为1和40,然后释放s ,而q 没有变化,仍然指向变量a ,故*q仍然为1。

9. 下面结构体的定义语句中,错误的是( )。