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

2018年贵州大学机械工程院846C程序设计考研仿真模拟五套题

  摘要

一、选择题

1. 有以下函数

该函数的功能是( )。

A. 计算S 所指字符串占用内存字节的个数

B. 比较两个字符串的大小

C. 计算s 所指字符串的长度

D. 将S 所指字符串复制到字符串t 中

【答案】A

【解析】本题中,首先让t 指向形参s , 然后通过一个循环体为空的while 循环,将t 逐次后移,直到其所指内容为(字符串结束标志)。此时t 仍然会被曾1, 所以从循环出来,t 指向的是s

是8所指字符串占用内存字节的个数,A 所指字符串的结束标志的后一个字节。因此,返回的

项正确。而C 项所说的长度并不包括字 符串结束标志位,错误。

2. 对于一个正常运行的C 程序,以下叙述中正确的是( )。

A. 程序的执行总是从程序的第一个函数开始,在main 函数结束

B. 程序的执行总是从main 函数开始

C. 程序的执行总是从main 函数开始,在程序的最后一个函数中结束

D. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

【答案】B

【解析】一个正常运行的C 程序总是从main 函数开始执行,最后返回到main 函数结束。

3. 关于C 语言中数的表示,以下叙述中正确的是( )。

A. 只有整型数在允许范围内能精确无误地表示,实型数会有误差

B. 只要在允许范围内整型和实型都能精确表示

C. 只有实型数在允许范围内能精确无误地表示,整型数会有误差

D. 只有八进制表示的数才不会有误差

【答案】A

【解析】实型数据在内存中存储的二进制位数是有限的,而一个十进制实数转化为二进制实

数时,其有效数字位数有可能会超过尾数的存储长度,从而导致有效数字丢失而产生误差。在整形数允许范围之内,二进制可以 表示任意一个整数。

4. 以下选项中错误的是( )。 A. B. C. D.

【答案】D

【解析】D 项,表示a 不等于b 时,运算结果为1,或者为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. 设有以下程序段:inty :

y=rand( )%30+1;

则变量y 的取值范围是( )。

A.0≤y ≤30

B.0

C.l

D.l

【答案】B

【解析】本题考点为“%”求余符号。rand ( )产生随机整数,任何整数对30求余得到的整数范围为0〜29,则y 的取值范围为或者说故B 选项正确。

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

A.0

B.3

C.4

D.5

【答案】B

【解析】运算符“/”,“%”的优先级高于“-”故先进行除法和求余运算,再进行减法运算。强制类型转换表达式的形式为:(类型名)(表达式)。“9/2”转换成double 类型,再转换成int 类型,结果为4, 减号后面的结果为1,故结果为3。

8. 若有以下程序:

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

A. 可用S 定义结构体变量

B. 可用T 定义结构体变量

C.S 是struct 类型的变量

D.T 是structS 类型的变量

【答案】B

【解析】S 为结构体类型名,而T 为结构体变量名表。

9. 有以下程序:

编译时编译器提示错误信息,你认为出错的语句是(

C.k=l,m=8;

【答案】A

【解析】A 项,是不正确的表达式;

10.有以下程序:

)。