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

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

试卷代号:1253

国家开放大学2 0 2 0年春季学期期末统一考试

C语言程序设计 试题

2020年7月

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

1.在C语言中,一条简单语句的结束符是( )。

A.逗号 B.冒号

C.分号 D.空格

2.一个程序文件开始使用的每条预处理命令,其首字符必须是( )。

A.@ B.#

C.$ D.%

3.用于从键盘上为变量输入值的标准输入函数是( )。

A.printf( ) B.print( )

C.scanf( ) D.output( )

4.float类型的长度为( )。

B.2 A.1

D.8 C.4

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

A.&& B.口

C.++ D./

6.设x和y均为逻辑值,则x&&y为真的条件是( )。

A.它们均为真 B.其中一个为真

C.它们均为假 D.其中一个为假

7.在循环语句“for(i一1;i<10;i+一2)s;”中,循环体s被执行的次数为( )。

B.6

A.10

D.5

C.4

8.假定有一个定义语句为“int a[10]一{3,4,2,8,6);”,则元素a[3]的值为( )。

B.2

A.4

D.6

C.8

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

A.N一2 B.N

C,N+1 D.N-1

10. -个指针类型的简单变量占用内存中的字节数为( )。

B.4

A.2

D.16

C.8

11.已知“int b[lo];int *pb;”,则下面不正确的赋值语句为( )。

A.pb=b; B.pb一&b[o]5

C.pb=b+2; D.pb=b[5];

12.假定一个函数原型语句为“int fl(int a[],int n);”,与数组参数等价的表示为(

A.int**a B.my a

C.int&a D.int*a

13.与结构成员访问表达式p->name等价的表达式为( )。

B.(*p).name A.p.name

D.*(p->name) C.*p.name

14.在C语言中,关闭一个数据文件的系统函数为( )。

A.fclose() B.fopen()

C.fread() D.fwrite()

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

15.在C语言程序中,有两种使用注释语句的方法。( )

16.常数3.26是双精度浮点数。( )

17.表达式(int)14.6%5的值为4。( )

18.关系表达式(x!一O)的等价表达式为(x)。( )

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

20.在一维数组的定义语句中,数组名后带有一对中括号。( )

21.字符串不允许为空,至少需要包含一个字符。( )

22.有一条语句为“char s2[4]=”abcd“;”,s2数组长度的定义是合适的。( )

23.已知“int a[10],*p-a;”,则进行p++运算是允许的。( )

24.函数定义格式中的参数表被称为实参表。( )

25.在C语言程序中,对于递归函数和非递归函数,其函数头部无区别标志。( )

26.在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。( )

27.在一个链表的结点结构中,必然包含有一个指向自身结点类型的指针域。( )

28.在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。( )

29.对二进制文件进行读和写操作将使用同一个系统函数。( )

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

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

#include<stdio. h>

void main(){

int x=5,y=0;

switch(2* x+3){

case 4:y+=x; break;

case 7:y+=2* x+l; break;

case 10:y+=3*x;break;

default: y+=x-l;

)

printf("y= %dn" ,y);

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

#include<stdio. h>

void main(){

int x=12,s=0;

do{s+一x;x一一3;)while(x>0);

printf("s= ~6dn" ,s);

)

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

#include<stdio. h>

# define N 8

void main()(

int a[N]= {3,5,8,10,15 ,20,32,66};

int i,x;

for(i=0; i<N/9, i++){

x= a[i];a[i] =a[N-1-i];a[N-I-i]=x;

)

printf(“%d\n”,a[1]+a[3]);

)

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

#include<stdio. h>

void main(){

int a[3][3]一{13,18,16),{15,19,12}, {8,15 ,22});

int i,j,x=a[0l[0];

for(i=0;i<3;i++)

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

if(a[i][j]<x)x—a[i][j];

printf(“x=o/dn",x);

)

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

34.补充完整下面的函数定义,要求返回二维数组a[m][n]中所有元素的平均值。假定在计算过程中采用变量s存放累加值,采用i和j作为扫描数组的循环变量。

double Mean(double a[][N],int m,int n)

{

int i,j;

double s=0.O;

//在下面添上合适的for双重循环语句

35.补充完整下面的函数定义,利用for循环计算1+21+22+…+2“的值,最后返回计算结果。假定计数变量用i表示,每次累乘2的变量用p表示,每次累加一个数据项值的变量用sum表示。

int FF(int n)

(

int i,p=l,sum一1;

//在下面一行的后面补上for循环语句的语句体

for(i=l; i<-n; i++)________________________________________

return sum;

}