You are on page 1of 6

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

一、单项选择题(每题 2 分,共 20 分)
1.语句(1,2,3,4)的结果是( )。
A.1
B.2
C.3
D.4
答案:D

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

3.下列关于结构的语法错误的是( )。
A.结构是由用户自定义的一种数据类型
B.结构中可设定若干个不同数据类型的成员
C.结构中成员的数据类型可以是另一个已定义的结构
D.在定义结构时,可以为成员设置默认值
答案:D

4.( )是在定义函数时放在函数名称之后的括号中的参数。
A.实参
B.形参
C.自定义参数
D.系统参数
答案:B

5.若已定义 int a=5;下面对(1),(2)两个语句的正确解释是( )。


(1)int *p=&a;(2)*p=a;
A.语句(1)和(2)中的 *p 含义相同,都表示给指针变量 p 赋值
B.(1)和(2)语句的执行结果,都是把变量 a 的地址值赋给指针变量 p
C.(1)在对 p 进行说明的同时进行初始化,使 p 指向 a(2)将变量 a 的值赋给指针变量 p
D.(1)在对 p 进行说明的同时进行初始化,使 p 指向 a(2)将变量 a 的值赋于*p
答案:D

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


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

7.已知 char x[]=“hello”, y[]={’h’,’e’,’a’,’b’,’e’};, 则关于两个数组长度的


正确述是( )。
A.相同
B.x 大于 y
C.x 小于 y
D.以上答案都不对
答案:B

8.以下对数组描述正确的是( )
A.数组一旦定义其大小是固定的,但数组元素的类型可以不同
B.数组一旦定义其大小是固定的,且数组元素的类型必须相同
C.数组一旦定义其大小是可变的,且数组元素的类型可以不同
D.数组一旦定义其大小是可变的,但数组元素的类型必须相同
答案:B

9.合法的字符常量是( )。
A.‘\084’
B.‘\84’
C.‘ab’
D.’\x43’
答案:D

10.C 语言中,char 型数据在内存中的存储形式是( )。


A.原码
B.反码
C.补码
D.ASCII 码
答案:D

二、多项选择题(每题 3 分,共 30 分)
11.高级语言分为两大类,分别是( )。
A.面向过程语言
B.面向对象语言
C.面向程序语言
D.面向游戏语言
答案:AB

12.共用体常用于( )。
A.常用来节省内存,特别是一些嵌入式编程,内存是非常宝贵的
B.常用来占据内存,特别是一些嵌入式编程,内存越占多越好
C.常用于操作系统数据结构或硬件数据结构
D.以上都不对
答案:AC

13.三种基本程序结构是( )。
A.顺序结构
B.选择结构
C.循环结构
D.树结构
答案:ABC

14.指针变量的类型可以定义成下列哪些( )。
A.char
B.float
C.int
D.double
答案:ABCD

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

16.选择结构根据情况分为三种,则选择结构的三种形式是( )。
A.单分支结构
B.双分支结构
C.多分支结构
D.单循环结构
答案:ABC

17.循环结构经常使用的两种控制方式是( )。
A.条件控制的循环
B.计数控制的循环
C.Raptor 操作的循环
D.DEV-C 操作的循环
答案:AB

18.采用多分支实现简易计算器功能,以下描述正确的是( )。
A.只能用 switch 多分支语句实现计算器程序
B.用 switch..case..default 结构实现的计算器中加入 default 语句使得程序具有较好的容错性
C.用 switch 结构实现计算器,结构紧凑,代码条理
D.switch 结构与 if...else..if 都是用来实现多分支选择结构的
答案:BCD
19.下面的二维数组初始化语句中,正确的是( )。
A.inta[3][]={1};
B.inta[3][3]={1,2};
C.inta[][]={1,2};
D.inta[][4]={2,3};
答案:BD

20.单分支与双分支的根本区别是( )。
A.单分支选择结构:一条支路有语句,一条支路空
B.双分支选择结构:二条支路都有语句
C.双分支选择结构:一条支路有语句,一条支路空
D.单分支选择结构:二条支路都有语句
答案:AB

三、判断题(每题 2 分,共 10 分)
21.带有随机函数的表达式 rand( )%20 的值所在的区间范围是 0~19。
答案:正确

22.C 语言规定:定义符号常量时必须用大写字母。
答案:错误

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


答案:错误

24.用关键字 static 声明的变量是全局变量,在整个程序的全部执行过程中都占用存储单元。


答案:错误

25.在 C 程序的表达式中,为了明确表达式的运算次序,常使用括号“( )”。


答案:正确

四、填空题(每题 2 分,共 10 分)
26.写出表达式 1.234&&5.982 的值是____________。
答案:1

27.下列程序的输出结果是____________。
答案:6543

28.假定 p 所指对象的值为 25,p+1 所指对象的值为 46,则*p++的值为____________。


答案:25

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

30.空字符串的长度为____________。
答案:0

五、编程题(每题 10 分,共 30 分)
31.编程求 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); 
}

32.输入三个整数 x,y,z,请把这三个数由小到大输出。 
答案:main()
{ int x,y,z,t;
scanf(“%d%d%d,&x,&y,&z);
if (x>y) {t=x;x=y;y=t;}
if(x>z) {t=z;z=x;x=t;}
if(y>z) {t=y;y=z;z=t;}
printf(“small to big:%d %d %d\n”,x,y,z);}

33.输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
答案:
main()
{ int a,b,num1,num2,temp;
printf(“please input two numbers:\n”);
scanf(“%d,%d”,&num1,&num2);
if(num1<num2)
{temp=num1;
num1=num2;
num2=temp;}
a=num1;b=num2;
while(b!=0)
{temp=a%b;
a=b;
b=temp;}
printf(“公约数:%d\n”,a);
printf(“公倍数:%d\n”.num1*num2/a);}

You might also like