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
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 页 以下关于其执
相关内容
相关标签