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

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

  摘要

一、选择题

1. 有以下程序:

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

A.13.700000

B.14.000000

C.15.400000

D.14.900000

【答案】A

sqrt 为平方根计算函数,【解析】

2. 有以下程序

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

A.x=8

B.x=4

C.x-6

D.x=12

第 2 页,共 44 页 格式输出后为13.700000。

【答案】A

【解析】本题考查的是for 环的嵌套。外循环的循环变量i 从0递増到1会循环两次,内循环的循环变量i 从0递增到3会循环4次。但是内循环中有一条if 语句,每当j%2为真,即j 为奇数时会跳过下面的x++; 语句,所以4次内循环只有两次执行到x++; 语句,再加上外循环中包含的两条x++; 语句,所以每次外循环会使x 自増4次,两次外循环后x 的值为8。

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

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

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

C. 设有指针变量为

【答案】C

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

4. 若有函数声明

A. 函数参数array ,ptr 都是指针变量

B. 函数参数array 不是指针变量,ptr 是指针变量

C. 调用函数时,实参数组的值将一一复制给array 数组

D. 调用函数时,array 是按值传送,ptr 是按地址传送

【答案】A

【解析】数组名为数组的首地址,也是指向数组的指针,所以array 和ptr 都是指针,A 项正确,B 项错误。调用函数时,将实参数组首地址赋给指针array , 而不是传递整个数组元素,C 项错误。调用函数时,ar-ray 与ptr 都是按地址传送的,D 项错误。

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

A. 在C 语言中,预处理命令行都以“#”开头

B. 预处理命令行必须位于C 源程序的起始位置

C.#include必须放在C 程序的开头

D.C 语言的预处理不能实现宏定义和条件编译的功能

【答案】A

【解析】编译预处理”就是在C 编译程序对C 源程序进行编译前,由编译预处理程序对这些编译预处理命令行进行处理的过程。A 项正确,在C 语言中,凡是以“#”号开头的行,都称为“编译预处理”命令行。B 项错误,预处理命令行可以出现在程序的任何一行的开始部位,其作

第 3 页,共 44 页 则p+1将指针p 移动8个字节 D. 基类型不同的指针变量可以相互混用 以下叙述正确的是( )。

C 项错误,#inClUde可以出现在程序的任意一行的开始部位;用一直持续到源文件的末尾;

D 项错误,预处理可以实现宏定义、条件编译和文件包含。

6. 有以下程序

程序的运行结果是( )。

【答案】B

【解析】struct 变量作为形参和返回值时,传递的是结构体类型的值。f 函数中,把b 变量赋值给a ,然后将a 返回并赋值给d ,所以,d 中的数据与b 的数据相同。

7. 若有定义:inta=0,b=0, c=0, d=0; ,有C 语言表达式

行顺序的叙述正确是( )。

A. 先执行a++, 表达式a++的值为0,短路,得a++,执行它

B. 先执行a++,表达式a++的值为0; 再执行b++,表达式b++的值为0,由此可确定

值为0,因此执行d++

C. 先执行a++,表达式a++的值为1; 再执行b++,表达式b++的值为1, 由此可确定

值为1, 因此执行C++

D. 先执行b++,表达式b++的值为1; 再执行a++,表达式a++的值为1,由此可确定

值为1,因此执行C++

【答案】A

【解析】表达式1? 表达式2:表达式3, 若表达式1为真,则执行表达式2, 否则执行表达式3。

第 4 页,共 44 页 以下关于其执