c语言期末测试题附答案Word格式文档下载.doc

上传人:wj 文档编号:1457287 上传时间:2023-04-30 格式:DOC 页数:11 大小:60.50KB
下载 相关 举报
c语言期末测试题附答案Word格式文档下载.doc_第1页
第1页 / 共11页
c语言期末测试题附答案Word格式文档下载.doc_第2页
第2页 / 共11页
c语言期末测试题附答案Word格式文档下载.doc_第3页
第3页 / 共11页
c语言期末测试题附答案Word格式文档下载.doc_第4页
第4页 / 共11页
c语言期末测试题附答案Word格式文档下载.doc_第5页
第5页 / 共11页
c语言期末测试题附答案Word格式文档下载.doc_第6页
第6页 / 共11页
c语言期末测试题附答案Word格式文档下载.doc_第7页
第7页 / 共11页
c语言期末测试题附答案Word格式文档下载.doc_第8页
第8页 / 共11页
c语言期末测试题附答案Word格式文档下载.doc_第9页
第9页 / 共11页
c语言期末测试题附答案Word格式文档下载.doc_第10页
第10页 / 共11页
c语言期末测试题附答案Word格式文档下载.doc_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言期末测试题附答案Word格式文档下载.doc

《c语言期末测试题附答案Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《c语言期末测试题附答案Word格式文档下载.doc(11页珍藏版)》请在冰点文库上搜索。

c语言期末测试题附答案Word格式文档下载.doc

i,&

j,&

k);

printf(“%d,%d,%d\n”,i,j,k);

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

3、判断char类型的变量c1是否为数字字符的正确表达式为【】。

A)(c1>

=0)&

&

(c1<

=9)B)(c1>

=’0’)&

=’9’)

C)’0’<

=c1<

=’9’D)(c1>

=’0’)||(c1<

4、若有语句inta=1,b=2,c=3;

则以下值为0的表达式是【】。

A)’a’&

’b’B)a<

=bC)((a>

b)||(b<

c)D)(!

(a+b)==c&

a)

5、已知:

inta[2][3];

则对数组元素的非法引用是【】

A.*(a[0]+2)B.a[1][3]C.a[1][0]D.*(*(a+1)+2)

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

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

B)继续执行break语句之后的循环体各语句

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

D)终止程序运行

7、执行语句for(i=10;

i>

0;

i--);

后,变量i的值为【】。

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

8、若有int*p1,*p2,k;

不正确的语句是【】

A.p1=&

kB.p2=p1

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

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

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

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

10、如下程序的输出结果是【】

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=1C.a=1,b=1D.a=1,b=0

11、表示关系a<

b<

=c的C语言表达式为【】

A.(a<

b)&

(b<

=c)B.(a<

b)AND(b<

=c)

C.(a<

=c)D.(a<

12、有以下程序

#include<

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的值为【】

#defineMAX(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)15B)14C)13D)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=“Ilovechina”;

定义了一个指针变量s1,它的初值为字符串“Ilovechina”的首地址。

【】

24.int*p[4];

与int(*p)[4];

的作用相同,都是定义了一个指向数组的指针。

【】

25.预处理命令行最后也是以分号(;

)结尾的。

【】

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

26、在C语言中*作为单目运算符时表示____________,作为双目运算符时表示__________,而作为一种标记时表示______________。

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

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

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

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

29、若定义了如下的共用体类型变量x和结构类型变量y,则x和y所占用的内存字节数分别为_________和__________。

unionstu1structstu2

{intnum;

{intnum;

charname[5];

charname[5];

chars;

}x;

chars;

}y;

30、在TC中CTRL+F9的功能是__________、__________和_____________。

31、有以下程序

{charc1,c2;

scanf(“%c”,&

c1) 

while(c1<

65||c1>

96)scanf(“%c”,&

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<

voidmain()

{inta=10,b=18;

fun1(a,b);

intfun1(intx,inty)

{if(x>

y)

printf("

a>

b\n"

);

elseif(x<

y)printf("

a<

elseprintf("

a==b\n"

问题:

(1)写出程序的运行结果;

(2)分别列出形参和实参;

(3)解释#include<

35、intfun(inta)

{intb=0;

staticintc=3;

b=b+1;

c=c+1;

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[3][2],i,j;

printf(“arraya:

\n”);

for(i=0;

i<

=1;

i++)

{for(j=0;

j<

=2;

j++)

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

b[j][i]=a[i][j];

}/*第七行*/

printf(“\n”);

printf(“arrayb:

{for(j=0;

j++)

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

(1)写出程序的运行结果;

(2)如果将第七行中的b[j][i]=a[i][j];

语句改写成b[i][j]=a[i][j];

,则结果如何变化。

37、#include<

voidfun(int*p1,int*p2)

{ intt;

t=*p1;

*p1=*p2;

*p2=t;

}

{ intx,y;

int*p1,*p2;

scanf("

%d%d"

&

x,&

y);

p1=&

x;

p2=&

y;

if(x>

y)fun(p1,p2);

printf("

x=%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;

strlen(str)/2;

i++,j--)

{k=str[i];

str[i]=str[j];

str[j]=_____________;

}

}

{chartest[]="

abcde"

invert(test);

printf("

%s\n"

test);

A100002座位号:

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

班级:

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

1、D2、C3、B4、D5、B

6、A7、C8、D9、C10、A

11、A12、B13、B14、A15、A

16、F17、F18、F19、F20、T

21、T22、F23、T24、F25、F

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分)

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分)程序的运行结果:

b

(2)(1分)形参:

x,y;

实参:

a,b

(3)(2分)#include<

是文件包含预处理命令,是将标准输入输出头文件stdio.h包含到该程序中。

35、

(1)(2分)运行结果789

(2)(3分)运行结果变成777

因为在原来的程序中用static定义的变量c是局部静态变量,具有全局寿命,而修改后,变量c变成了局部动态变量,在函数调用出现时给这个变量分配内存单元。

36、

(1)(3分)运行结果arraya:

arrayb:

12314

45625

36

(2)(2分)输出结果为:

arraya:

12312

45645

随机数随机数

37、

(1)该程序的功能是由小到大输出两个数

(2)*表示指向运算符;

&

表示取地址运算符。

(3)x=3,y=5

输入n,m

n<

m

TF

t=n;

n=m;

m=t;

p=n*m;

m!

=0

r=n%m;

m=r;

最大公约数n,最小公倍数p/n

38、输入两个正整数m和n,求其最大

公约数和最小公倍数。

(先画N-S流程图,

然后编写程序)。

{intp,r,m,n,t;

scanf(“%d,%d”,&

n,&

m);

if(n<

m)

{t=n 

n=m 

m=t 

p=n*m 

while(m!

=0)

{r=n%m 

m=r 

zuidagongyueshu:

%d\n”,n);

zuixiaogongbeishu:

%d\n”,p/n);

39、

(1)strlen(str)-1(3分),

(2)k(3分)

计算机技术基础试题第11页(共8页)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2