2022年兰州交通大学公共课《C语言》科目期末试卷A(有答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2022年兰州交通大学公共课《C语言》科目期末试卷A(有答案)
一、填空题
1、若x=0123,则表达式(5+(int)(x))&(~2)的值是_______。
2、在C语言源程序中,一个变量代表【】。
3、一个C语言源程序由若干函数组成,其中至少应含有一个________
4、在C语言中,用“\”开头的字符序列称为转义字符。转义字符“\n”的功能是_______;转义字符“\r”的功能是_______。
5、若x和a均是int型变量,则执行表达式(1)后的x值为_______,执行表达式(2)后的x值为_______。
(1)x=(a=4,6*2)(2)x=a=4,6*2
6、已有一维数组a,n为元素的个数,且各元素均有值;函数void process
(float*p,int n,float(*fun)(float*,int))为一个可完成下面各种计算的
通用函数。请分别写出用于以下计算的各函数中的调用语句_______、_______和
_______。
(1)float arr_add(float*arr,int n)计算数组元素值之和。
(2)float odd_add(float*p,int n)计算下标为奇数的元素之和。
(3)float arr_ave(float*p,int n)计算各元素的平均值。
7、执行下面程序段后,k的值是_______。
k=1;n=263;
do{k*=n%10;n/=10;} while(n);
8、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及
相应的格式说明。
union
{int n;doublex;}num;
num.n=10;
num.x=10.5;
printf("_______",_______);
9、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。
10、设有以下宏定义:
#define WIDTH80
#define LENGTH(WIDTH+40)
则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是_______。
二、选择题
11、下面4个选项中,是不合法的整型常量的选项是 ( )。
A.--0f1
B.-0Xcdf
C.-018
D.-0x48eg
0xfff 017 999 -0680
011 12.456 5e2 03f
12、设有说明语句:int k=7,x=12;则以下能使值为3的表达式是( )。
A..x%=(k%=5)
B..x%=(k-k%5)
C..x%=k-k%5
D..(x%=k)-(k%=5)
13、以下程序的运行结果是()。
#include
int main()
{int xl=0xabc,x2=0xdef;
x2-=xl;
printf("%X\n",x2);
return 0
}
A.ABC
B.0Xabc
C.0X333
D.333
14、设有以下程序:
#include
int main()
{int a=201,b=012;
printf("%2d,%2d\n",a,B.;
return 0;
.}
程序执行后的输出结果是()。
A.01,12
B.201,10
C.01,10
D.20,01
15、下面程序段的运行结果是()。
charc[]=\t\\\\owil\n";
printf("%d",strlen(C.);
A.14
B.3
C.9
D.字符串中有非法字符,输出值不确定
16、以下叙述不正确的是( )
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
17、设有程序段:
int k=10;while(k=0)k=k-1;
则下面描述中正确的是()。
A.while循环执行10次
B.循环是无限循环
C.循环体语句一次也不执行
D.循环体语句执行一次
18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是()
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回给实参
D.由用户指定传递方式
19、下面能正确进行字符串赋值操作的是()。
A.char s[5]={"ABCDE');
B.char s[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;scanf("%s",s);
20、下面程序段的运行结果是()。
char*s="abcde";
s+=2;printf("%d',s);
A.cde
B.字符c
C.字符c的地址
D.无确定的输出结果
21、折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位
于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary的作