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

2018年宁波大学信息科学与工程院914C程序设计[专硕]考研核心题库

  摘要

一、选择题

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

A. 函数的形参类型不能是指针类型

B. 函数的类型不能是指针类型

C.

设有指针变量为

【答案】C

【解析】C 项正确,一般情况下,double 类型的变量长度为8个字节,对指针进行加、减运算时,数字“1”指1个存储单元长度。A 项错误,函数的形参可以是数值类型,也可以是指针类型;B 项错误,C 语言中有指向函数的指针,称为函数指针;D 项错误,int 类型的指针只能指向int ,不能指向double ,指针变量不能混用。

2. 有以下程序

执行后的输出结果是( )。

A.32

B.24

C.5

D.40

【答案】A

【解析】自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形式表达式的值为运算分量加1之前的值。题目中使用了一个for 循环,循环变量i 从1递增到40。在循环体中有两条嵌套的if 语句,首先判断i++%5==0,即判断i++的值(i 加1之前的值)是否能被5整除(判断后i 被加1),然后再判断++i的值(i 加1之后的值)是否能被8整除(判断后i 被加1),若两个条件都满足了,就输出i 的值,只有i=30时,满足i++%5==0,此时i=31,++i%8==0成立,此时i=32。

第 2 页,共 60 页 则p+1将指针p 移动8个字节 D. 基类型不同的指针变量可以相互混用

3. 若有定义语句intb=2;, 则表达式

A.4

B.8

C.0

D.2

【答案】

B

值为真即为1, 最后计算8/1的值,为8。

4. 有以下程序

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

A.2,3,1

B.2,3,2

C.2,3,3

D.2,2,1

【答案】A

【解析】对于表达式“z=x++,y++,++y; ”,赋值运算符的优先级高于逗号运算符的优先级,可改成“(z=x++),(y++),(++y)”。然后从左向右先计算表达式z=x++,因为x++先使用后自増,所以z 的值为1,x 的值为2。再计算逗号表达式第二个表达式y++,此时y 的值为1,y++的值为2。最后计算第三个表达式++y,y 的值为3。

5. 有以下程序(其中k 的初值为八进制数):

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

A.12

B.11

C.10

D.9

【答案】D

【解析】k 的初值是八进制数011,转换为十进制数就是9,在输出时自增运算符“++”是作

第 3 页,共 60 页 的值是( )。 【解析】b=2, 转为二进制即为0010,首先将b 左移两位,变成1000,即十进制的8, 3llb 的

为后缀出现的,因此是先输出9,然后k 的值再自增1。

6. 若有定义inta=l,b=2,c=3;II ,则执行表达式(a=b+c)(++b)后a 、b 、c 的值依次为( )。

A.1、2、3

B.5、3、2

C.5、2、3

D.5、3、3

【答案】C

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

7. 有以下程序段:

则的值为( )。

A.5

B.10

C.12

D. 无法确定

【答案】A

【解析】当直接用数组名给指针赋初始化值时,表示把数组首地址的值赋给指针,

8. 执行以下程序段后,w 的值为( )。

A.-1

B.NULL

C.1

D.0

【答案】C

【解析】

因为

真,因此

9. 有以下程序:

第 4 页,共 60 页 表示

地址赋给表示将数组第5

个元素地址赋给故答案为A 选项。 都是非零整数,

因此的值为1。 又因为知也为