第八章函数有答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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() ;

相关文档
最新文档