国开11253《C语言程序设计A》期末考试历届试题及答案2021年01月(课程号:02274)

小虾米 2026-05-11 15:09:43 2 次阅读 0 分钟阅读

试卷代号:1253

国家开放大学2020年秋季学期期末统一考试

C语言程序设计 试题

2021年1月

一、单项选择题(把合适的选项编号填写在括号内。每小题3分,共42分)

1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。

A.mainB.MAIN

C.nameD.function

2.用于输出表达式值的标准输出函数是( )。

A.scanf()B.print()

C.printf()D.output()

3.由C语言源程序文件编译而成的目标文件的扩展名为( )。

A.cppB.exe

C.objD.C

4.运算符优先级最高的是( )。

A.()B.一

C.+D.<

5.已知x的初值为15,则下列各表达式中的最大值为( )。

A.x++B.++x

C.x-D.-x

6.for循环语句能够被改写为( )。

A.复合语句B.if语句

C.switch语句D.while语句

7.在一个数组中,数组元素a[i]前面的元素个数为( )。

A.iB.i+l

C.i-lD.2xi

8.假定二维数组的定义语句为“int*a[3][5];”,则该数组所占用的存储空间的字节数为( )。

A.120B.15

C.30n60

9.对于一个二维字符数组a[M][N],存储每个字符串的长度至多为( )。

A.MB.N

C.M-1D.N-I

10.假定a为-Ai数组名,则下面表达式中错误的是( )。

A.a[i]B.*a++

c*aD.*(a+1)

11.假定一个函数的原型语句为“int ff(intx);”,一个整型变量为a,则下面函数调用表达式不正确的是( )。

A.ff(*a)B.ff(a)

C.ff(a+10)D.ff(3)

12.假定要访问一个结构指针变量x所指对象中的数据成员a,则表示方法为( )。

A.x.aB.x一>a

C.x(a)D.x{a}

13.标准输入设备键盘的文件流标识符是( )。

A.stdinB.stdout

C.stderrD.stdio

14.从一个文本文件中读取一个字符的系统函数为( )。

A.fputc()B.fgets()

C.fputs()D.fgetc()

二、是非判断题(根据叙述正确与否在其后面的括号内打对号“√”或叉号“×”。每小题2分,共30分)

15.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。( )

16.一个C语言程序只能够包含一个用户头文件。( )

17.定点数既有双精度表示,又有单精度表示。( )

18.表达式(float)25/4的值为6。( )

19.关系表达式(x!=0)的等价表达式为(!x)。( )

20.while循环是先执行循环体,然后进行循环条件判断。( )

21.continue只能使用在任一种循环语句的循环体中。( )

22.在二维数组的定义语句中,可以给数组中每个元素赋初值。( )

23.在C语言中,在定义一个字符数组时,不能利用一个字符串进行初始化。( )

24.在定义指针变量的语句“int*p,pp;”中,p和pp具有不同的数据类型。( )

25.进行动态存储分配的malloc( )函数带有一个参数。( )

26.在一个函数定义中,函数体是一条简单语句。( )

27.在结构类型的定义中,结构类型名在关键字struct和定义体之间。( )

28.访问结构成员访问运算符只有一种方式,即使用点运算符。( )

29.在一个磁盘数据文件的文件名中.文件主名是必须的,扩展名可任选使用。( )

三、程序填空题(分析程序后把合适的内容填写在括号内。每小题5

分,共20分)

30.执行下面程序的输出结果为( )。

#include<stdio.h>

Void main(){

int x=5,y=0;

switch(2*x-3){

case4:y+=x;break;

case7:y+=2*x+l;break;

case10:y+=3*x;break;

}

printf(“y=%d\n”,y);

)

31.执行下面程序的输出结果为( )。

#include<stdio.h>

Void main( ){

Int i=0,s=0;

while(s<30){i+=2;s+=i*i;}

printf(“s=%dn”,s);

)

32.执行下面程序的输出结果为( )。

#include<stdio.h>

Void main(){

int a[8]={10.8,16,15,9,21,7,16};

int i,x=a[0];

for(i=1;i<8;i++)

if(a[i] <x)x=a[i];

printf(“x=%an”,x);

}

33.执行下面程序的输出结果为( )。

#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=0;i<3;i++)

for(j=O;j<3;j++)

if(a[i][j]%3= =0)s+=a[i][j];

printf(”s一%d\n“,s);

}

四、编程题(按题目要求编写程序或函数。每小题4分,共8分)

34.按照“int FF(int a[],int n)”的函数声明,补充完整下面的递归函数的定义,求出数组a中所有n个元素之积并返回。

Int FF(int a[],int n)

(

if(n<=0){printf(“n值非法n”),exit(1);)

35.补充完善下面的一个主函数,假定函数体中定义的整数变量a和b的取值范围分别为:6≤a≤50,10≤b≤30,求出满足不定方程3a+2b=120的全部整数组解。如(20,30)就是

其中的一组解。

Void main()

{

int a,b;