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

2017年南京林业大学林学院809C程序设计考研仿真模拟题

  摘要

一、选择题

1. 表达式:(int )((double )9/2-(9)%2)的值是( )。

A.0

B.3

C.4

D.5

【答案】B

,【解析】运算符“/”“%”的优先级高于“-”故先进行除法和求余运算,再进行减法运算。

强制类型转换表达式的形式为:(类型名)(表达式)。“9/2”转换成double 类型,再转换成int 类型,结果为4, 减号后面的结果为1,故结果为3。

2. 有以下程序

程序的输出结果是( )。

A.7 1

B.4 3

C.3 4

D.0 0

【答案】A

【解析】main 函数中变量c 和d 以传地址的方式传递参数,形参的改变会导致实参的改变。

3. 下面的函数调用语句中func 函数的实参个数是( )。

A.3

B.4

C.5

D.8

【答案】A

【解析】函数调用中,实参有多个时,它们之间应该用逗号分隔。本题中的实参有3个,

为其中

逗号表达式做参数,是函数做参数,是是逗号与函数相结合做参数。

4. 若有以下程序

则程序的输出结果是( )。

A.1, 2

B.0, 2

C.1, 3

D.2, 3

【答案】A 【解析】是先判定a 是否等于0, 如果a 等于0, 跳出循环;否则进入循环;但是不管判定是否成功,判定结束后都要执行a++操作。

第一次循环,a 等于-2, 满足条件,执行a++,++b, a 变成-1,b 变成1;

第二次循环,a 等于-1,满足条件,执行a++,++b, a 变成0,b 变成2;

第三次循环,a 等于0, 不满足条件,执行a++,a 变成1,b 仍然是2。

5. 有以下程序

程序的输出结果是( )。

A. B. C. D.

【答案】C

【解析】在格式控制中用%%表示,将输出一个%符号。

6. 设有定义以下选项中能够使字符型指针c 正确指向一个字符串的是( )。

A. B. C. D.

【答案】A

【解析】scanfO 函数是将C 定义为一个字符数组的数组名,选项C 是将c 定义为一个字符型变量,选项 D 应该是在指针的定义同时为它赋值,否则是不合法的。选项A 中定义字符数组str ,

再将字符数组stt 的首地址 赋给字符型指针C 。

7. 设有定义语句则以下叙述中正确的是( ) 。

A.f 是基类型为int 的指针变量

B.f 是指向函数的指针变量,该函数具有一个int 类型的形参

C.f 是指向int 类型一维数组的指针变量

D.f 是函数名,该函数的返回值是基类型为int 类型的地址

【答案】B

【解析】在C 语言中函数名代表该函数的入口地址,因此可以定义一种指向函数的指针来存放这类地址,int Of) (int ); ,其中f 为指向函数的指针变量,指向有一个整型变量且返回值也为整型的函数,第一个int 为函数 返回值的类型,第二个int 为函数的形参类型。

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

A. 简单递归不需要明确的结束递归的条件

B. 任何情况下都不能用函数名作为实参

C. 函数的递归调用不需要额外开销,所以效率很高

D. 函数既可以直接调用自己,也可以间接调用自己

【答案】D

【解析】D 项正确,C 语言中的函数可以递归调用,S 卩:可以直接或间接地自己调用自己。前者称简单递归, 后者称间接递归。A 项错误,递归必定要有一个明确的结束递归的条件;B 项错误,递归就是把函数名作为实参 的一种特殊情况;C 项错误,函数的递归调用过程中,系统要为每一层调用中的变量开辟存储单元,要记住每一层调用后的返回点,要增加许多额外的开销,通常会降低程序的运行效率。

9. 以下关于C 语言数据类型使用的叙述中错误的是( )。

A. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型

B. 若要保存带有多位小数的数据,可使用双精度类型

C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D. 整数类型表示的自然数是准确无误差的

【答案】A

【解析】A 项错误,C 语言中没有逻辑类型,在中才引入的;B 项正确,float 类型称为单精度类型,double 类型称为双精度类型,一般系统中,为float 类型的变量分配4个字节的存储单元,为double 类型的变量分配8 个字节的存储单元。C 项正确,struct 结构体,可以用来描述包含多种基本类型的复杂对象。

10.有以下程序: