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

2017年大连海洋大学610C语言程序设计复试仿真模拟三套题

  摘要

一、选择题

1. 关于地址和指针,以下说法正确的是( )。

A. 通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量

B. 可以取一个常数的地址赋值给同类型的指针变量

C. 可以取一个表达式的地址赋值给同类型的指针变量

D. 可以取一个指针变量的地址赋值给基类型相同的指针变量

【答案】A

【解析】常数的地址存储在内存的常量区,常量区存储的都是常量,值都是不可修改的,所以直接取常量的 地址赋给指针变量没有任何意义,C 语言也不允许这样做,编译会出错,B 选项错误;表达式的值存储在临时变 量中,内存中存在专门用来存储临时变量的区域,对这块地址进行操作也是没有意义的,C 语言不允许这样做,编译会出错,C 选项错误;可以取一个指针变量的地址,但是指针变量的地址属于指针,只能赋值给指针类型的指针变量,D 选项错误。故答案为A 选项。

2. 设有如下语句:

则以下叙述中错误的是( )。

A.DA TE 是用户定义的结构体变量

B.structDate 是用户定义的结构体类型

C.DA TE 是用户说明的新结构体类型名

D.struct 是结构体类型的关键字

【答案】A

【解析】C 语言允许用typedef 说明一种新类型名,其一般形式如下:typedef 类型名新类型

DA TE 是这种新类型的名字。DATE ,名;题目中定义了新类型Date ,这种类型变量包含3个成员,

是用户说明的新结构体类型名,不是结构体变量,C 选项叙述正确,A 选项叙述错误,选择A 选项。structDate 是用户定义的结构体类型,B 选项叙述正确。struct 是结构体类型的关键字,D 选项叙述正确。

3. 设有如下程序段:

以下叙述正确的是( )。

A. 只有a ,b ,c 的定义是合法的

B.a , b ,c ,d 的定义都是合法的

C. 只有a , b 的定义是合法的

D. 只有c 的定义是合法的

【答案】C

【解析】在对数组进行初始化时,如果对数组的全部元素赋以初值,定义时可以不指定数组长度,如果被定义数组的长度与初值个数不同,则数组长度不能省略;如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C 语言将自动对余下的元素赋初值。定义整型数组a ,长度为8, 并且其每个元素赋初值0, a 定义是合法的。定义整型数组b , 没有指定长度,但为1个元素赋值0,所以自动指定数组长度为1,b 定义是合法的。定义字符型数组c ,长度为2, 应对其元素赋值字符型常量,而“A ”与“B ”均为字符串,c 定义不合法。定义字符d ,赋初值字符串“AB ”,这是不合法的定义,若要定义数组,必须要

有下标运算符。可知,ab 定义合法,cd 定义不合法,C 项正确。

4. 有以下程序:

程序:

程序的运行结果是( )。

A.6

B.5

C.4

D.3

【答案】A

【解析】程序执行过程为:定义字符串指针p 并为其初始化为“01234”,调用函数fun (p ), 将指针传入函 数。while 循环找到字符串的束符地址,然后使这个指针指向结束符下一个单元,结束循环。返回字符串首地址 与结束符下一个地址之差,也即是字符串长度加1。输出地址差为6, 故A 选项正确。

5. 以下不能用于实型数据的运算符是( )。

【答案】A 【解析】符号两边必须是整数,因此答案为A 项。

6. 有以下程序:

执行时如输入为:则输出结果是( )。

A.abcdefg B.

c.

D.bcdefgh

【答案】D

【解析】题目中for 语句含义是,每次将函数getchar ( )的输入值赋给变量c ,如果不等于‘#’,则执行putcbar (++c), 即将当前变量c 值的ASCII 码+1后,再输出改变后的变量c 的值。当变量c 的值等于‘#’,则终止循环,所以输出应该是bcdefgh ,答案为D 选项。

7. 已定义以下函数

fun 函数返回值是( )。

A. —个整数

B. 不确定的值

C. 形参p 中存放的值

D. 形参p 的地址值

【答案】A

【解析】题目中fun ( )函数的返回表达式是

型指针,所以该值是一个整数。

8. 有以下程序:

是形参p 所指内容的值,因为p 为int