2019 年山东省中国海洋大学程序设计基础考研真题
)。
i;
)。
main()
main()
x=9,y=9;
a=6,b=0,c=1;
%d\n",x--,--y);
一、单项选择题(每题 2 分,共 15 题,共 30 分)
1. 执行下面程序的输出结果是(
#include
void
int
if(a=a+b)printf("AAAln");
else printf("BBB\n");
(A) 有语法错误不能编译
(B) 能通过编译,但不能通过连接
(C) 输 出 AAA
(D) 输 出 BBB
2. 以下程序的输出结果是(
#include
void
int
printf("%d
(A)99
(B)88
(C)98
(D)89
3. 有以下程序
main()
int
for(i=0;i<3;i++)
switch(i)
case 0:printf("%d",i);
case 2:printf("%d",i);
default:printf("%d",i);
程序运行后的输出结果是(
(A)022111
(B)021021
(C)000122
(D)012
4.C 语言的以下运算符中,要求运算数必须是整型的是(
(A)/
(B)%
(C)<
(D)!
5. 以下选项中,非法的字符常量是(
(A)'x6a'
)。
)。
)。
)。
)。(空格的 ASCⅡ码为 32)
(B)'16'
(C)"a"
(D)'t'
6. 设有 intx=10; 则表达式(x++*1/3)的值是(
(A)3
(B)4
(C)11
(D)12
7. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(
(A) 函数调用可以作为独立的语句存在
(B) 函数调用可以作为一个函数的实参
(C) 函数调用可以出现在表达式中
(D) 函数调用可以作为一个函数的形参
8. 如果 c 为字符型变量,判断 c 是否为空格不能使用(
(A)if(c==32)
(B)if(c=='32')
(C)if(c==^40')
(D)if(c=='')
9. 以下 4 个用户定义的标识符,其中合法的一个是(
(A)short
(B)4d
(C)D2 G3
(D)for
10. 若执行以下程序时从键盘上输入 9,则输出结果是(
main()
int n;
scanf("%d",&n);
if(n++<10)printf("%d\n",n);
else printf("%d\n",n--);
(A)11
(B)10
(C)9
(D)8
11. 有如下函数调用语句 func(ch1,ch2+ch3,ch4+ch5);该函数调用语句中,含有的实参个
数是(
(A)3
(B)4
(C)5
(D) 有语法错误
12.在下列选项中,没有构成死循环的程序段是(
(A)for(int
(B)int
while(1)
i=i%100+1;
)。
)。
i=0;;i++);
i=100:
)。
)。
)。
)。
)。
)。
if(i>100)break;
(C) int n=1;do{++n;}while(n>=10);
(D)int n=36;while(n);--n;
13. 设 a 为整型变量,不能正确表达数学关系 10
=15)
(C)a>10&&a<15
(D)a==11|a==12||a==13|a==14
14. 下列表达式的值为 0 的是(
(A)3==5
(B)3%5
(C)3/5.0
(D)3<5
15.变量的指针是该变量的(
(A)值
(B)地址
(C)名
(D)一个标志
二、填空题(每空 3 分,共 10 空,共 30 分)
1. 如果一个函数只能被本文件中其他函数所调用,它称为(),在定义它时要在函数名和函
数类型前面加()。
2.C 语言中,该式的计算结果为:23/4=()
3.C 语句的结束符为()
4. C 语句注释符号为()。
5. C 程序总是从()开始执行的。
6. 如果不能实现打开文件任务, fopen 函数的返回值是()。
7. 若有定义 double x[3][5]; 则 x 数组中行下标的下限为(),列下标的上限为()。
8. 表示条件 x>10 且 x<100,或 x<0 的 C 语言表达式是()
三、简答题(共 2 题,每题 15 分,共 30 分)
1.枚举类型中的枚举元素是有值的,按定义时的顺序它们的值依次为 0,1,2…那 么为什么
使用枚举类型而不是直接使用常量来表示?请给出解释(6 分)。按如 下要求举例说明枚举类
型的使用:声明枚举类型 gender, 其包括两个枚举成员
male 和 female, 用 gender 定义枚举变量 person, 并为其赋值为 female(9 分)。(本小题
共 15 分)
2.在输出时,对不同类型的数据要使用不同的格式字符。请解释如下格式字符的 作用:
d,o,x,u,c,s,f。(15 分)
四、编程题(共 4 题,共 60 分)
1.有 5 个学生,每个学生有 3 门课成绩,要求实现如下功能,请给出程序的实 现代码(本小
题共 20 分):
(1)从键盘输入 5 个学生的数据,包括学号,姓名,3 门课成绩。(7 分)
(2)计算每门课的平均成绩和每个学生的平均成绩。(7 分)
(3)按每个学生的平均成绩由小到大进行排序。(6 分)
2. 有一个 2×3 的整数矩阵和一个 3×2 的整数矩阵,请使用指针数组实现这两个 矩阵相乘。
(15 分)
3. 当前目录下有文件 1.txt,编写程序实现对该文件的打开、读取、写入和关闭。 (15 分)
4.定义字符串 s="abcde", 采用递归函数调用方式,将字符串 s 以相反顺序输出 出来,即”
edcba”。要求给出程序分析和实现代码。(10 分)