第七章函数(答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章习题函数
一、选择题
1.以下所列的各函数首部中,正确的是( C )
A) void play(var :Integer,var b:Integer) B) void play(int a,b)
C) void play(int a,int b) D) Sub play(a as integer,b as integer)
2.如下fun函数的类型是( C )
fun(float x)
{ double y; int z;
y=x*x;
z=(int)y ;
return(z) ; }
A)void B)double C)int D) float
3.以下程序的运行结果是( A )
int fun(int array[4][4])
{ int j;
for(j=0;j<4;j++) printf("%2d",array[2][j]);
printf("\n");}
main()
{ int a[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0};
fun(a); }
A) 2 0 0 5 B) 1 0 0 4 C) 0 1 2 0 D) 0 4 5 0
4.以下程序运行后屏幕输出为( B )
#include
void f(int i)
{ int a=2;
a=i++;
printf("%d, ",a); }
main()
{ int a=1,c=3;
f(c);
a=c++;
printf("%d",a); }
A) 4,3 B)3,3 C)4 ,5 D)3,5
5.有以下程序
void swap1(int c[])
{ int t;
t=c[0];c[0]=c[1];c[1]=t;}
void swap2(int c0,int c1)
{ int t;
t=c0;c0=c1;c1=t;}
main( )
{ int a[2]={3,5},b[2]={3,5};
swap1(a); swap2(b[0],b[1]);
printf("%d %d %d %d\n ",a[0],a[1],b[0],b[1]);
} 其输出结果是( B )
A)5 3 5 3 B) 5 3 3 5 C)3 5 3 5 D)3 5
5 3
6. 以下函数的功能是( A )
int fun( int n)
{ if (n==1) return 1;
else return fun(n-1)+n; }
A) 计算1+2+3+4+…+n B) 计算1*2*3*4*…*n
C) 仅返回函数值1 D) 仅返回函数值n
【局部变量和全局变量】
7. 以下叙述中正确的是 ( A )
A)局部变量说明为static 存储数,其生存期将得到延长
B)全局变量说明为static 存储类,其作用域将被扩大
C)任何存储类的变量在未赋初值时,其值都是不确定的
D)形参可以使用的存储类说明符与局部变量完全相同
8. 若有如下函数定义:
int fun()
{ static int k=0; return ++k; }
以下程序段运行后屏幕输出为( C )
int i;
for(i=1;i<=5;i++) fun();
printf("%d",fun());
A) 0 B)1 C) 5 D) 6
9. 下面程序的输出结果是( C )
#include
int x,y; { int a=9,b=5;
f() x=a+b; y=a-b;
{ int y,a=25,b=10; f();
x=a+b; y=a-b; printf(“%d,%d\n ”,x,y); }
return; }
A)14,4 B)35,15 C)35,4 D)14,15
二、改错题
【循环:累加题】
1. 函数fun(int n) 的功能是:根据参数n ,计算大于10的最小n 个能被3整除的正整数的倒数
之和。例如:
396.033
1.......211181151121)8(=+++++=fun #include
#include
#define M 50
double fun(int n)
{ double y = 0.0;
int i,j;
j=0;
for(i=1;;i++)
{/**/ if((i>10)&&(i%3==0)) /**/
{/**/ y+=1.0/i; /**/
j++;
}
if(j==n) break;
}
return y;}
void main()
{ clrscr();
printf("fun(8) = %8.3lf\n", fun(8));}
【循环:求特殊数】
2.输出201-300之间的所有素数,统计总个数。
#include
#include
int fun()
{ int m,i,k,n=0;
for(m=201; m<=300;m+=2)
{ k=sqrt(m+1);
for(i=2;i<=k;i++)
/**/ if(m%i==0) /**/
break;
/**/ if(i>k) /**/
{ printf("%-4d",m);
n++;;
if(n%10==0) printf("\n");
}}
return n;}
void main()
{ int num;
printf("\n");
num=fun();
printf("\nThe total of prime is %d",num);
getch();
}
【循环:穷举法】
3.求解百马百担问题
有100匹马,驮100担货,大马驮3担,中马2担,两匹小马驮1担,问大、中、小马数可分别为多少?有多少种解决方案?