2017年北京印刷学院信息工程学院电子与通信工程综合测试复试之C语言程序设计考研复试核心题库
● 摘要
一、选择题
1. 以下函数findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。
造成错误的原因是( )。
A. 定义语句
B. 赋值语句
C. 语句
D. 赋值语句
【答案】D
【解析】本题中for 循环中首先将MIN 值赋值给max , 然后用
将MIN 值与
值进行比较,所以无论
先执
2. 有以下程序
执行后的输出结果是( )。
A.32
第 2 页,共 27 页 中max 未赋初值 中,不应给max 赋MIN 值 中判断条件设置错误 放错了位置 与max 的值比较。每次都是始终执行。的值是什么,都不会影响if 的判断语句,所以函数返回的是数组中最后一个元素的值。本题的错误在于的位置,for 循环之前应
B.24
C.5
D.40
【答案】A
【解析】自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形式表达式的值为运算分量加1之前的值。题目中使用了一个for 循环,循环变量i 从1递增到40。在循环体中有两条嵌套的if 语句,首先判断i++%5==0,即判断i++的值(i 加1
,然后再判断++i的值(i 加1之后的值)是否能被之前的值)是否能被5整除(判断后i 被加1)
8整除(判断后i 被加1),若两个条件都满足了,就输出i 的值,只有i=30时,满足i++%5==0,此时i=31,++i%8==0成立,此时i=32。
3. 有以下程序(注:字符a 的ASCII 码值为97):
程序运行后的输出结果是( )。
A.abc
B.789
C.7890
D.979800
【答案】B
【解析】a 、b 、c 的ASCII 值分别为97、98、99。程序中执行输出S 中的内容与10进行模运算后的值,s 是一个指针,首先指向字符a ,先执行97%10, 结果为7; 然后++s,指针指向下一个字符b ,执行98%10, 结果为8, 直到s 所指为空,故最后输出的结果为789。
4. 有以下程序段:
该程序段的功能是( )。
A. 输出a 、b 、c 中的最小值
B. 输出a 、b 、c 中的最大值
C. 输出a 的原始值
D. 输出a 、b 、c 中值相等的数值
【答案】A
【解析】程序执行过程为:从键盘读入三个整型数据,依次赋给a ,b , c , 判断a>b,若成立将
第 3 页,共 27 页
较小的值b 赋值给较大的值a ,判断a>c,若成立将较小的值c 赋值给较大的值a ,实现了将从键盘读入的数据中最小值赋给a 的功能,最后输出a ,即输出最小值。
5. 下面是有关C 语言字符数组的描述,其中错误的是( )。
A. 不可以用赋值语句给字符数组名赋字符串
B. 可以用输入语句把字符串整体输入给字符数组
C. 字符数组中的内容不一定是字符串
D. 字符数组只能存放字符串
【答案】D
【解析】字符数组是可以用来存放字符或者字符串的。
6. 有以下程序:
程序的运行结果是( )。
【答案】A
【解析】程序执行过程为:将a 赋给b , 调用f 函数,将b 中name 地址与gender 和score 的值传进函数,执行函数体,strcpy 函数改变b 中name 值,但由于后两个成员为值传递不能改变b 中gender 和score 值。调用函数结束后,结构体
7. 有以下程序:
第 4 页,共 27 页