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

下载本文档

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

文档简介

1、座位号:课程代码: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);prin

2、tf(%d,%d,%dn ,i,j,k);A) 12345678 B ) 123, 456, 78 C ) 123, 45678 D ) 123, *456783、判断char类型的变量c1是否为数字字符的正确表达式为【A) (c1>=0)&&(c1<=9) B) (c1>=0 ')&&(c1<= '9')C) '0'<=c1<='9'D) (c1>='0')|(c1<= '9')4、若有语句int a=1,b=2,c=3 ;则

3、以下值为0的表达式是【】。A) 'a'&&b'B ) a<=b C ) (a>b)|(b<c)D)(!(a+b)=c&&a)5、已知:int a23; 则对数组元素的非法引用是A. *(a0+2) B. a13 C . a10 D. *(*(a+1)+2)】。6、在循环语句的循环体中执行break 语句,其作用是A)跳出该循环体,提前结束循环B)继续执行break语句之后的循环体各语句C)结束本次循环,进行下次循环D)终止程序运行7、 执行语句for(i=10;i>0;i-); 后, 变量 i 的值为A) 10 B

4、 ) 9 C ) 0 D ) 18、若有 int *p1, *p2, k; 不正确的语句是A. p1=&k B. p2=p1C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是A. 静态( static )B. 外部( 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("a=%d, b=%dn",

5、 a, b);A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=011、表示关系a<b<=c的C语言表达式为A. (a<b)&&(b<=c)B. (a<b)AND(b<=c)C. (a<b<=c)D. (a<b)&(b<=c)12、 有以下程序#include <stdio.h>main()int x;scanf( “%d”,&x);if(x !=10)printf(if(x<=3); else%dn”,x); 程序运行时,输入的值在哪个范围才

6、会有输出结果。【】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;C.8D.80D) 12非选择题(共70分)t=MAX(a+b,c+d) *10;A. 70B.715、执行以下程序段后

7、,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第二部分得分评卷人二、判断题(本大题共10小题,每题1分,共10分, 答T表示说法正确.答F表示说法不正确,本题只需指 出正确与错误,不需要修改)16 .字符型数据不可以进行加减运算。【17 .函数定义与函数的声明是一回事。【18 .在C语言中函数能嵌套调用,也能嵌套定义。【19 .在C语言中switch 语句必须使用break语句。【20 . for循环中的三个表达式都可以省略。【21 . do-while循环是先进行循环体语句,后

8、判断表达式。【22 .只能在main()函数中定义静态变量。【23 . char *s1="I love china ”;定义了一个指针变量 s1,它的初值为字符串“ I love china ”的首地址。【124 . int *p4; 与int (*p)4;的作用相同,都是定义了一个指向数组的指针。【】25 .预处理命令行最后也是以分号(;)结尾的。【】3得分评卷人、填空题(本大题共6小题,每题3分,共18分。)726、在C语言中*作为单目运算符时表示 ,作为双目运算符时表示,而作为一种标记时表示27、表达式(a=3*5,a*4),a+5 中a的值是,整个表达式的值是 28、设有如

9、下的类型说明: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 stulstruct stu2 int num;int num;char name5;char name5;char s; x;char s; y;30、在 TC中 CTRL+F9勺功能是:?口31、有以下程序#include <stdio.h>main()char c1,c2;scanf( %c&c1)

10、;while(c1<65|c1>96) 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 <std

11、io.h>void main() int a=10,b=18;fun1(a,b);int fun1(int x,int y) if(x>y)printf("a>b'n");else if(x<y) printf("a<bn");else printf("a=bn");ff #include <stdio.h>问题:(1)写出程序的运行结果;(2)分别列出形参和实参;(3)解35、 int fun(int a) int b=0;static int c=3;b=b+1;c=c+1;ret

12、urn(a+b+c);main( ) int a=2, i;for(i=0; i<3; 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 ”);print

13、f( “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、#include<stdio.h>void 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);

14、p1=&x;p2=&y;if(x>y) fun(p1,p2);printf("x=%d,y=%d", x, y); 问题:(1)该程序的功能是什么;(2)程序中的*和&分别代表什么运算符? ( 3)若输入5 3,则运行结果如何?得分 评卷人 六、编写程序(本大题共1小题,共10分。)38、输入两个正整数 m和n,求其最大公约数和最小公倍数。(先画N-S图,然后再编写程序代码)11得分评卷人七、程序填空(本大题共1小题,共6分。)39、invert() 函数的功能是将一个字符串str的内容倒序存放。 例如:字符串str原内容为:abcde,函数调

15、用后变为:edcba。 void invert(char str) int i,j,k;尸;for (i=0;i<strlen(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

16、 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、F17、F18、F19、F20、T21、T22、F23、T24、F25、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分)

17、、运行(1分)31、不能(3分)四、简答题(本大题共2小题,每题3分,共6 分。)32 (3分)、32、C语言中变量的存储类别有几种?局部变量的缺省存储类别是哪种。变量的存储类别分为两大类:静态存储类和动态存储类。具体包含四种:自动的(auto)、静态的(static)、寄存器的(register)、外部的(extern)。局部变量的缺省存储类别是auto变量。33 (3分)、请简单说明C程序的执行过程。答:(1)巾le.c是源文件,通过编辑得到;(2) file.obj是目标文件,即计算机能够处理的由二进制指令组成的文件,通过对源文件进行编译得到;(3) file.exe是可执行文件,通过将

18、目标文件与其他目标文件或库函数连接得到。五、阅读程序回答问题(本大题共4小题,每题5分,共20分)34、(1) (2分)程序的运行结果:a<b(2) (1分)形参:x, y ;实参:a, b(3) (2分)#include<stdio.h> 是文件包含预处理命令,是将标准输入输出头文件 stdio.h包含到该程序中。35、(1) (2分)运行结果 7 8 9(2) (3分)运行结果变成777因为在原来的程序中用static定义的变量c是局部静态变量,具有全局寿命,而修改后,变量 c变成了局部动态变量,在函数调用出现时给这个变量分配内存单元。36、(1) (3 分)运行结果 array a:array b:1 23144562536(2) (2分)输出结果为:array a:array b:1 231245645随机数随机数37、(1)该程序的功能是由小到大输出两个数(2) *表示指向运算符;&表示取地址运算符(3) x=3, y=5六、编写程序(本大题共1小题,共10分。)38、输入两个正整数 m和n,求其最大 公约数和最小公倍数。(先画N-S流程图, 然后编写程序)。main() int p,r,m,n,t;scanf( %d,%d

温馨提示

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

评论

0/150

提交评论