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

2017年南京大学2304电路与系统专业综合之C语言程序设计教程复试实战预测五套卷

  摘要

一、选择题

1. 若有定义语句:

A.p=s B.p=k C. D.k=s

【答案】C

则以下赋值语句正确的是( )。

【解析】A 项错误,是将二维数组赋值给了一个指针;B 项错误,是将一位数组的指针赋值给了一个指针; C 项正确,是将一个一维数组赋值给了一个指针;D 项错误,是将二维数组赋值给了指向一维数组的指针。

2. 有以下程序:

$

程序的运行结果是( )。 A.7, 6, 5 B.5, 5, 5 C.7, 5, 5 D.5, 6, 5 【答案】B

【解析】条件表达式的优先级高于赋值表达式,

中先执行

给j ,再进行

3. 有以下程序:

第 2 页,共 27 页

和运算,当以前缀形式出现时,则

先赋

先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,再进行加一或减一操作。

为否,则执行

此时b 为5, 赋给i ,i 为5;

故最后输出的是5,5,5。

程序运行后的输出结果是( )。 A.1, 2, 4, B.1, 3, 4, C.1, 1, 3, D.1, 3, 4, 【答案】C

【解析】for 语句中把array 数组首地址值赋给ptr ,然后再循环体中进行输出,再把ptr 对应的地址值加1,重复三次,输出数组前三个数1,1,

4. 若在程序中变量均已定义成int 类型,且已赋大于1的值,贝!J 下列选项中能正确表示代数

的表达式是( )。 A.1.0/a/b/c B.1/(a*b*c) C.1.0/a*b*c

D.1/a/b/(double )c 【答案】A

【解析】abc 均大于1, 所以表达式1/abc小于1,需要用浮点类型表示。若要计算表达式值,需要使其自动转化成浮点类型,A 项正确。B 项变量与常量均为整型,不会自动转换为浮点类型,B 项错误。C 项表示表达式be/a,错误。D 项,算数运算法结合性自左向右,先计算1/a,结果为0, 之后的计算无论是否转换数据类型结果均为0, D 项错误。

5. 以下关于编译预处理的叙述中错误的是( )。

A. 预处理命令行必须位于源程序的开始

B. 源程序中凡是以#开始的控制行都是预处理命令行 C. 一行上只能有一条有效的预处理命令 D. 预处理命令是在程序正式编译之前被处理的 【答案】A

【解析】通常,预处理命令位于源文件的开头,也可以写在函数与函数之间。

6. if 语句的基本形式是:if (表达式)语句,以下关于“表达式”值的叙述中正确的是( )。

A. 必须是逻辑值 B. 必须是整数值 C. 必须是正数

D. 可以是任意合法的数值 【答案】D

【解析】if 是C 语言的关键字,在其后一对圆括号中的表达式可以是c 语言中任意合法的表达式。

第 3 页,共 27 页

7. 若有定义语句:

A. B. C. D. 【答案】A

且则错误的赋值是( )。

【解析】二维数组名是指向指针的指针,故a 和q 都为指向指针的指针,而p 为指向int 类型的指针。A 项,将一个指向int 类型的指针指向一个指针的指针。

8. 有以下程序:

程序运行后的输出结果是( )。 A.1,3 B.2,3 C.1,4 D.1,2 【答案】A

【解析】其中p=p+l; 只改变指针p 的地址,与p 的内容无关,所以m 值没有改变,而是改变该指针所指地址中的内容,所以n 变为3,m 不变。

二、设计题

9. 请根据以下各小题的要求设计C 应用程序(包括界面和代码)。

,它的功能是:统计各年龄段的人数。N 个年龄通过调用随机函数获请编写函数fun ( )

得,并放在主函数的 age 数组中;要求函数把0至9岁年龄段的人数放在年龄段的人数放在

中,把20至29岁年龄段的人数放在

100岁)以上年龄的人数放在

注意:部分源程序给出如下。

请勿改动主函数main ( )和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。 试题程序如下:

第 4 页,共 27 页

P ,把10至19岁

中,其余依次类推,把100岁(含

中。结果在主函数中输出。