报名本机构合作学校,赠送复习资料,复习课程,确保录取。并且可以申请学校奖学金500元~1500元不等!
试卷代号:1253
国家开放大学2021年秋季学期期末统一考试
C语言程序设计 试题
2022年1月
一、单项选择题(把合适的选项编号填写在括号内。每小题3分,共42分)
1.在C语言中,每条复合语句的结束标记字符为( )。
www.bnjyedu.cn
A.]B.)
C.>D.}
2.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对( )。
A.尖括号B.双引号
C.单引号D.花括号
3.在scanf( )函数调用的格式字符串中,每个格式符的先导字符为( )。
A.#B.%
C.$D.@
4.float类型的长度为( )。
A.1B.2
C.4D.8
5.下面运算符优先级最高的是( )。
A.&&B.[]
C.++D./
6.设x和y均为逻辑值,则x&&y为真的条件是( )。
A.它们均为真B.其中一个为真
C.它们均为假D.其中一个为假
7.若n的值为10,则执行“for(i=1;i<n;i++)S;”语句的过程中,表达式i=l共被执行的次数为( )。
A.1B.n-l
C.nD.n+l
8.假定对二维数组a[3][4]进行初始化的数据为{{3,5,6},{2,8},{7}},则a[1][1]被初始化为( )。
A.6B.2
C.7D.8
9.对于一个二维字符数组a[M][N],存储每个字符串的长度至多为( )。
A.MB.N
C.M-1D.N-1
10.假定p所指对象的值为25,p+l所指对象的值为42,贝iJ表达式*p++的值为( )。
A.25B.42
C.26D.43
11.已知“chara[3][5];”,则元素a[2][3]的地址比该数组的首地址大( )。
A.13个字节B.26个字节
C.52个字节D.48个字节
12.假定一个函数的数组参数说明为chara[],与之等价的指针参数说明为( )。
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.常数3.26是双精度定点数。( )
17.在一条变量定义语句中,定义多个变量时需要使用分号隔开。( )
18.表达式x=x+y表示成复合赋值表达式为x=+y。( )
19.若x=5,y=10,则x<=y的逻辑值为真。( )
20.do-while循环语句的循环体,可以是简单语句,也可以是复合语句。( )
21.在一维数组的定义语句中,数组名后带有一对中括号。( )
22.在二维数组的定义语句中,不能给数组中每个元素赋初值。( )
23.对于一个长度为n的字符串,存储它的字符数组的长度至少为n。( )
24.假定一个数据对象为int * 类型,则指向该对象的指针类型为int * *。( )
25.在一个函数定义中,函数体是一条简单语句。( )
26.在C语言程序中,对于递归函数和非递归函数,其函数头部无区别标志。( )
27.定义结构类型的变量时,能够用同类型的其他变量进行初始化,不能用数据表进行初始化。( )
28.C语言中的标准输入和输出设备文件都属于字符文件。( )
29.对二进制文件进行读和写操作将使用同一个系统函数。( )
三、程序填空题(分析程序后把合适的内容填写在括号内。每小题5分,共20分)
30.执行下面程序的输出结果为( )。
#include<stdio.h>
Void main(){
Int x=5,y=15,z=12;
if(x>y&&x>z)printf("%d\n",x);
elseif(y>x&&y>z)printf("%d\n",y);
elseprintf("%d\n",z);
}
31.执行下面程序的输出结果为( )。
#include<stdio.h>
void main(){
int i=0,s=0;
while(s<30){i+=2;s+=i*i;}
printf("i=%d\n",i);
}
32.执行下面程序的输出结果为( )。
#include<stdio.h>
void main(){
int a[3][3]={{3,8,6},{5,9,2},{8,5,12}};
int i,j,s=0;
for(i=O;i<3;i++)
for(j=O;j<3;j++)
if(a[i][j]>6)s+=a[i][j];
printf("s=%d\n",s);
}
33.执行下面程序的输出结果为( )。
#include<stdio.h>
#define N6
void main(){
int a[N];
int i:
a[O]=1;a[1]=2;
for(i=2;i<N;i++)a[i]=a[i-2]+a[i-1]+1;
printf("%d\n",a[N-1]);
}
四、编程题(按题目要求编写程序或函数。每小题4分,共8分)
34.补充完整下面的函数定义,要求返回二维数组a[m][n]中所有元素的平均值。假定在计算过程中采用变量s存放累加值,采用i和j作为扫描数组的循环变量。
double Mean(double a[][N],int m,int n)
{
Int i,j;
double s=0.0:
//在下面添上一条合适的for双重循环语句
Return s/(m*n);
}
35.补充完整下面的函数定义,利用for循环计算1+21+22十…+2“的值,最后返回计算结果。假定计数变量用i表示,每次累乘2的变量用p表示,每次累加一个数据项值的变量用sum表示。
int xxk8(int n)
{
int i,p=l,sum=l;
//补充完整下面for循环语句的循环体(即一条复合语句)
for(i=l;i<=n;i++); ;
return sum;
}
微信扫码添加好友
如二维码无法识别,可拨打 13662661040 咨询。