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

下载本文档

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

文档简介

课程代码:A100002座位号:

《计算机技术基础(C语言)》试卷A

姓名:学号:专业:

学院:班级:

A)标识符可以由汉字组成B)标识符只能以字母开头

C)关键字可以作为用户标识符D)Area与area是不同的标识符

2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【

inti,j,k;

scanf("%d,%3d%d”,&i,&j,&k);

printf("%d,%d,%d\n>,,i,j,k);

A)12345678B)123,456,78C)123,45678D)123,*45678

3、推断char类型的变量cl是否为数字字符的正确表达式为lo

A)(cl>=0)&&(cl<=9)B)(cl>=,O')&&(cl<=,9')

C)'O'<=cl<='9,D)(cl>=,O')||(cl<='9')

4、若有语句inta=l,b=2,c=3;则以下值为0的表达式是]o

A)'a'&&'b'B)a<=bC)((a>b)||(b<c)D)(!(a+b)==c&&a)

5、已知:inta[2][3];则对数组元素的非法引用是

[1

A.*(a[0]+2)B.a⑴⑶C.a[l][0]D.*(*(a+l)+2)

6在循环语句的循环体中执行break语句,其作用是

A)跳出该循环体,提前结束循环

B)接着执行break语句之后的循环体各语句

C)结束本次循环,进行下次循环

D)终止程序运行

7、执行语句for(i=10;i>0;i-);后,变量i的值为

[】。

A)10B)9C)0D)1

8、若有int*pl,*p2,k;不正确的语句是

[1

A.pl=&kB.p2=pl

C.*pl=k+12D.k=pl+p2

9、在函数中未指定存储类别的局部变量,其隐含的存储类别是

]

A.静态(static)B.外部(extern)

C.自动(auto)D.寄存器(register)

10如下程序的输出结果是

[1

main()

{intx=2,a=0,b=0;

switch(x)

{case2:a++;b++;

case1:++a;b-;break;

case0:b++;)

printf("a=%d,b=%d\n”,a,b);}

A.a=2,b=0B.a=2,b=lC.a=l,b=lD.a=l,b=0

11、表示关系a<b<=c的C语言表达式为[1

A.(a<b)&&(b<=c)B.(a<b)AND(b<=c)

C.(a<b<=c)D.(a<b)&(b<=c)

12、有以下程序

ttinclude<stdio.h>

main()

{intx;

scanf("%d",&x);

if(x<=3);else

if(x!=10)printf("%d\n",x);}

程序运行时,输入的值在哪个范围才会有输出结果。【】

A.不等于10的整数B.大于3且不等于10的整数

C.大于3或不等于10的整数D.小于3的整数

13、break语句的正确用法是【】

A.无论在任何状况下,都中断程序的执行,退出到系统下一层。

B.在多重循环中,只能退出最靠近的那一层循环语句。

C.跳出多重循环。D.只能修改限制变量。

14、若a,b,c,d均为整型变量,执行以下程序段后的t的值为【】

ttdefineMAX(A,B)(A)<(B)?(A):(B)

a=5;b=3;c=3;d=4;

t=MAX(a+b,c+d)*10;

A.70B.7C.8D.80

15、执行以下程序段后,m的值为]

inta[6]={1,2,3,4,5,6},m,*p;

p=&a[0];

m=(*p)*(*(p+2))*(*(p+4));

A)15C)13D)12

其次部分非选择题(共70分)

二、推断题(本大题共10小题,每题1分,共10分,答T表

示说法正确.答F表示说法不正确,本题只需指出正确与错误,

不须要修改)

16.字符型数据不行以进行加减运算。

[1

17.函数定义与函数的声明是一回事。[1

18.在C语言中函数能嵌套调用,也能嵌套定义。[1

19.在C语言中switch语句必需运用break语句。

20.for循环中的三个表达式都可以省略。]

21.do-while循环是先进行循环体语句,后推断表达式。【】

22.只能在main。函数中定义静态变量。【】

23.char*sl="Ilovechina”;定义了一个指针变量si,它的初值为字符串“I

lovechina”的首地址。【】

24.int*p[4];与int(*p)[4];的作用相同,都是定义了一个指向数组的指针。

[1

25.预处理叮嘱行最终也是以分号(;)结尾的。[1

三、填空题(本大题共6小题,每题3分,共18分。)

26、在C语言中*作为单目运算符时表示,作为

双目运算符时表示,而作为一种标记时表示

27、表达式(a=3*5,a*4),a+5中a的值是,整个表达式的值是

28、设有如下的类型说明:

inta[10]={l,2,3,4,5,6,7,8,9,10},*p=a;

若数组所占内存单元的起始地址为446且整型数据占2个字节,则p+5=,

*(p+5)=。

29、若定义了如下的共用体类型变量x和结构类型变量y,则x和y所占用的内

存字节数分别为和。

unionstulstructstu2

{intnum;{intnum;

charname[5];charname[5];

chars;}x;chars;}y;

30、在TC中CTRL+F9的功能是__、和

31、有以下程序

ttinclude<stdio.h>

main()

{charcl,c2:

scanf("%c",&cl);

while(cl<651|cl>96)scanf("%c",&cl);

c2=cl+32;

printf("%c,枇”,cl,c2);

程序运行输入65回车后,能否输出结果。(请回答能或不能)

四、简答题(本大题共2小题,每题3分,共6分。)

32、C语言中变量的存储类别有几种?局部变量的缺省存储类

别是哪种。

33、请说明以下与一个C程序有关的3种文件(须要说明这些

文件是什么文件、如何形成的):(1)file.c(2)

file,obj

五、阅读程序回答问题(本大题共4小题,每题5分,共20

分)

34、ttinclude<stdio.h>

voidmain()

{inta=10,b=18;

funl(a,b);

intfunl(intx,inty)

{if(x>y)

printf('a>b\n");

elseif(x<y)printf("a<b\n");

elseprintf("a==b\n");

问题:(1)写出程序的运行结果;(2)分别列出形参和实参;(3)说明#include

<stdio.h>o

35、intfun(inta)

{intb=0;

staticintc=3;

b=b+l;

c=c+l;

return(a+b+c);}

main()

{inta=2,i;

for(i=0;i<3;i++)

printf("%d”,fun(a));}

问题:(1)写出该程序的运行结果;(2)假如将staticintc=3;语句

改写成intc=3;,则运行结果如何变更?为什么?

36、main()

{inta[2][3]={1,2,3,4,5,6},b⑶⑵,i,j;

printf(aarraya:\n");

for(i=0;i<=l;i++)

{for(j=0;j<=2;j++)

{printf("%5d”,a[i][j]);

/*第七行*/

printf("\n");}

printf(arrayb:\n");

for(i=0;i<=2;i++)

{for(j=0;j<=l;j++)

printf("%5d",b[i][j]);

printf("\n");}

问题:(1)写出程序的运行结果;(2)假如将第七行中的b[j][i]=a[i][j];语句改

写成则结果如何变更。

37>#include<stdio.h>

voidfun(int*pl,int*p2)

{intt;

t=*pl;*pl=*p2;*p2=t;}

voidmain()

{intx,y;

int*pl,*p2;

scanf("%d%d”,&x,&y);

pl=&x;p2=&y;

if(x>y)fun(pl,p2);

printf(/zx=%d,y=%d//,x,y);}

问题:(1)该程序的功能是什么;(2)程序中的*和&分别代表什么运

算符?(3)若输入53,则运行结果如何?

六、编写程序(本大题共1小题,共10分。)

38、输入两个正整数m和n,求其最大公约数和最小公倍数。

(先画N-S图,然后再编写程序代码)

七、程序填空(本大题共1小题,共6分。)

39、invert。函数的功能是将一个字符串str的内容倒序存

放。

例如:字符串str原内容为:abcde,函数调用后变为:edcba。

voidinvert(charstr[])

{inti,j,k;

j=;

for(i=0;i<strlen(str)/2;i++,j一)

{k=str[i];

str[i]=str[j];

str[j]=;

main()

{chartest[]="abcde”;

invert(test);

printf(,/%s\n//,test);

课程代码:A100002座位号:

《计算机技术基础(C语言)》试卷A标准答案

学院:班级:

20年月日

第一部分选择题(共30分)

一、单项选择题(本大题共15小题,每题只有一个正确答案,答对一题得2分,

共30分)

1、D2、C3、B4、D5、B

6、A7、C8、D9、C10、A

11、A12、B13、B14、A15、A

其次部分非选择题(共70分)

二、推断题(本大题共10小题,每题1分,共10分,答T表示说法正确.答F表示

说法不正确,本题只需指出正确与错误,不须要修改)

16、F17、F18、F19、F20、T

21、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分)、运行(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分)程序的运行结果:a<b

(2)(1分)形参:x,y;实参:a,b

(3)(2分)#include<stdio.h

温馨提示

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

评论

0/150

提交评论