You are on page 1of 6

2021 级高起专《C 语言程序设计》2022 下半年期末考试 B 卷

一、单项选择题(每题 2 分,共 20 分)
1.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素 a[1][1]的值为(
)。
A.2
B.4
C.6
D.8
答案:D

2. 在下面的一维数组定义中,错误的定义格式为( )。
A.int a[]={1,2,3}
B.int a[10]={0}
C.int a[]
D.int a[5]
答案:C

3.在一个程序文件中,若要使用#include 命令包含一个用户定义的头文件,则此头文件所使用的
起止定界符为一对( )。
A.尖括号
B.双引号
C.单引号
D.花括号
答案:B

4.若 inti,j;,则 for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体的执行次数是( )。


A.9
B.8
C.3
D.2
答案:C

5.在 C 语言中,逻辑值“真”用( )表示。


A.1
B.大于 0 的数
C.非 0 的整数
D.非 0 的数
答案:D

6.假定一个链表的表头指针为 f,结点中包含有 data 和 next 域,则向该链表的表头插入一个地址


为 p 的结点时,应执行的操作为( )。
A.p->next=f
B.p->next=f 和 f=p
C.f=p->next
D.f->next=p 和 f=p
答案:B

7.执行下列程序后的输出结果是( )。
#includeintf(inta[],intn){if(n==0)returna[0];elsereturnf(a,n-1)+a[n];}main()
{intx[]={1,3,5,7,9};printf("%d\n",f(x,3));}
A.1
B.4
C.9
D.16
答案:D

8.以下不能对二维整形数组 a 进行正确初始化的语句是( )。
A.int a[2][3]={0};
B.int a[][3]={{1,2},{0}};
C.int a[2][3]={{1,2},{3,4},{5,6}};
D.int a[][3]={1,2,3,4,5,6};
答案:C

9. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为( )。
A.空格或逗号
B.逗号或回车
C.逗号或分号
D.空格或回车
答案:D

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


A.复合
B.if
C.switch
D.while
答案:D

二、多项选择题(每题 3 分,共 30 分)
11.函数体一般包括( )两部分。
A.声明
B.执行
C.形式
D.操作
答案:AB

12.算法的描述方法有很多,常用的方法是( )。
A.自然语言描述
B.程序流程图描述
C.N-S 图描述
D.PS 做图
答案:ABC

13.执行语句 intarr[10]下面描述正确的是( )。
A.定义数组的名称是 arr
B.定义数组的长度是 10
C.定义数组如果数组的元素没有赋值则默认是 1
D.定义数组时元素的值是不能相同的
答案:AB

14.voidfun(intn);描述错误的是( )。
A.有参函数,是整型参数
B.这个函数是无参函数
C.有参函数,是实型参数
D.如果调用此函数用 fun(形参表)
答案:BCD

15.流程控制的三种结构包括( )。
A.顺序结构
B.选择结构
C.循环结构
D.树形结构
答案:ABC

16.计算机算法可分为( )两大类别。
A.数值运算算法
B.非数值运算算法
C.结构运算
D.形式运算
答案:AB

17.关于循环选择结构嵌套说法正确的是( )。
A.循环结构中可以有选择结构
B.选择结构中可以有循环结构
C.选择结构内不可以有循环结构
D.循环结构内不可以有选择结构
答案:AB

18.采用多分支实现简易计算器功能,以下描述正确的是( )。
A.只能用 switch 多分支语句实现计算器程序
B.用 switch..case..default 结构实现的计算器中加入 default 语句使得程序具有较好的容错性
C.用 switch 结构实现计算器,结构紧凑,代码条理
D.switch 结构与 if...else..if 都是用来实现多分支选择结构的
答案:BCD

19.下面关于 do...while 循环结构描述不正确的是( )。


A.由于 do...while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.程序中只要使用了二个或二个以上的 do...while 循环结构就构成了循环嵌套
C.do...while 循环结构中可以使用循环跳转语句 continue 及 break
D.do...while 循环结构是先判断循环条件后执行循环体
答案:ABD

20.循环跳转的语句分类有( )。
A.break 语句
B.continue
C.for 语句
D.if 语句
答案:AB

三、判断题(每题 2 分,共 10 分)
21.在 C 语言程序设计中,字符数组和字符串不是完全一样的概念。
答案:正确

22.swtich 结构中的 break 作用是结束当前 case 语句的执行,继续下一个 case 分支的判断。


答案:错误

23.结构体变量所占的内存长度等于最长的成员的长度。
答案:错误

24.设:FILE*fout;charch;则 ch=fgetc(fout)表示将字符 ch 写入由 fout 指针所指向的文件中去。


答案:错误

25.A-=7 等价于 a=a-7。


答案:正确

四、填空题(每题 2 分,共 10 分)
26.写出下列程序的输出结果____________,并指出该程序的功能________________________。
答案:3;统计二进制数中 1 的数目

27.存储字符串“a”需要占用存储器的____________个字节空间。
答案:2

28.假定一个结构类型的定义为“struct A{int a,b; A* c;};”,则该类型的理论长度为_______
_____。
答案:12

29.增量表达式++y 表示成赋值表达式为____________。
答案:y=y+1

30.与结构成员访问表达式 p->name 等价的表达式是____________。


答案:(*p).name

五、编程题(每题 10 分,共 30 分)
31.求 3X3 矩阵的主对角线元素之和(矩阵中元素的值可直接定义)。
答案:main()
{float a[3][3],sum=0;
int i,j;
printf(“please input rectangle element:\n”);
for(i=0;i<3:i++)
for(j=0;j<3;j++)
scanf(“%f”,&a[j]);
for(i=0;i<3;i++)
sum=sum+a;
printf(“对角线和是%6.2f”,sum)’}

32.从键盘上输入三个数,输出其中最大的一个数。
答案:
#include “stdio.h”
main()
{ int n,i,num,max;
printf(“please input n:3”);
scanf(“%d”,&n);
i=1;
printf(“please input %d number:”,n);
scanf(“%d”,&num);
max=num;
while(i<n)
{ scanf(“%d”,&num);
if(num>max) max=num;
i++;}
printf(“max:%d\n”,max);}

33.编程求 1!+2!+3!+……+50!的值。
答案:
main() 
{   
int i;   
float t=1,s=0;   
for(i=1;i<=50;i++)   
{      
t=t*i;      
s=s+t;   
}   
printf("s=%e\n",s); 
}

You might also like