《2022年c语言试题 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言试题 .pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一. 单选题 (共 20 题,每题 2 分,共 40 分)1. 以下叙述不正确的是()(2 分)A.一个 C 语言源程序可以由一个或多个函数组成B.一个 C 语言源程序必须包含一个main 函数C.C 语言源程序的基本组成单位是函数D.在 C 语言源程序中,注释说明只能位于一条语句的后面标准答案: D考生答案: D 考生得分: 2 分 评语:2. 下列程序中格式错误的是()(2 分)A.main() B.int a,b,z; C.a=2:b=3; D.z=a+b,y=7; 标准答案: C考生答案: C 考生得分: 2 分 评语:3. 以下叙述中正确的是()(2 分)A.C 语言比其他语言高级B
2、.C 语言可以不用编译就能被计算机识别执行C.C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C 语言出现的最晚,具有其他语言的一切优点标准答案: C考生答案: C 考生得分: 2 分 评语:4. 若有定义 float x=1.5;int a=1,b=3,c=2; ,则正确的switch 语句是()(2 分)A.switch(x) case 1.0: printf(*n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - -
3、- - - case 2.0 printf(*n); B.switch(int)x) case 1.0: printf(*n); case 2.0 printf(*n); C.switch(a+b) case 1: printf(*n); case 2+1: printf(*n); D.switch(a+b) case 1: printf(*n) case c: printf(*n); 标准答案: C考生答案: B 考生得分: 0 分 评语:5. 下面的符号常量定义中,正确的是( ) (2 分)A.#define PI 3.14; B.#include PI 3.14; C.#define P
4、I=3.14 D.#define PI 3.14 标准答案: D考生答案: D 考生得分: 2 分 评语:6. 下列程序执行后的输出结果是( ) #define MA(x) x*(x-1) main() int a=1,b=2; printf(%d n,MA(1+a+b); (2 分)A.6 B.8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - C.10 D.12 标准答案: B考生答案: D 考生得分: 0 分 评语:7.
5、 若用一维数组名作函数的实参,则以下说法正确的为() (2 分)A.实参数组类型和形参数组类型可以不匹配B.实参数组名和形参数组名必须一致C.形参数组可以不指定大小D.把实参数组全部元素的值传递给形参数组标准答案: C考生答案: B 考生得分: 0 分 评语:8. 以下程序运行后,输出结果是( ) int d=1L; fun (int p) int d=5; d+=p+; printf(%d,d); main() int a=3; fun(a); d+=a+; printf(%dn,d); (2 分)A.8,4 B.9,9 C.9,5 D.4,4 标准答案: A考生答案: A 考生得分: 2
6、分 评语:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - 9. 以下程序的输出结果是( ) int a, b; void fun() a=100; b=200; main() int a=5, b=7; fun(); printf(%d%d n, a,b); (2 分)A.100200 B.57 C.200100 D.75 标准答案: A考生答案:考生得分: 0 分 评语:10. 列程序执行后的输出结果是( ) void fu
7、nc1(int i); void func2(int i); char st=hello,friend!; void func1(int i) printf(%c,sti); if(i3)i+=2;func2(i); void func2(int i) printf(%c,sti); if(i3)i+=2;func1(i); main() int i=0; func1(i); printf(n); (2 分)A.hello B.hel C.hlo D.hlm 标准答案: C考生答案:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
8、 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - 考生得分: 0 分 评语:11. 以下程序的输出结果是( ) fun(int x, int y, int z) z=x*x+y*y; main() int a=31; fun(5,2,a); printf(%d,a); (2 分)A.0 B.29 C.31 D.无定值标准答案: C考生答案:考生得分: 0 分 评语:12. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2 分)A.地址传递B.单向值传递C.由实参传给形参,再由形参传回实参D.传递方式由用户指定
9、标准答案: B考生答案:考生得分: 0 分 评语:13. 以下函数值的类型是( ) fun ( float x ) float y; y= 3*x-4; return y; (2 分)A.int B.不确定C.void 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - D.float 标准答案: A考生答案:考生得分: 0 分 评语:14. C 语言规定函数的返回值的类型是由() (2 分)A.return 语句中表达式类型决定
10、B.调用该函数时的主调函数类型决定C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型决定标准答案: D考生答案:考生得分: 0 分 评语:15. 当调用函数时,实参是一个数组名,则向函数传送的是( ) (2 分)A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值标准答案: B考生答案:考生得分: 0 分 评语:16. 以下程序的输出结果是( ) long fun( int n) long s; if(n=1|n=2) s=2; else s=n-fun(n-1); return s; main() printf(%ldn, fun(3); (2 分)A.1
11、 B.2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - C.3 D.4 标准答案: A考生答案:考生得分: 0 分 评语:17. main() int p7=11,13,14,15,16,17,18, i=0,k=0; while(i7 & pi%2) k =k+ pi; i+; printf(%dn, k); 执行后输出结果是_。 (2 分)A.58 B.56 C.45 D.24 标准答案: D考生答案:考生得分: 0 分
12、 评语:18. 以下能正确定义数组并正确赋初值的语句是_。 (2 分)A.int N=5,bNN; B.int a12=1,3; C.int c2= 1,2,3,4; D.int d32=1,2,34; 标准答案: D考生答案:考生得分: 0 分 评语:19. 有以下程序main() int m3=1,4,7,2,5,8,3,6,9; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - int i,j,k=2; for(i=0;
13、i3; i+) printf(%d ,mki); 执行后输出结果是_。 (2 分)A.4 5 6 B.2 5 8 C.3 6 9 D.7 8 9 标准答案: C考生答案:考生得分: 0 分 评语:20. 以下能正确定义一维数组的选项是_。 (2 分)A.int num; B.#define N 100 int numN; C.int num0.100; D.int N=100; int numN; 标准答案: B考生答案:考生得分: 0 分 评语:二. 填空题 (共 10 题,每题 1 分,共 10 分)1. 下面的函数定义是一个求阶乘的递归调用函数。假定n 0。请填空。long fac(in
14、t n) long f; if (n=0) f=1; else f=; return (f); (1 分)标准答案: 1. n*fac(n-1) ( 或 fac(n-1)*n); 考生答案: 1. ; 考生得分: 0 分 评语:2. 以下程序在运行时输入10 20 30 则输出结果是#include int func(int a,int b,int c) return (a+b+c); main() int x,y,z; printf(Enter x,y,z: ); scanf(%d%c%d,&x,&y,&z); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
15、 - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - - - - - z=func(x,x+y,func(x,x+y,z); printf(z=%dn,z); (1 分)标准答案: 1. z=110; 考生答案: 1. ; 考生得分: 0 分 评语:3. 下面是求两个正整数m、 n 最大公因子的递归函数定义,请填空。 int gcd(int m,int n) int c; if (n=0) c=m; else c=gcd(); return (c); (1 分)标准答案: 1. n,m%n; 考生答案: 1. ; 考生得分:
16、0 分 评语:4. 执行以下程序的输出结果是#include main() int s,i,sum(); for (i=1;i=10;i+) s=sum(i); printf(s=%dn,s); sum(int k) int x=0; return (x+=k); (1 分)标准答案: 1. 10; 考生答案: 1. ; 考生得分: 0 分 评语:5. strlen(”apple ”)的值为,strcmp(”a”, ”A”)的值为. (1 分)标准答案: 1. 5; 2. 1; 考生答案: 1. ; 考生得分: 0 分 评语:6. 假定对二维数组a34 进行初始化的数据为3,5,6,2,8,7
17、,则 a11 和 a23 分别被初始化为和(1 分)标准答案: 1. 8; 2. 0; 考生答案: 1. ; 考生得分: 0 分 评语:7. C 源程序的基本单位是。 (1 分)标准答案: 1. 函数 ; 考生答案: 1. ; 考生得分: 0 分 评语:8. 以下程序运行后的输出结果是:void swap(int x,int y) int t; t=x;x=y;y=t;printf(%d %d ,x,y); main() int a=3,b=4; swap(a,b);printf(%d %dn,a,b); (1 分)标准答案: 1. 4 3 3 4; 考生答案: 1. ; 考生得分: 0 分
18、评语:9. 阅读下面程序,写出程序运行结果。 struct porb char * name ; int count; x=Li ning ,19, Lang ping ,21, Zhu jian hua,20; main() int i ; for(i = 0 ;i3;i + + ) print f( s: d n,xi.name ,xi.count) ; (1 分)标准答案: 1. Li ning :19 Lang ping :21 Zhu jian hua:20 ; 考生答案: 1. ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
19、 - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - 考生得分: 0 分 评语:10. 以下程序运行后,输出结果是func (int m ,int i) static int a=3; i+=m; m=i+a ; a=12; return(m); main() int k=4,m=1,p; p=func (k,m);printf(“%d,”, p); p=func (k,m) ;printf(“%dn” ,p); (1分)标准答案: 1. 8,17; 考生答案: 1. ; 考生得分: 0 分 评语:三. 判断题 (共 10 题,每
20、题 2 分,共 20 分)1. 不同的函数中可以使用相同的变量名。()(2 分)错误正确标准答案:正确考生答案:考生得分: 0 分 评语:2. 形式参数是局部变量。() (2 分)错误正确标准答案:正确考生答案:考生得分: 0 分 评语:3. do-while 语句构成的循环不能用其他语句构成的循环来代替()(2 分)错误正确标准答案:错误考生答案:考生得分: 0 分 评语:4. C 语言认为名为Student 和 student的变量是不同变量(2 分)错误正确标准答案:正确考生答案:考生得分: 0 分 评语:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
21、- - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 13 页 - - - - - - - - - 5. C 语言程序的书写格式虽然自由,但为了清晰,一般在一行内写一个语句()(2 分)错误正确标准答案:正确考生答案:考生得分: 0 分 评语:6. 函数调用可以出现在一个表达式中()(2 分)错误正确标准答案:正确考生答案:考生得分: 0 分 评语:7. C 语言程序中,语句以分号结尾()(2 分)错误正确标准答案:正确考生答案:考生得分: 0 分 评语:8. 在 switch-case语句中,必须使用default 语句() (2 分)错误正确标准答案:
22、错误考生答案:考生得分: 0 分 评语:9. 在 C 语言中,字符串常量隐含处理成以0结尾()(2 分)错误正确标准答案:正确考生答案:考生得分: 0 分 评语:10. C 语言中,用户所定义的标识符允许使用关键字()(2 分)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - 错误正确标准答案:错误考生答案:考生得分: 0 分 评语:四. 读程序题 (共 5 题,每题 2 分,共 10 分)1. 有以下程序# include
23、main( ) int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%dn”,x); 执行后输出结果是(2 分)标准答案: 1. -4; 考生答案: 1. ; 考生得分: 0 分 评语:2. 有以下程序#include main( ) char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-,0?; n2=n1*10+(ch2- ,0?); printf(“%dn”,n2); 程序运行时输入:12,执行后输出结果是。 (2 分)标准答案: 1. 12; 考
24、生答案: 1. ; 考生得分: 0 分 评语:3. 阅读下列程序, 写出程序的输出结果。 # include main() int y=9; for(; y0; y-) if( y%3 = 0) printf(%d,-y);continue; (2 分)标准答案: 1. 852; 考生答案: 1. ; 考生得分: 0 分 评语:4. 说明下列程序的功能。 #include void main() int i,j; float a33,b33,x; for(i=0;i3;i+) for(j=0;j3 ;j+) scanf(%f,&x); aij= x; for(i=0;i3;i+) for(j=
25、0;j3;j+) bji=aij; for(i=0;i3;i+) printf(n); for(j=0;j3;j+) printf(%f,bij); printf(n); (2 分)标准答案: 1. 按行顺序输入3*3 二维数组的全部元素,然后按列顺序输出。; 考生答案: 1. ; 考生得分: 0 分 评语:5. 阅读下列程序,将输出结果写到右侧的空白处。 main() int x1,x2,x3,x4;x1=x2=x3=x4=1 ; switch(x1) case 1 :switch(x2) case 0 :x3+ ;break; case1:x4- ; case 2:x3+,x4-; pri
26、ntf(%d%d ,x3,x4); (2 分)标准答案: 1. 2-1; 考生答案: 1. ; 考生得分: 0 分 评语:五. 程序设计题(共 2 题,每题 10 分,共 20 分)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 13 页 - - - - - - - - - 1. “spring ”、”summer”、”autumn”、”winter ”这四个字符串按字典顺序排序后输入。(10 分)标准答案: #include #include main() char
27、c10=spring,summer,autumn,winter; char temp10; int i,j; for(i=0;i3;i+) for(j=i+1;j0) strcpy(temp,ci);strcpy(ci,cj);strcpy(cj,temp); for(i=0;i4;i+) printf(%sn,ci); 考生答案:考生得分: 0 分 评语:2. 有一 10 个数的数组,求其最小值,和最大值,及最小值,最大值的不标。(10 分)标准答案: main() int a10,i,j,min,max,n; for(n=0;n10;n+) scanf(%d,&an); i=j=0;min=max=a0; for(n=1;nan) min=an;i=n; else if (max printf(mix=%d,i=%dt max=%d,j=%dn,min,i,max,j); 考生答案:考生得分: 0 分 评语:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -