第八章函数有答案

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

相关文档
最新文档