C语言第八章函数测试.docx
- 文档编号:4585233
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:17
- 大小:19.48KB
C语言第八章函数测试.docx
《C语言第八章函数测试.docx》由会员分享,可在线阅读,更多相关《C语言第八章函数测试.docx(17页珍藏版)》请在冰豆网上搜索。
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***********/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第八 函数 测试