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

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

试卷代号: 1253

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

C语言程序设计 试题

2021年7月

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

1.C语言中使用的字符常量,其起止标记符是( )。

A.单引号B.双引号

C.中括号D.尖括号

2.一个函数定义所包含的两个部分是( )。

A.函数头和函数体B.函数头和函数尾

C.函数原型和函数体D.函数名和参数表

3.在printf( )函数调用的格式字符串中,若使用格式符为“%d",则对应输出的数据类型为( )。

A. charB.int

C.floatD.double

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

A.1B.2

C.3D.4

5.要利用const保留字定义整型常量ABC的值为10,则对应的定义语句为( )。

A. const int ABC 10;B. const int ABC,1O;

C. const int ABC;10;D. const int ABC=1O,

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

A.x%=20B.x+=10

C.x/=2D.x*=2

7.在循环语句“for(i=0;i<n;i++)S;”中,假定n的整数值大于O,则循环体S被执行的次数为( )。

A.1B.n-l

C.nD.n+l

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

A.8B.16

C.64D.32

9.对于一个长度为n的字符串,保存它至少需要占用的存储字节数为( )。

A.nB.n-l

C.n+lD.n+2

10.假定变量m的定义为“intm-7;”,则下面语句格式正确的是( )。

A.int p=&m;B.int *p=&m;

C.int &p=*m;D.int *p=m;

11.假定a为一个数组名,则下面表达式中错误的是( )。

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

C.*aD.*(a+1)

12.假定一个函数的原型语句为“intff(int*x);”,一个整型数组为a[10],则下面函数调用表达式不正确的是( )。

A. ff(a)B. ff(a[0])

C. ff(a+3)D. ff(&a[0])

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

A.x.aB.x->a

C.x:aD.x(a)

14.表示文件结束符的符号常量EOF的值为( )。

A.127B.O

C.1D.-1

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

15.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。( )

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

17.在定义一个变量时,可以同时给它赋初值。( )

18.表达式14%5的值为5。( )

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

20.while循环是先判断循环条件,当条件为真时执行循环体。( )

21.continue语句只有保留字,没有语句体。( )

22.在二维数组的定义语句中,数组名后带有两对圆括号。( )

23.在C语言程序中,存储字符串的方法是使用字符指针。( )

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

25.假定a是一个一维数组,则a+i的值与&a[i]的值相等。( )

26.在一个函数定义中,参数表中的参数说明项之间是采用逗号分开的。( )

27.在C语言程序中,主函数可以是递归函数。( )

28.定义结构类型的同时能够定义它的变量。( )

29.每次只能向文本文件中写入一个字符,不能一次写入一个字符串。( )

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

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

#include<stdio.h>

void main( ) {

int x=5,y=8,z=4;

if(x>y)x=y;

if(x>z)x=z;

printf("%dn",x);

)

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

#include<stdio.h>

void main ( ){

int i, f1=l, f2;

for(i=2;i<5;i++){

f2=3*fl;

f1=f2;

}

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

}

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

#include<stdio.h>

#define N 6

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];

printf("%dn",a[N-1]);

{

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

#include<stdio.h>

void main( ){

int a [8] = {10,8,12,15,9,27,8,16);

int i, x=a [0];

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

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

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

{

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

34.完善下面程序中xxkl函数的定义,使程序能够输出数组a中所有元素的最大值。

#include<stdio.h>

int xxkl (int a [], int n);

Void main ( )

{

int x:

int a [6] = {15,20,36,48,24,44};

x=xxkl(a,6);

printf("x=%d\n",x);

{

int xxkl(int a[],int n)

{

int i, x=a [0], max=a [0];

//向下补充内容,用一个for循环实现

return max,

{

35.补充完整下面xxk2函数定义,假定函数参数表中a的值小于等于b,函数功能是求出返回a到b之间(包含a和b值在内)所有偶数之和。

int xxk2(int a,int b)

{

int i,sum=0;

//向下补充内容,用一个for循环实现

return sum;

{