第八章函数有答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试卷编号:313
所属语言:C语言
试卷方案:第八章函数
试卷总分:100分
共有题型:4种
一、填空共12题(共计48分)
第1题(4.0分)题号:824
以下程序运行后输出结果为【1】.(2007年春江苏省二级C) #include"stdio.h"
int mystery(int a,int b)
{
if(b==1) retutn a;
else return a+mystery(a,b-1);
}
void main()
{ int x=5,y=3; printf("%d\n",mystery(x,y));}
答案:
=======(答案1)=======
15
说明:5+(5,2);5+5+(5,1);5+5+5
第2题(4.0分)题号:820
以下程序运行时,输出结果是【1】.(2006年春江苏省二级C) #include
main()
{ int s,i,sum(int);
for(i=1;i<=5;i++)
s=sum(i);
printf("%d\n", s);
}
sum(int k)
{ static int x=0;
return x+=k;
}
答案:
=======(答案1)=======
15
说明:子函数中的x是static,所以是累加,x=0+1+2+3+4+5
第3题(4.0分)题号:823
以下程序运行后输出结果为【1】.(2007年春江苏省二级C)
#include"stdio.h"
int a;
int m(int a)
{ static int s; return(++s)+(--a);}
void main()
{ int a=2; printf("%d",m(m(a)));}
答案:
=======(答案1)=======
3
说明:因为static int s,所以s是静态的,要累加,第一次调用m(2),return(++s)+(--a)相当于return (0+1)+(2-1),下一次调用m(m(a))=m(2), return(++s)+(--a)相当于return (1+1)+(2-1)
第4题(4.0分)题号:821
以下程序运行时,输出结果为【1】.(2006年春江苏省二级C)
#include
main( )
{ printf("%d\n",f(21,35));}
int f(int a,int b)
{ if(a==b)return a;
else
if(a>b) return f(a-b,b);
else return f(a,b-a);
}
答案:
=======(答案1)=======
7
说明:第一次调用f(21,35),第二次调用 f(21,14),第三次调用f(7,14),第四次调用f(7,7)
第5题(4.0分)题号:819
以下程序运行时输出的结果的第二行是【1】,第四行是【2】,第六行是【3】.
(2005年春江苏省二级C)
#include
void change( int s[3][3] , int d )
{ int i , 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()
{ int s[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)=======
2 5 8
=======(答案2)=======
9 8 7
=======(答案3)=======
3 2 1
第6题(4.0分)题号:816
在声明局部变量时,不能使用的存储类别标识符是【1】.(2007年春江苏省二级C)
答案:
=======(答案1)=======
extern
第7题(4.0分)题号:818
以下程序运行时输出结果是【1】.(2004年秋江苏省二级C)
#include
void num()
{ extern int x , y ;
int a = 15 , b = 10 ;
x = a-b ; y = a+b ;
}
int x , y ;
main()
{ int a = 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】语句配对.