试卷代号:11253
国家开放大学2023年春季学期期末统一考试
C语言程序设计 试题
2023年7月
一、单项选择题(把合适的选项编号填写在括号内。每小题3分,共42分)
1.在C语言中,每条复合语句的开始标记符为( )。
A.[B.(
C.{D.<
2.-个程序文件开始使用的每条预处理命令,其首字符必须是(
A.@B.#
C.$D.%
3.C语言源程序文件的扩展名为( )。
A.cppB.exe
C.objD.c
4.int类型的长度为( )。
A.1B.2
C.4D.8
5.下列运算符,其优先级最高的是( )。
A.[]B.=
C.+D.<
6.带有随机函数的表达式rand()%21的取值范围是( )。
A.1~19B.1~20
C.0~19D.0~20
7.在循环语句“for(i=l;i<10;i+=2)S;”中,循环体S被执行的次数为( )。
A.10B.6
C.4D.5
8.假定有一条定义语句为“int a[10]={3,4,2,8,6);”,则元素a[5]的值为( )。
A.0B.2
C.8D.6
9.-个二维字符数组a[M][N]能够存储的字符串个数至多为( )。
A.MB.N
C.M-1D.N-1
10.假定p是一个指向数据对象的指针,则通过p表示该教据对象为( )。
A.p*B.p&
C.&pD.*p
11.已知“inta[3][5];”,则元素a[2][3]的地址比该数组的首地址大( )。
A.13个字节B.52个字节
C.26个字节D.48个字节
12.假定一个函数的数组参数说明为char a口,与之等价的指针参数说明为( )。
A.char aB.char* a
C.char& aD.char**a
13.假定要访问一个结构变量x中的由指针成员a所指向的对象,则表示方法为( )。
A.x->aB.x.a
C.*(a.x)D.*(x.a)
14.表示文件结束符的符号常量为( )。
A.eofB.Eof
C.EOFD.feof
二、是非判断题(根据叙述正确与否在其括号内打对号“√”或叉号“×”。每小题2分,共30分)
15.若要在程序文件中使用标准输入和输出函数,则需要引入的系统头文件为
stdio.h。( )
16.常数4.206是双精度定点数。( )
17.在一条变量定义语句中,定义多个变量时需要使用分号隔开。( )
18.表达式x=x+y表示成复合赋值表达式为x=+y。( )
19.若x=5,y=8,则x<=y的逻辑值为真。( )
20.do-while循环语句的循环体,可以是简单语句,也可以是复合语句。( )
21.在一维数组的定义语句中,数组名后带有一对中括号。( )
22.在二维数组的定义语句中,不能给数组中每个元素赋初值。( )
23.在定义指针变量的语句“int *p,pp;”中,p和pp具有相同的数据类型。( )
24.假定a是一个一维数组名,则a+i的值与&a[i]的值相等。( )
25.在一个函数定义中,参数表中的参数说明项之间是采用分号分开的。( )
26.在C语言程序中,除主函数外的任何用户定义的函数都可以是递归函数。( )
27.不能够在定义结构类型的同时定义它的变量。( )
28.在一个链表中,表头结点无前驱结点。( )
29.每次只能从文本文件中读取一个字符,不能一次读取一行字符串。( )
三、程序填空题(分析程序后把合适的内容填写在括号内。每小题5分,共20分)
30.执行下面程序的输出结果为( )。
#include<stdio.h>
Void main( ){
int x=5,y=8,z=6,w=0;
if(x>=y)w=x;else w=y;
if(z>w) w=z;
printf("w=%dn",w);
}
31.执行下面程序的输出结果为( )。
#include<stdio.h>
Void main( ){
int n=10,y=0;
while(n>6)(y+=n;n-;)
printf("y=%dn",y);
}
32.执行下面程序的输出结果为( )。
#include<stdio.h>
Void main( ){
int a[8]={2,5,6,8,4,9,10,6};
int i,x=a[O]+a[l];
for(i=1;i<7;i++){
int y=a[i]+a[i+l];
if(y>x)x=y;
}
printf("0/<dn",x);
}
33.假定使用xxk3(5)调用下面函数,则返回值为( )。
int xxk3(int n){
int i,s=l;
for(i=l;i<=n;i++)s*=i;
return s:
}
四、编程题(按题目要求编写程序或函数。每小题4分,共8分)
34.补充完整下面的函数定义,计算出整型数组a中n个元素的所有偶数之和。
int xxk4(int a[],int n){
int i,s=0;
//在下面添上一行for循环语句,循环变量为i,累加变量为s
return s:
}
35.补充完整下面函数xxk5的定义,计算并返回数组a[n]中所有元素的平均值。
double xxk5(int a[],int n)
{
int i,sum=0;//假定分别设置i和sum为循环变量和累加变量
//在下面添上一行for循环语句,循环变量为i,累加变量为sum
return double(sum)/n;
}