c语言期末测试题附答案.doc_第1页
c语言期末测试题附答案.doc_第2页
c语言期末测试题附答案.doc_第3页
c语言期末测试题附答案.doc_第4页
c语言期末测试题附答案.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.课程代码:A100002 座位号:计算机技术基础(C语言)试卷A姓名: 学号: 专业: 学院: 班级: 20 年 月 日题号一二三四五六七总分得分第一部分 选择题(共 30 分)得分评卷人 一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是 【 】。A)标识符可以由汉字组成 B)标识符只能以字母开头C)关键字可以作为用户标识符 D)Area与area是不同的标识符2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%dn”,i,j,k);A)12345678 B)123,456,78 C)123,45678 D)123,*456783、判断char类型的变量c1是否为数字字符的正确表达式为 【 】。A) (c1=0)&(c1=0)&(c1=9)C) 0=c1=0)|(c1=9)4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。A)a&b B)ab)|(b0;i-);后,变量i的值为 【 】。A)10 B)9 C)0 D)18、若有int *p1, *p2,k; 不正确的语句是 【 】A. p1=&k B. p2=p1C. *p1=k+12 D. k=p1+p29、在函数中未指定存储类别的局部变量,其隐含的存储类别是 【 】A. 静态(static)B. 外部(extern)C. 自动(auto). 寄存器(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(a=%d, b=%dn, a, b); A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, 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); else if(x!=10)printf(“%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. 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第二部分 非选择题(共 70 分)得分评卷人 二、判断题(本大题共 10 小题,每题1分,共 10 分,答T表示说法正确.答F表示说法不正确,本题只需指出正确与错误,不需要修改)16. 字符型数据不可以进行加减运算。 【 】17. 函数定义与函数的声明是一回事。 【 】18.在C语言中函数能嵌套调用,也能嵌套定义。 【 】19. 在C 语言中switch 语句必须使用break 语句。 【 】20. for循环中的三个表达式都可以省略。 【 】21. do-while循环是先进行循环体语句,后判断表达式。 【 】22. 只能在main()函数中定义静态变量。 【 】23. char *s1=“I love china”;定义了一个指针变量s1,它的初值为字符串“I love china”的首地址。 【 】24. int *p4;与int (*p)4;的作用相同,都是定义了一个指向数组的指针。 【 】25. 预处理命令行最后也是以分号(;)结尾的。 【 】得分评卷人 三、填空题(本大题共 6 小题,每题 3 分,共 18 分。)26、在C语言中 * 作为单目运算符时表示_,作为双目运算符时表示_,而作为一种标记时表示_。27、表达式(a=3*5,a*4),a+5中a的值是_,整个表达式的值是 _。28、设有如下的类型说明: int a10=1,2,3,4,5,6,7,8,9,10,*p=a;若数组所占内存单元的起始地址为446且整型数据占2个字节,则p+5=_,*(p+5)=_。29、若定义了如下的共用体类型变量x和结构类型变量y,则x和y所占用的内存字节数分别为_和_。 union stu1 struct stu2 int num; int num; char name5; char name5; char s; x; char s; y; 30、在TC中CTRL+F9的功能是_、_和_。31、有以下程序#include main()char c1,c2; scanf(“%c”,&c1); while(c196) scanf(“%c”,&c1);c2=c1+32;printf(“%c,%c”,c1,c2);程序运行输入65回车后,能否输出结果。(请回答能或不能)_。得分评卷人得分评卷人四、简答题(本大题共 2 小题,每题 3 分,共 6 分。)32、C语言中变量的存储类别有几种?局部变量的缺省存储类别是哪种。33、请解释以下与一个C程序有关的3种文件(需要说明这些文件是什么文件、如何形成的):(1) file.c (2) file.obj (3) file.exe得分评卷人五、阅读程序回答问题(本大题共 4 小题,每题 5分,共 20 分)34、#include void main() int a=10,b=18; fun1(a,b);int fun1(int x,int y) if(xy) printf(abn); else if(xy) printf(abn); else printf(a=bn); 问题:(1)写出程序的运行结果;(2)分别列出形参和实参;(3)解释#include 。35、int fun(int a) int b=0; static int c=3;b=b+1;c=c+1;return(a+b+c);main( ) int a=2, i; for(i=0; i3; i+)printf(“%d”, fun(a); 问题:(1) 写出该程序的运行结果;(2) 如果将static int c=3; 语句改写成int c=3; ,则运行结果如何变化?为什么?36、main( ) int a23=1,2,3,4,5,6, b32, i, j;printf(“array a:n”);for(i=0;i=1;i+) for(j=0;j=2;j+)printf(“%5d”, aij); bji=aij; /*第七行*/printf(“n”);printf(“array b:n”);for(i=0;i=2;i+)for(j=0;j=1;j+) printf(“%5d”, bij); printf(“n”);问题:(1) 写出程序的运行结果;(2)如果将第七行中的bji=aij;语句改写成bij=aij;,则结果如何变化。 37、#includevoid fun(int *p1, int *p2)int t;t=*p1;*p1=*p2;*p2=t; void main()int x,y;int *p1,*p2;scanf(%d %d,&x,&y);p1=&x; p2=&y;if(xy) fun(p1,p2);printf(x=%d,y=%d, x, y); 问题:(1) 该程序的功能是什么;(2) 程序中的 * 和 & 分别代表什么运算符?(3)若输入 5 3 ,则运行结果如何? 得分评卷人得分评卷人六、编写程序(本大题共1小题,共 10 分。)38、输入两个正整数m和n,求其最大公约数和最小公倍数。(先画N-S图,然后再编写程序代码)得分评卷人七、程序填空(本大题共1小题,共 6 分。)39、invert( )函数的功能是将一个字符串str的内容倒序存放。例如:字符串str原内容为:abcde,函数调用后变为:edcba。void invert(char str) int i,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);课程代码:A100002 座位号:计算机技术基础(C语言)试卷A标准答案学院: 班级: 20 年 月 日第一部分 选择题(共 30 分)一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分) 1、D 2、C 3、B 4、D 5、B6、A 7、C 8、D 9、C 10、A11、A 12、B 13、B 14、A 15、A第二部分 非选择题(共 70 分)二、判断题(本大题共 10 小题,每题1分,共 10 分,答T表示说法正确.答F表示说法不正确,本题只需指出正确与错误,不需要修改)16、F 17、F 18、F 19、F 20、T 21、T 22、F 23、T 24、F 25、F三、填空题(本大题共 6 小题,每题 3 分,共 18 分。)26、指向(1份),乘(1分);定义的变量是指针变量(1分)27、15(2分),20(1分) 28、456(2分),6(1分)29、5(2分)、8(1分)30、编译(1分)、连接(1分)、运行(1分)31、不能(3分)四、简答题(本大题共 2 小题,每题 3 分,共 6 分。)32(3分)、32、C语言中变量的存储类别有几种?局部变量的缺省存储类别是哪种。变量的存储类别分为两大类:静态存储类和动态存储类。具体包含四种:自动的(auto)、静态的(static)、寄存器的(register)、外部的(extern)。局部变量的缺省存储类别是auto变量。33(3分)、请简单说明C程序的执行过程。答:(1) file.c是源文件,通过编辑得到;(2) file.obj是目标文件,即计算机能够处理的由二进制指令组成的文件,通过对源文件进行编译得到;(3) file.exe是可执行文件,通过将目标文件与其他目标文件或库函数连接得到。五、阅读程序回答问题(本大题共 4 小题,每题 5 分,共 20 分)34、(1)(2分)程序的运行结果:ab(2)(1分)形参:x, y;实参:a, b(3)(2分)#include是文件包含预处理命令,是将标准输入输出头文件stdio.h包含到该程序中。35、(1)(2分)运行结果 7 8 9 (2)(3分)运行结果变成 7 7 7因为在原来的程序中用static定义的变量c是局部静态变量,具有全局寿命,而修改后,变量c变成了局部动态变量,在函数调用出现时给这个变量分配内存单元。36、(1)(3分)运行结果 array a: array b: 1 2 3 1 4 4 5 6 2 53 6(2)(2分) 输出结果为:array a: array b: 1 2 3 1 2 4 5 6 4 5随机数 随机数37、(1)该程序的功能是由小到大输出两个数 (2)* 表示指向运算符; &表示取地址运算符。(3)x=3,y=5六、编写程序(本大题共1小题,共 10 分。) 输入n,m nmT Ft=n;n=m;m=t; p=n*m; m!=0 r=n%m;n=m;m=r;最大公约数n,最小公倍数p/n38、输入两个正整数m和n,求其最大公约数和最小公倍数。(先画N-S流程图,然后编写程序)。main( ) int p,r,m,n,t; scanf(“%d,%d”,&n,&m);if(nm) t=n;n=m;m=t;p=n*m;while(m!=0)r=n%m;n=m;m=r;printf(zui da gong yue shu :%dn”,n);printf(zui xiao gong bei shu :%dn”,p/n);七、程序填空(本大题共1小题,共 6 分。)39、(1) strlen(st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论