试卷代号:1253 座位号口口
国家开放大学2 0 1 9年秋季学期期末统一考试
C语言程序设计试题
2020年1月
一、单项选择题(把合适的选项编号填写在括号内。每小题3分,共 42分)
1.C语言中使用的字符常量,其起止标记符是( )。
A.单引号 B.双引号
C.中括号 D.尖括号
2.一个程序中用户定义的普通函数的名称不能为( )。
A.Main B. main
C. xyz D. mainInt
3.程序运行中需要从键盘上输人多于一个数据时,若不特别规定分隔符,则输人的各数据之间所使用的分隔符为( )。
A.空格或逗号 B.逗号或回车
C.逗号或分号 D.空格或回车
4.int类型的长度为( )。
A.1 B.2
C.4 D.8
5.运算符优先级最高的是( )。
A.() B.=
C.+ D.<
6.带有随机函数的表达式rand()%20的取值范围是( )。
A.1~19 B.1~20
C.O ~19 D. 0~20
7.在循环语句“for(i=n-l; i>=l; i-)S;”中,循环体S被执行的次数为( )。
A.1 B.n-l
C.n D.n+l
8.假定一维数组的定义为“char* a[8];”'贝0该数组所占用的存储空间的字节数为( )。
A.8 B.16
C.64 D.32
9.对于一个长度为n的字符串,保存它至少需要占用的存储字节数为( )。
A.n B.n-l
C.n+l D.n十2
10.假定变量m定义为“int m一7;”,则下面定义语句格式正确的是( )。
A. int p=&m; B.int* p=&m;
C. int &p=* m; D.int *p=m;
11.已知“int a[10],x,*pa—a;”,若要把数组a[3]元素的值赋给x,则不正确的语句为
)。
A.x—pa[3]; B.x=*(a+3);
C. x=a[3]; D.x一*pa+3;
12.若用数组名作为函数调用的实参,传递给形参的是( )。
A.数组的酋地址 B.数组中第一个元素的值
C.数组中全部元素的值 D.数组元素的个数
13.假定要访问一个结构指针变量x中的数据成员a,则表示方法为( )。
A.x. a B.x->a
C.x(a) D.x(a)
14.在c语言中,打开一个数据文件的系统函数为( )。
A.fopen() B.fclose()
C fread() D.fwrite()
二、是非判断题(根据叙述正确与否在其后面的括号内打对号“√”或
x”。每小题2分,共30分)
15.在c语言程序中,只有一种使用注释语句的方法。( )
16.常数3. 26是双精度定点数。( )
17.表达式(float)25/4的值为6。( )
18.已知x- -25,则fabs(x)的值为-25.0。( )
19.while循环是先判断循环条件,当条件为真时执行循环体。( )
20.在一维数组的定义语句中,数组名后带有一对中括号。( )
21.字符串允许为空,并且其长度为o。( )
22.一个二维字符数组a[10][20]中存储每个字符串的最大长度为20。( )
23.假定a是一个一维数组,则进行a++运算是不允许的。( )
24.在一个函数定义中,函数体是一条简单语句。( )
25.在C语言程序中,对于递归函数和非递归函数,其函数头部有区别标志。( )
26.在结构类型的定义中,结构类型的作用域范围,与它的定义位置有关。( )
27.在结构成员访问运算符中,点运算符和箭头运算符的左边均为结构指针变量。( )
28.在一个磁盘数据文件的文件名中,文件主名是必须的,扩展名可任选使用。( )
29.对二进制文件进行读和写操作将使用不同的系统函数。( )
三、程序填空题(分析程序后把合适的内容填写在括号内。每小题5分,共20分)
30.执行下面程序的输出结果为( )。
#include<stdio. h>
void main(){
int x-5 ,y-8;
if(x>=y) printf(“%d%d\n”,x,y);
else printf(“%d%d\n”,y,x);
31.执行下面程序的输出结果为( )。
# include<stdio. h>
void main()(
int i,sl=0, s2-0;
for(i=l;i<10;i++)
if(i%2) sl+=i;
else s2+=i;
printf(" %d %dn",sl, s2);
)
32.执行下面程序的输出结果为( )。
#include<stdio. h>
void main(){
int a[8]= {10,8, 16,15,9,21,7, 16};
int i.x=a[0];
for(i=l;i<8;i+十)
if(a[i]<x)x=a[i];
printf( "x= %dn",x);
}
33.执行下面程序的输出结果为( )。
#include<stdio. h>
void main(){
int a[8]=(3,8,6,5,9,2,8,5);
int i.s-0;
for(i一0;i<8;i++)
if(a[i]>5)s+=a[i];
printf("s= %dn",s);
}
四、编程题(按题目要求编写程序或函数。每小题4分,共8分)
34.补充完整下面的函数定义,该函数要求返回满足不等式1十22+32 +…n2<=X的
最大n的值。
int FF(int x)
{
int n一1,s—l;//使用n作为计数变量,使用s作为累加求和的变量
//在下面一行写出合适的while循环语句
return n-l;
)
35.按照“int FF(int a[],int n)”的函数声明,编写出递归函数的定义,求出数组a中所有n个元素之积并返回。