《(中职)C语言程序设计期末考试卷及答案AB卷2套.pdf》由会员分享,可在线阅读,更多相关《(中职)C语言程序设计期末考试卷及答案AB卷2套.pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计试卷A姓名:学号:专业:学院:班级:2 0 年 月 日题号二三四五六七总分得分第一部分一、单项选择对 一 题 得2得分评卷人选 择 题(共 3 0 分)题(本 大 题 共1 5小题,每题只有一个正确答案,答分,共3 0分)1、以下关于c语言标识符的描述中,正确的是【LA)标识符可以由汉字组成 B)标识符只能以字母开头C)关键字可以作为用户标识符 D)Area与area是不同的标识符2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【int i,j,k;scanf(%d,%3d%d”,&i,&j,&k);printf(u%d,%d,%dn,i,j,k);A)1
2、2345678 B)123,456,78 C)123,45678 D)123,*456783、判断char类型的变量c l是否为数字字符的正确表达式为【工A)(cl=0)&(cl=,0,)&(cl=,9,)C)0=cl=0)|(cl=9)4、若有语句int a=l,b=2,c=3;则以下值为0的表达式是【A)a&b B)ab)|(b0;i-);后,变量i的值为A)10 B)9 C)0 D)18,若有int*pl,*p2,k;不正确的语句是A.pl=&k B.p2=plC.*p1=k+12 D.k=pl+p29、在函数中未指定存储类别的局部变量,其隐含的存储类别是A.静 态(static)B.外
3、 部(extern)C.自动(auto)D.寄存器(register)10、如下程序的输出结果是main()int x=2,a=0,b=0;switch(x)case 2:a+;b+;case 1:+a;b;break;case 0:b+;printf(na=%d,b=%dnH,a,b);A.a=2,b=0 B.a=2,b=l C.a=l,b=l D.a=l,b=011、表示关系ab=c的C语言表达式为A.(ab)&(b=c)B.(ab)AND(b=c)C.(ab=c)D.(ab)&(b=c)12、有以下程序#include main()int x;scanf(%d,&x);if(x=3);e
4、lseif(x!=10)printfC%dn,x);程序运行时,输入的值在哪个范围才会有输出结果。【】A.不等于10的整数 B.大于3且不等于10的整数C.大于3或不等于10的整数 D.小于3的整数13、break语句的正确用法是【】A.无论在任何情况下,都中断程序的执行,退出到系统下一层。B.在多重循环中,只能退出最靠近的那一层循环语句。C.跳出多重循环。D.只能修改控制变量。14、若a,b,c,d均为整型变量,执行以下程序段后的t的 值 为【】#define MAX(A,B)(A)(B)?(A):(B)a=5;b=3;c=3;d=4;t=MAX(a+b,c+d)*10;A.70 B.7 C
5、.8 D.8015、执行以下程序段后,m的值为【】int a6=1,2,3,4,5,6,m,*p;p=&a0;m=(*p)*(*(p+2)*(*(p+4);A)15 B)14 C)13 D)12第二部分 非选择题(共7 0分)1 6.字符型数据不可以进行加减运算。【】二、判 断 题说法正确.答F改)得分评卷人(本大题共1 0小题,每 题1分,共1 0分,答T表示表示说法不正确,本题只需指出正确与错误,不需要修17.函数定义与函数的声明是一回事。【】18.在C语言中函数能嵌套调用,也能嵌套定义。【】19.在C语言中switch语句必须使用break语句。【】20.fo r循环中的三个表达式都可以
6、省略。【】21.do-while循环是先进行循环体语句,后判断表达式。【】22.只能在main。函数中定义静态变量。【】23.char*sl=I love china”;定义了一个指针变量s i,它的初值为字符串u love chinaM的首地址。【】24.int*p4;与int(*p)4;的 作 用 相 同,都 是 定 义 了 一 个 指 向 数 组 的 指 针。125.预处理命令行最后也是以分号(;)结尾的。【】得分评卷人三、填空题(本大题共6小题,每 题3分,共1 8分。)26、在C语 言 中*作为单目运算符时表示 作为双目运算符时表示,而作为一种标记时表示 o27、表达式(a=3*5,
7、a*4),a+5中a的值是,整个表达式的值是。28、设有如下的类型说明:int a 10=1,2,3,4,5,6,7,8,9,10),*p=a;若数组所占内存单元的起始地址为4 4 6且整型数据占2个字节,则p+5=*(p+5)=。29、若定义了如下的共用体类型变量x和结构类型变量y,则x和y所占用的内存字节数分别为 和.union stul struct stu2 int num;int num;char name5;char name5;char s;x;char s;y;30、在T C中CTRL+F9的功能是、和。31、有以下程序#include main()char cl,c2;sca
8、nf(%c”,&cl);while(c 1 96)scanf(%c”,&cl);c2=cl+32;printf(c,%c”,c 1 ,c2);)程序运行输入65回车后,能否输出结果。(请 回 答 能 或 不 能)o得分 评卷人 四、简答题(本大题共2小题,每 题3分,共6分。)32、C语言中变量的存储类别有几种?局部变量的缺省存储类别是-哪种。33、请解释以下与一个C程序有关的3种文件(需要说明这些文件是什么文件、如何形成的):(1)file.c(2)file.obj(3)file.exe五、阅读程得分评卷人序回答问题(本大题共4 小题,每 题 5 分,共 2 0 分)34、#include
9、void main()int a=10,b=18;funl(a,b);)int fun 1 (int x,int y)if(xy)printf(nabnn);else if(xy)printf(abn);else printf(na=bnH);)问题:(1)写出程序的运行结果;(2)分别列出形参和实参;(3)解释#include o35、int fun(int a)int b=0;static int c=3;b=b+l;c=c+l;return(a+b+c);m ain()int a=2,i;for(i=0;i3;i+)printf(%d”,fun);问题:(1)写出该程序的运行结果;(2)
10、如果将static int c=3;语句改写成intc=3;,则运行结果如何变化?为什么?36、main()inta23=l,2,3,4,5,6,b32,i,j;printffarray a:n);for(i=0;i=l;i+)for(j=0;j=2;j+)printf(%5d”,aij);bji=aij;/*第七行*/printf(n);printfCarray b:n);for(i=0;i=2;i+)for(j=0;j=l;j+)printf(%5d”,biU);printf(n);问题:(1)写出程序的运行结果;(2)如果将第七行中的bji=aij;语句改写成bij=ai北则结果如何变化
11、。37、#includevoid fun(int*pl,int*p2)int t;t=*pl;*pl=*p2;*p2=t;void main()int x,y;int*pl,*p2;scanf(%d%d,&x,&y);pl=&x;p2=&y;if(xy)fun(pl,p2);printf(x=%d,y=%d,x,y);问题:(1)该程序的功能是什么;(2)程 序 中 的*和&分别代表什么运算符?(3)若 输 入5 3,则运行结果如何?六 编写程38、输入两个N-S图,然后得分评卷人序(本大题共1小题,共1 0分。)正整数m和n,求其最大公约数和最小公倍数。(先画再编写程序代码)得分评卷人七、程
12、序填空(本大题共1 小题,共 6 分。)39、invert。函数的功能是将一个字符串str的内容倒序存放。例如:字符串str原内容为:a b cd e,函数调用后变为:edcba。void invert(char str)inti,j,k;j=-;for(i=0;istrlen(str)/2;i+,j)k=stri;stri=strj;strj=;)main()char test=abcde;invert(test);printf(%sn,test);参考答案学院:班级:20 年 月 曰第一部分 选择题(共3 0分)一、单项选择题(本 大 题 共 15小题,每题只有一个正确答案,答对一题得2分
13、,共 3 0分)1、D 2、C 3、B6、A 7、C 8、D1 1、A 1 2、B 1 3、B第二部分4、D 5、B9、C 1 0、A1 4、A 1 5、A非选择题(共7 0分)二、判断题(本 大 题 共 10小题,每 题 1分,共 10分,答 T表示说法正确.答F表示说法不正确,本题只需指出正确与错误,不需要修改)1 6、F 1 7、F 1 8、F 1 9、F 20、T21、T 22、F 23、T 24、F 25、F三、填空题(本大题共6小题,每 题 3分,共 18分。)26、指向(1 份),乘(1 分);定义的变量是指针变量(1 分)27、1 5 (2 分),20 (1 分)28、4 5
14、6 (2 分),6 (1 分)29、5 (2 分)、8 (1 分)3 0、编 译(1 分)、连 接(1 分)、运 行(1 分)3 1、不 能(3分)四、简答题(本大题共2 小题,每 题 3分,共 6 分。)3 2(3分)、3 2、C语言中变量的存储类别有几种?局部变量的缺省存储类别是哪种。变量的存储类别分为两大类:静态存储类和动态存储类。具体包含四种:自动的(a u t o)、静态的(s t a t i c)、寄存器的(r e g i s t e r)、外部的(e x t e r n)。局部变量的缺省存储类别是a u t o 变量。3 3 (3分)、请简单说明C程序的执行过程。答:(1)f i
15、 l e.c 是源文件,通过编辑得到;(2)f i l e.o b j 是目标文件,即计算机能够处理的由二进制指令组成的文件,通过对源文件进行编译得到;(3)f i l e.e x e 是可执行文件,通过将目标文件与其他目标文件或库函数连接得到。五、阅读程序回答问题(本大题共4 小题,每 题 5分,共 2 0分)3 4、(1)(2 分)程序的运行结果:a b(2)(1 分)形参:x,y;实参:a,b(3)(2 分)#include是文件包含预处理命令,是将标准输入输出头文件stdio.h包含到该程序中。35、(1)(2 分)运行结果 7 89(2)(3 分)运行结果变成7 77因为在原来的程序
16、中用static定义的变量c 是局部静态变量,具有全局寿命,而修改后,变量c 变成了局部动态变量,在函37、(1)该程序的功能是由小到大输出两个数(2)*表示指向运算符;&表示取地址运算符。(3)x=3,y=5数调用出现时给这个变量分配内存单元。36、(1)(3 分)运行结果1 24 5array a:36array b:1 42 536(2)(2 分)输出结果为:array a:1 234 5array b:1 26 4 5随机数随机数六、编写程序(本大题共1 小题,共 1 0 分。)38、输入两个正整数m 和 n,求其最大公约数和最小公倍数。(先画N-S流程图,然后编写程序)。m a i
17、n()i n t p,r,m,n,t;s c a n f(d,%d ,&n,&m);i f(n 1 0意思相同的C语言表达式为 x 10 0 -10 。二、单项选择题(每题3分,共30分)(注:表示空格))o12345678910DI)DABABACC1 .下面正确的整型常量是(A.0092.在 C 语言中,A、/3.有如下程序,B.x789C.2e3D.要求运算数必须是整型的运算符是(B、+C、*=D、900)o若要求x l、x2、y l、y2的值分别为10、20、A、B,正确的数据输入是()oint xl,x2;char yl,y2;scanf(44%d%d,&x 1 ,&x2);scan
18、f(U 6%c%c,&yl,&y2);A.1020AB B.10 20 ABCC.10AB 20ABD 10 20AB4.根据下面的程序及数据的输入和输出的形式,程序中输入语句的正确形式应该为(#include stdio.h)omain()char sl,s2,s3;输出语句;printf(M%c%c%c,s 1,s2,s3);)输入形式:A _B _C v回车)输出形式:A BA.scanfft%c%c%c,&s 1 ,&s2,&s3);C.scanf(%c,%c,%c”,&sl,&s2,&s3);B.scanf(U%c_%c_%c”,&sl,&s2,&s3);D.scanf(t6%c%c
19、,&s 1 ,&s2);5.输入字符正确的语句是(A、scanf(c”,ch);C、&ch=getchar();6,下面无效的表达式语句是()oB、scanf(“c”,&ch);D、getchar(ch);)o%A.x+1;B.x+=1;C.x+;D.+x;7.所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的 值 是()oA.7B.8C.6D.28.已知各变量的类型说明如下:int k,a,b;long w=5;double x=1.42;则以下不符合C 语言语法的表达式是)oA.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(b=3)9.
20、下列程序段的输出结果是()。#i n c l u d e s t d i o.h m a i n()i n t a,b,d=241;a=d/10 0%9;b=(-1)&(1);p r i n t f(4%d,%d,a,b);)A.6,1 B.6,-1 C.2,1 D.2,-110 .下列程序运行结果是()o#i n c l u d e s t d i o.h m a i n()i n t a =5;i f(a+=5)p r i n t f(t t%d n,a);e l s ep r i n t f(u%d n,a-);)A.4 B.5 C.6 D.7三、程序填空题(每空3分,共15分)1 .输
21、入两个整数,求他们的平均值。#i n c l u d e s t d i o.h m a i n()i n t a =5;fl o a t a v;p r i n t f(“请输入两个整数并用逗号分隔”);s c a n f(d,%d”.&a,&b):a v=(a+b)/2p r i n t f(“整数d 和d 的平均值为f n”,a,b,a v);)2 .任意输入一个字符,要求输出该字符和她得A S C I I码,格式为“字符x的A S C I I码是X X”。#i n c l u d e,s t d i o.hMm a i n()c h a r c h;s c a n f(c”,&ch);
22、的 A S C I I 码是d”,c h,c h);四、阅读程序,写程序结果(每题5 分,共 15分)1#include,stdio.hmain()int a=3,b=6,s;char ch=,B,;s=a-b;ch+=2;printf(us=%d,ch=%cn,s,ch);)程序结果:s=3,ch=D o2、#includestdio.hmain()int x=2,y=-l,z=2;if(x0)z=0;elsez+;printf(z=%dn,z);程序结果:z=3 o3、#include“stdio.hmain()int a=2,b=3,c,d;c=a+b+;d=-a-b-;printf(4
23、a=%d,b=%dn,a,b);printfCc=%d,d=%dn,c,d);)a=2,b=3程序 结果:c=5,d=6 o五、编写程序(第一题4 分,第二题6 分,共 10 分)1.输入一个整数k,输出它的绝对值。请画出程序流程图。参考答案(不唯一,正确即可):开始输入整数k0.5输出-k0.5结束输出-k或者:2.编写程序:假设m一个三位整数,则将1n 的个位、十位、百位反序而组成一个新的三位整数,并输出该新的整数。(例 如 123反序为321)参考答案(不唯一,正确即可)#includestdio.h_main()int m,dl,d2,d3;-dl=m%10;d2=m/10%10;d3
24、=m%100;Jm=dl*100+d2*10+d3;_ _ _ _printf(“反序后,新的三位数为dn”,m);预处理命令和主函数格式,正确得1 分定义变量,正确得1分输入函数,正确得1分分解三个位上的数的算法,正确得2 分,新三位数算法,正确得1 分辿ahmainO*预处理命令和主函数格式,定义变量,正确得1分正确得1分scantf od.&m)输入函数,正确得1分a-dl=m%10:d2=ml0%10;卜d3=m%100;Jm=d 1 *100-d2*10-d 3 i-分解三个位上的数的算法,正确得2 分 i 新三位数算法,正确得1分P逆,“反序后,新的三位数为d n m):)1计算机技术基础试题 第16页(共16页)