《2022年C语言期末考试试卷附参考答案 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言期末考试试卷附参考答案 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 / 5一、 单项选择题 (请将答案填在下面表格中201). 以下叙述中正确的是() 。A. C 语言比其他语言高级B. C 语言可以不用编译就能被计算机识别执行C. C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式D. C 语言出现的最晚,具有其他语言的一切优点. 以下叙述中正确的是() 。A.构成 C 程序的基本单位是函数B.可在一个函数中定义另一个函数C. main 函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义. 以下叙述中正确的是() 。A. C 语言程序总是从第一个函数开始执行B.在 C 语言程序中,要调用函数必须在main()函数中定义C. C
2、 语言程序总是从 main()函数开始执行D. C 语言程序中的 main()函数必须放在程序的开始部分. 以下有关 for 循环的正确描述是() 。A. for 循环只能用于循环次数已经确定的情况B. for 循环是先执行循环体语句,后判断表达式C.在 for 循环中,不能用 break语句跳出循环体D. for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来. 对下面程序段的描述,正确的是() 。x=1;dox=x*x;while(!x);A.是死循环B. 循环执行一次C. 循环执行两次D. 有语法错误6. 以下有关 C 语言数组说法正确的是() 。A.数组元素的数据类型可以不
3、一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是() 。A. int a(20);B. int a =1,2,5,7,0;C. int an;D. int a2=1,2,4,6;8.在定义 int b210; 之后,对 b 数组元素引用正确的是 ( )。A. b09B. b2,3C. b(1)(5)D. b10 09. 如有定义语句 int c =1,5,3,4,6,7,0; ,则数组 c 有()个元素。A.0B.不定C. 6D. 710.以下叙述中不正确的
4、是 ( )。A.字符数组中可以存放字符串B.可以对字符型数组进行整体输入、输出C.可以对整型数组进行整体输入、输出D.不能通过“ =”对字符型数组进行整体赋值11.已知 char d =”543210”;,则数组 d 的长度是 ( )。A.5B.6C. 7D. 812.已知 char s3 =”China”;,则下列程序段的输出结果是() 。printf(“%d ”,sizeof(s3);A.5B. 6C. 7D.813.已知 char s110,s2 =”China”;则在程序中能将字符串” China ”赋给数组 s1的是 () 。名师归纳总结 精品学习资料 - - - - - - - -
5、 - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 2 / 5A.s1= “China”;B.strcpy(s1,s2);C. s1=s2;D. strcpy(s2,s1);14.将字符串中大写字母换成小写字母的函数是( )。A.strlwrB. struprC.stringD.strlen15.下列( )排序方法中,执行一轮比较后,只交换一次数据。A. 起泡法B. 顺序比较法C. 选择法D. 插入法16.在 C 语言程序中,有关函数的定义正确的是() 。A.函数定义不可
6、以嵌套,但函数调用可以嵌套B.函数定义可以嵌套,但函数调用不可以嵌套C.函数定义和函数调用均不可以嵌套D.函数定义和函数调用均可以嵌套17.以下错误的说法是 ()。A.实参可以是常量、变量或表达式B.形参可以是常量、变量或表达式C.实参可以为任何类型D.形参应与其对应的实参类型一致18.以下错误的描述是:函数调用可以()。A.出现在执行语句中B.出现在一个表达式中C.作为一个函数调用的实参D.作为一个函数的形参19. 函数调用时,若形参和实参都是变量名,则正确的说法是( )。A. 形参不分配内存B. 形参分配内存C. 形参和实参占用相同的内存D. 实参不分配内存20.以下函数值的类型是 ( )
7、。fun(float x) float y; y=3*x-4;return y;A. intB. floatC. voidD. 不确定二、判断题 (正确的打 ,错误的打 ,101)1.一个循环体内又包含另一个完整的循环结构称为循环的嵌套。()2.break语句能提前终止循环。()3.二维数组可被看作一种特殊的一维数组:它的元素又是一个一维数组。()4. 对 9 个元素使用冒泡法排序时,需要排9 轮,第一轮需要比较9 次。()5. strcat(字符数组 1, 字符数组 2)的作用是将字符数组2 接到字符数组 1 后面。()6. strcmp(“Beijing”, ”Korea”)的函数值是一个
8、正整数。()7.语言中,数组元素的下标是从1 开始的,下标不能越界。()8.函数的形参在函数未调用时预分配了存储空间。()9.如函数值的类型和 return 语句中表达式的值不一致,则以函数类型为准。()10.调用函数时,实参是数组元素,则实现的是“值传递”。()三、填空题 (102)1. 定义二维数组的一般形式为:, 引用一维数组元素的形式为:。2. 有一序列: 21,-5,8,11,9,0,34,4,-17,6从小到大排序,用冒泡法经过二轮排序后,序列中 10个数的顺序为:,若使用顺序比较法,经过三轮排序后,这 10个数的顺序为:。名师归纳总结 精品学习资料 - - - - - - - -
9、 - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 3 / 53. 调用字符串处理函数时,应在程序的开头添加预编译命令:#include,puts( )函数将一个以结束的字符序列(字符串)输出到终端4.C 语言中,函数分为系统提供的和用户自定义函数两类,也可分为有参函数和两类。5.函数的递归调用指在调用一个函数的过程中又。6.函数值只能通过语句返回主调函数。四、程序改错 (求出两个非零正整数的最大公约数,并作为函数值返回。 在错误下面划横线,在右边写出正确内容, 52)五
10、、阅读程序写出运行结果(45)# includeint fun(int a, b ) int r,t;if(ab) t=a;b=a;a=t;r=a%b;while(r!=0)a=b;b=r;r=a/b;return a; 3. #include # includeint main( ) int i,j,n=0;for(i= 5;i=5;i+) if(i%2!=0) n+;for(j=1;j=abs(i);j+) printf(“ “);for(j=1;j=11 abs(i)*2;j+) printf(“%c “,64+n);printf(n); 运行结果为:void main( ) int n
11、1,n2,a;printf(“please input n1,n2:n”);scanf( “%d%d ”, &n1,&n2);a=fun(n1,n2);printf( 最大公约数是: %dn,a);1. # includeint main( ) void fun(int x);fun(8);printf(n);void fun(int x)if(x/20) fun(x/2);printf(%d,x); 运行结果为:2.# include void main ( ) char s1 =”This book ”;char s2 =”THIS hook ”;int i;for (i=0;s1i!=0
12、 &s2i!=0 ;i+) if(s1i!=s2i) printf(“%c ”,s1i);运行结果为:4. #include int main( ) int i,j,x;int a10 =12,3,14,5,26,97,38,9,0,2;for(i=0;i=0&xaj) aj+1=aj;j;aj+1=x;printf( 排序后为: n); for(i=0;i=9;i+) printf(“%5d ”,ai);运行结果为:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第
13、3 页,共 5 页 - - - - - - - - - 4 / 5六、程序填空题 (结果按序号填在下方对应横线上,102 分)_ _ _ _ _ _ _ _ _ 附:参考答案一、单项选择题题 号1 2 3 4 5 6 7 8 9 10 答 案C A C D B D B A D C 题 号11 12 13 14 15 16 17 18 19 20 答 案B B B A C A B D B A 二、判断题题 号1 2 3 4 5 6 7 8 9 10 答 案三、填空题1.类型说明数组名常量表达式 常量表达式 数组名 下标2. -5,8,9,0,11,4,-17,6,21,34 -17,-5,0,2
14、1,11,9,34,8,4,61、编程实现将十进制整数n 转换成十六进制数输出。#includeint main() int n,a20,i=0,m=0; char hex16 =0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F;printf( 请输入整数 n:n );scanf(_, &n); while(n0) ai+=n%16; n= _; printf( 转化为十六进制的数为:); for(i=i 1; _;i) /倒序输出 m=ai;printf(_ _,hexm); printf(n); 、编写判断是否为素数的函数,在主函数中输入一整数,输出是否为素数。#includ
15、eint psushu(_)int i;for(i=2; _ _;i+)if(m%i=0) return 0;return _ _;void main() int a, s;printf( 请输入整数: n );scanf( “%d ”, _);s=psushu(a);if (_) printf(“%d是素数 n ”,a);else printf(%d不是素数 n,a);名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 5 页 - - - - - - -
16、- - 5 / 53. string.h 04. 库函数无参函数5.直接或间接地调用该函数本身6. return四、程序改错五、阅读程序写出运行结果1.12482.hisb3.4. -2 0 3 5 9 12 14 26 38 97六、程序填空题_stdio.h_ _int m_”%d ”_ _im 或 i=0_ _&a_ _%c_ _s 或 s=1_ # includeint fun(int a, b ) int r,t;if(ab) t=a;b=a;a=t;r=a%b;while(r!=0)a=b;b=r;r=a/b;return a; void main( ) int n1,n2,a;printf(“please input n1,n2:n”);scanf( “%d%d ”, &n1,&n2);a=fun(n1,n2);printf( 最大公约数是: %dn,a);Int b a = b;b=ta%br 或 bAAAABBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDEEEEEEEEF名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 5 页 - - - - - - - - -