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岁(含
中。结果在主函数中输出。