C语言第八章函数测试.docx

上传人:b****4 文档编号:11344845 上传时间:2023-05-31 格式:DOCX 页数:20 大小:19.42KB
下载 相关 举报
C语言第八章函数测试.docx_第1页
第1页 / 共20页
C语言第八章函数测试.docx_第2页
第2页 / 共20页
C语言第八章函数测试.docx_第3页
第3页 / 共20页
C语言第八章函数测试.docx_第4页
第4页 / 共20页
C语言第八章函数测试.docx_第5页
第5页 / 共20页
C语言第八章函数测试.docx_第6页
第6页 / 共20页
C语言第八章函数测试.docx_第7页
第7页 / 共20页
C语言第八章函数测试.docx_第8页
第8页 / 共20页
C语言第八章函数测试.docx_第9页
第9页 / 共20页
C语言第八章函数测试.docx_第10页
第10页 / 共20页
C语言第八章函数测试.docx_第11页
第11页 / 共20页
C语言第八章函数测试.docx_第12页
第12页 / 共20页
C语言第八章函数测试.docx_第13页
第13页 / 共20页
C语言第八章函数测试.docx_第14页
第14页 / 共20页
C语言第八章函数测试.docx_第15页
第15页 / 共20页
C语言第八章函数测试.docx_第16页
第16页 / 共20页
C语言第八章函数测试.docx_第17页
第17页 / 共20页
C语言第八章函数测试.docx_第18页
第18页 / 共20页
C语言第八章函数测试.docx_第19页
第19页 / 共20页
C语言第八章函数测试.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言第八章函数测试.docx

《C语言第八章函数测试.docx》由会员分享,可在线阅读,更多相关《C语言第八章函数测试.docx(20页珍藏版)》请在冰点文库上搜索。

C语言第八章函数测试.docx

C语言第八章函数测试

试卷编号:

313

所属语言:

C语言

试卷方案:

第八章函数

试卷总分:

100分

共有题型:

4种

 

一、填空共12题(共计48分)

第1题(4.0分)题号:

824

以下程序运行后输出结果为【1】.(2007年春江苏省二级C)

#include"stdio.h"

intmystery(inta,intb)

{

if(b==1)retutna;

elsereturna+mystery(a,b-1);

}

voidmain()

{intx=5,y=3;printf("%d\n",mystery(x,y));}

 

答案:

=======(答案1)=======

15

 

第2题(4.0分)题号:

820

以下程序运行时,输出结果是【1】.(2006年春江苏省二级C)

#include

main()

{ints,i,sum(int);

for(i=1;i<=5;i++)

s=sum(i);

printf("%d\n",s);

}

sum(intk)

{staticintx=0;

returnx+=k;

}

 

答案:

=======(答案1)=======

15

 

第3题(4.0分)题号:

823

以下程序运行后输出结果为【1】.(2007年春江苏省二级C)

#include"stdio.h"

inta;

intm(inta)

{staticints;return(++s)+(--a);}

voidmain()

{inta=2;printf("%d",m(m(a)));}

 

答案:

=======(答案1)=======

3

 

第4题(4.0分)题号:

821

以下程序运行时,输出结果为【1】.(2006年春江苏省二级C)

#include

main()

{printf("%d\n",f(21,35));}

intf(inta,intb)

{if(a==b)returna;

else

if(a>b)returnf(a-b,b);

elsereturnf(a,b-a);

}

 

答案:

=======(答案1)=======

7

 

第5题(4.0分)题号:

819

以下程序运行时输出的结果的第二行是【1】,第四行是【2】,第六行是【3】.

(2005年春江苏省二级C)

#include

voidchange(ints[3][3],intd)

{inti,j,k;

if(d==0)

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

for(j=i+1;j<3;j++)

{k=s[i][j];s[i][j]=s[j][i];s[j][i]=k;}

}

else

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

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

{k=s[i][j];s[i][j]=s[2-j][2-i];s[2-j][2-i]=k;}

}

main()

{ints[3][3]=(1,2,3,4,5,6,7,8,9),I,j,k,n;

change(s,0);

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

{for(j=0;j<3;j++)printf("%4d",s[i][j]);

printf("\n");

}

change(s,1);

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

{for(j=0;j<3;j++)printf("%4d",s[i][j]);

printf("\n");

}

}

 

答案:

=======(答案1)=======

258

=======(答案2)=======

987

=======(答案3)=======

321

 

第6题(4.0分)题号:

816

在声明局部变量时,不能使用的存储类别标识符是【1】.(2007年春江苏省二级C)

答案:

=======(答案1)=======

extern

 

第7题(4.0分)题号:

818

以下程序运行时输出结果是【1】.(2004年秋江苏省二级C)

#include

voidnum()

{externintx,y;

inta=15,b=10;

x=a-b;y=a+b;

}

intx,y;

main()

{inta=7,b=5;

x=a+b;y=a-b;

num();

printf("%d,%d\n",x,y);

}

 

答案:

=======(答案1)=======

5,25

 

第8题(4.0分)题号:

814

一个用C语言编写的程序在运行时,如果没有发生任何异常情况,则只有在执行了【1】函数的最后一条语句或该函数中的return语句后,程序才会终止运行.(2005年春江苏省二级C)

答案:

=======(答案1)=======

main

 

第9题(4.0分)题号:

174

为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的【1】语句配对.

答案:

=======(答案1)=======

if

 

第10题(4.0分)题号:

813

若有函数定义intf(){intx=4,y=3,z=2;returnx,y,z;},则调用函数f后的返回值是【1】.(2004年春江苏省二级C)

答案:

=======(答案1)=======

2

 

第11题(4.0分)题号:

817

在以下程序的main函数中,语句"fun(x,10);"内的实参x表示数组x的【1】.(2007年春江苏省二级C)

voidfun(inta[10],intn)

{inti;for(i=0;i

main()

{intx[10]={0};fun(x,10);}

 

答案:

=======(答案1)=======

第一个元素地址或起始地址或首地址

 

第12题(4.0分)题号:

822

以下程序运行时,输出结果的第一行是【1】,第二行是【2】.(2006年春江苏省二级C)

#include

voidchange(intx,intm)

{charch[]={'0','1','2','3','4','5','6','7','8','9'},b[80];

inti=0,r;

while(x)

{r=x%m;x/=m;

b[i++]=ch[r];

}

for(--i;i>=0;i--)

printf("%c",b[i]);

}

main()

{inta,b;

change(10,2);

printf("\n");

change(10,8);

}

 

答案:

=======(答案1)=======

1010

=======(答案2)=======

12

 

二、单项选择共20题(共计40分)

第1题(2.0分)题号:

2305

以下叙述中不正确的是()(2000年秋江苏省二级C)

A:

一个变量的作用域完全取决于变量说明语句的位置

B:

外部变量可以在函数以外的任何位置定义

C:

内部变量的生存期只限于本次函数调用,无法将内部变量的值保存至函数的下一次调用

D:

用static说明的一个外部变量是为了限制其他编译单位的引用

 

答案:

C

第2题(2.0分)题号:

2322

已知在函数f中声明了局部变量x,如果希望f函数第一次被调用返回后变量x中存储的数据保持到下次f函数被调用时仍可以使用,则在声明x时必须指定其存储类型为().(2007年秋江苏省二级C)

A:

auto

B:

register

C:

static

D:

extern

 

答案:

C

第3题(2.0分)题号:

2308

在以下程序中,需要在main函数之后定义一个函数,以下选项中()可以用作该函数的名字.(2003年春江苏省二级C)

#definep3.14

inty;

main()

{inta=1;

函数名(a);

....../*若干执行语句*/

}

int函数名(intx)

{returnx*x;}

A:

main

B:

y

C:

p

D:

print

 

答案:

D

第4题(2.0分)题号:

2312

以下关于函数形式参数的声明中正确的是().(2004年秋江苏省二级C)

A:

inta[]

B:

inta[][]

C:

inta[]={0}

D:

inta[2][]

 

答案:

A

第5题(2.0分)题号:

2323

以下函数定义中正确的是().(2009年春江苏省二级C)

A:

doublefun(doublex,doubley){}

B:

doublefun(doublex;doubley){}

C:

doublefun(doublex,doubley);{}

D:

doublefun(doublex,y){}

 

答案:

A

第6题(2.0分)题号:

2321

以下关于C语言源程序的叙述中错误的是().(2007年春江苏省二级C)

A:

一个C语言源程序由若干个函数定义组成,其中必须有且仅有一个名为main函数定义

B:

函数定义由函数头部和函数体两部分组成

C:

在一个函数定义的函数体中允许定义另一个函数

D:

在一个函数定义的函数体中允许调用另一个函数或调用函数自身

 

答案:

C

第7题(2.0分)题号:

2320

若有数组A和B的声明"staticcharA[]="ABCDEF",B[]={'A','B','C','D','E','F'};",则数组A和数组B的长度分别是().(2006年秋江苏省二级C)

A:

7,6

B:

6,7

C:

6,6

D:

7,7

 

答案:

A

第8题(2.0分)题号:

2317

设有下列程序段:

staticcharb=2;

voidY()

{staticfloatd=4;.......}

inta=1;

voidX()

{intc=3;......}

关于程序段中各变量的属性,以下叙述中错误的是().(2006年春江苏省二级C)

A:

a是全局变量,函数X可以访问,函数Y不能访问

B:

b是全局变量,函数X和函数Y都可以访问

C:

c是动态变量,函数X可访问,函数Y不可访问

D:

d是静态变量,函数X和函数Y都可以访问

 

答案:

D

第9题(2.0分)题号:

2318

若已定义一个有返回值的函数,则以下关于调用该函数的叙述中错误的是().(2006年春江苏省二级C)

A:

函数调用可以作为独立的语句存在

B:

函数调用可以出现在表达式中

C:

函数调用可以作为一个函数实参

D:

函数调用可以作为一个函数形参

 

答案:

D

第10题(2.0分)题号:

2316

已知有函数f的定义如下:

intf(inta,intb)

{if(a

在main函数中若调用函数f(2,3),得到的返回值是().(2005年春江苏省二级C)

A:

2

B:

3

C:

2和3

D:

3和2

 

答案:

B

第11题(2.0分)题号:

2314

已知函数f的定义如下:

voidf(void)

{printf("That'sgreat!

");}

则调用f函数的正确形式是().(2004年秋江苏省二级C)

A:

f;

B:

f();

C:

f(void);

D:

f

(1);

 

答案:

B

第12题(2.0分)题号:

2311

以下程序运行时输出结果为().(2004年秋江苏省二级C)

intx=1;

main()

{printf(″%d″,f(x));}

#definex2

intf(inty)

{returnx+y;}

A:

1

B:

2

C:

3

D:

4

 

答案:

C

第13题(2.0分)题号:

2310

以下全局变量声明中正确的是().(2004年秋江苏省二级C)

A:

autointi=1;

B:

floata=1,b=0.5,c=a+b;

C:

charfor=1;

D:

staticcharch;

 

答案:

D

第14题(2.0分)题号:

2304

C语言中函数返回值的类型是由()决定的.(1998年秋江苏省二级C)

A:

return语句中的表达式类型

B:

调用该函数的主函数类型

C:

定义函数时所指定的函数类型

D:

传递给函数的实参类型

 

答案:

C

第15题(2.0分)题号:

2309

若有函数fun的定义为:

voidfun(...)

{staticinta=1;

......

}

则下列叙述中不正确的是()(2004年春江苏省二级C)

A:

在每次调用fun函数时,变量a的值是上次调用结束时a的值

B:

在fun函数之外,可以用变量名a直接引用a的值

C:

在其它函数中,可以出现声明doublea=2.5;

D:

fun函数的形式参数不能取名为a

 

答案:

D

第16题(2.0分)题号:

2313

关于函数返回值,以下叙述中正确的是().(2004年秋江苏省二级C)

A:

函数返回值的类型由函数体内return语句包含的表达式的类型决定

B:

函数返回值的类型由函数头部定义的函数类型决定

C:

若函数体中有多个return语句,则函数的返回值是排列在最后面的retum语句中表达式的值

D:

若函数体内没有retum语句,则函数没有返回值

 

答案:

B

第17题(2.0分)题号:

2315

以下函数定义中正确的是().(2005年春江苏省二级C)

A:

intfun(inta,b){}

B:

intfun(inta[][]){}

C:

intfun(void){}

D:

intfun(staticinta,intb){}

 

答案:

C

第18题(2.0分)题号:

2307

以下关于函数的叙述中,正确的是()(2003年春江苏省二级C)

A:

在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值

B:

在函数体中必须至少有一个return语句

C:

在函数体中可以定义另一个函数

D:

在函数体中可以调用函数自身

 

答案:

D

第19题(2.0分)题号:

2306

在以下程序中,需要在fun函数中声明一个int型的变量,以下选项中()不能用作该变量的名字.(2002年秋江苏省二级C)

#include

inty;

main()

{inta=1;

fun(a);

}

intfun(intx)

{;/*int型变量声明语句位置*/

....../*若干执行语句*/

}

A:

x

B:

y

C:

fabs

D:

fun

 

答案:

A

第20题(2.0分)题号:

2278

若有声明"inti,k=1;unsignedj;",则下列语句执行时会出现无限循环的语句是.(2008年春江苏省二级C)

A:

for(j=15;j>0;j-=2)k++;

B:

for(j=0;j<15;j+=2)k++;

C:

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

D:

for(i=15;i>0;i-=2)k++;

 

答案:

A

三、程序填空共1题(共计6分)

第1题(6.0分)题号:

54

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

求一个二维数组中每行的最大值和每行的和。

-------------------------------------------------------*/

#include

main()

{

inta[5][5],b[5],c[5],i,j,k,s=0;

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

for(j=0;j<5;j++)

a[i][j]=random(40)+20;

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

{

/***********SPACE***********/

k=a[i][0];【?

】;

for(j=0;j<5;j++)

{

/***********SPACE***********/

if(k

】;

s=s+a[i][j];

}

b[i]=k;

/***********SPACE***********/

【?

】;

}

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

{

for(j=0;j<5;j++)

/***********SPACE***********/

printf("%5d",【?

】);

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

printf("\n");

}

}

答案:

=======(答案1)=======

s=0

=======(答案2)=======

k=a[i][j]

=======(答案3)=======

c[i]=s

=======(答案4)=======

a[i][j]

 

四、程序改错共1题(共计6分)

第1题(6.0分)题号:

55

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

先从键盘上输入一个3行3列矩阵的各个元素的值,然后输

出主对角线上的元素之和sum。

------------------------------------------------------*/

#include

voidfun()

{

inta[3][3],sum;

inti,j;

/**********FOUND**********/

a=0;

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

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

/**********FOUND**********/

scanf("%d",a[i][j]);

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

/**********FOUND**********/

sum=sum+a[i][j];

/**********FOUND**********/

printf("sum=%f\n",sum);

}

main()

{

fun();

}

答案:

=======(答案1)=======

sum=0;

=======(答案2)=======

scanf("%d",&a[i][j]);

=======(答案3)=======

sum=sum+a[i][i];

=========或=========

sum+=a[i][i];

=======(答案4)=======

printf("sum=%d\n",sum);

 

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

当前位置:首页 > 自然科学 > 物理

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

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