第八章函数有答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试卷编号:313
所属语
言:C语言
试卷方
案:
第八章函数
试卷总
分:
100 分
共有题
型:4
种
一、填空共12 题(共计48 分)
第 1 题(分)题号:824
以下程序运行后输出结果为【1】.(2007 年春江苏省二级C)#include"" 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 题(分)题号: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 题 (分) 题号:823
以下程序运行后输出结果为【1】.(2007 年春江苏省二级C) #include""
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 题 (分) 题号: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 题(分)题号: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 题(分)题号:816
在声明局部变量时, 不能使用的存储类别标识符是【1】.(2007 年春江苏省二级
C)答案:
=======(答案1)=======
extern
第7 题(分)题号: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() ;