8. 以下程序的运行结果是:
#include
{ int a[]={1,2,3,4},i,x=0; for(i=0;i<4;i++){
sub(a,x);printf("%d",x);} printf("\n"); } A)1234
9. 以下程序的运行结果是: main()
{ int w=5;fun(w);printf("\n");} fun(int k)
{ if(k>O) fun(k-1); printf(" %d",k); }
A)5 4 3 2 l
B)0 1 2 3 4 5
C)1 2 3 4 5
D)5 4 3 2 1 0
10. 以下所列的各函数首部中,正确的是_______。 A)void play(vat a:Integer,var b:Integer) C)void play(int a,int b) A)数组的长度
B)void play(int a,b)
D)Sub play(a as integer,b as integer)
B)432l
C)0000
D)4444
11. 当调用函数时,实参是一个数组名,则向函数传送的是_______。
B)数组的首地址 D)数组每个元素中的值
B)单向值传递
C)数组每一个元素的地址 A)地址传递
12. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_______。 C)由实参传给形,再由形参传回实参 D)传递方式由用户指定
13. 以下函数值的类型是_______。
fun(float x) { float y; y=3*x-4; return y; } A)int
B)不确定
C)void
D)float
35
二、 读程序写结果 1. fun1(int a,int b) { int c;
a+=a; b+=b; c=fun2(a,b); return c*c; }
fun2(int a,int b) { int c; c=a*b%3; return c; } main()
{ int x=11,y=19;
printf(\ }
2. int x;
main() { x=5; cude();
printf(\ } cude()
{ x=x*x*x; }
3. #include
long fun(int n)
{ long s;
if(n==1||n==2)
s=2; else
s=n+fun(n-1); return s; }
36
main()
}
{ printf(\4. main() { int i;
for(i=0;i<2;i++) add();
} add() { int x=0;
static int y=0; printf(\x++; y=y+2;
}
5. main()
{ int k=4,m=1,p;
p=func(k,m); printf(\p=func(k,m); printf(\
}
func(int a,int b) { static int m=0,i=2;
i+=m+1; m=i+a+b; return m;
}
6. int t(int x,int y,int cp,int dp)
{ cp=x*x+y*y; dp=x*x-y*y; }
main()
{ int a=4,b=3,c=5,d=6; t(a,b,c,d);
printf("%d%d\\n",c,d);
37
}
7. fun(int x,int y,int z)
{z=x*x+y*y;} main()
{ int a=31;
fun(5,2,a); printf("%d",a); }
8. int a,b;
void fun()
{ a=100;b=200; } main()
{ int a=5,b=7; fun();
printf("%d%d\n",a,b);}
9. int x=3;
main() {int i;
for(i=1;i {static int x=1; x*=x+l; printf("%d",x); } 10. int func(int a,intb) { return(a+b); } main() {int x=2,y=5,z=8,r; r=func(func(x,y),z); printf("%d\n",r); } 11. long fib(int n) 38 { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%ld\\n",fib(3)};} 三、 填空题 1. 编写一个验证正整数M是否为素数的函数,若M是素数则把1送到T中,否则零送到T 中。在主函数中读入N个正整数,每读入一个则调用函数判断它是否为素数,在主函数中将T的值累加到另一个变量中。用此方法可求出N个数中素数的个数。请填空完成上述功能的程序。 #include for (i=2; (1) ;i++) if (m % i==0) pp=0; if (m==1) (2) return(pp); } main() { int a[20],i,sum=0; for(i=0;i<10;i++) { scanf(\ sum= (3) } printf(\ } 2. 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个 数,在主函数中输入字符串以及输出上述的结果。请填空完成上述功能的程序。 #include void fltj(char str[],int a[]) 39