Professional Documents
Culture Documents
2021级高起专《C语言程序设计》2022下半年期末考试B卷 - 副本
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
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
二、多项选择题(每题 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
20.循环跳转的语句分类有( )。
A.break 语句
B.continue
C.for 语句
D.if 语句
答案:AB
三、判断题(每题 2 分,共 10 分)
21.在 C 语言程序设计中,字符数组和字符串不是完全一样的概念。
答案:正确
23.结构体变量所占的内存长度等于最长的成员的长度。
答案:错误
四、填空题(每题 2 分,共 10 分)
26.写出下列程序的输出结果____________,并指出该程序的功能________________________。
答案:3;统计二进制数中 1 的数目
27.存储字符串“a”需要占用存储器的____________个字节空间。
答案:2
28.假定一个结构类型的定义为“struct A{int a,b; A* c;};”,则该类型的理论长度为_______
_____。
答案:12
29.增量表达式++y 表示成赋值表达式为____________。
答案:y=y+1
五、编程题(每题 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);
}