A) 12 B) 13 C) 14 D) 15 23.有如下程序 long fib(int n)
{ if(n>2) return(fib(n-1)+fib(n-2)); else return(2); }
main( )
{ printf(“%d\\n”,fib(3));}
该程序的输出结果是 。
A}2 B}4 C}6 D} 8 24.有以下程序
void f(int x,int y) { int t;
if(x main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf(\} 执行后输出的结果是 。 A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,5 26.有以下程序 main() { char s[]=\ printf(\} 执行后输出结果是 。 A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,6 28. 执行后输出的结果是 。 main() {int a=4,b=3,c=5,d,e,f; d=f1(a,b); d=f1(d,c); e=f2(a,b); e=f2(e,c); f=a+b+c-d-e; printf(\ } f1(int x, int y) {int z; z=(x>y)?x:y; return(z); } f2(int x, int y) {int z; z=(x A) 3,4,5 B) 5,3,4 C) 5,4,3 D)3,5,4 29.以下程序的输出结果是 。 #include { static int i = 0; int s =1; s += i; i++; return (s); } void main(void) { int i, a = 0; for (i=0; i<5; i++) a += f(); printf(“%d\\n”, a); } A) 1 B) 0 C) 非0的数 D) –1 31.以下所列的各函数首部中,正确的是 。 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) 36.以下函数值的类型是 。 fun ( float x ) { float y; y= 3*x-4; return y; } A) int B) 不确定 C) void D) float 38. 下面程序的输出结果是: 。 int m=13; int fun( int x, int y) { int m=3; return( x*y-m); } main( ) {int a=7,b=5; printf(“%d\\n”, fun(a,b)/m); } A)1 B)2 C)7 D)10 40. 以下程序的运行结果是: 。 main( ) { int a=2, i ; for(i=0;i<3;i++) printf(“M”,f(a) ) ; } f( int a) { int b=0,c=3; b++; c++; return(a+b+c); } A)7 10 13 B)7 7 7 C)7 9 11 D)7 8 9 三、程序填空题 1.下面程序的功能是利用函数调用求两整数的最大公约数和最小公倍数,请填空。 main( ) { int a, b ,c,d; scanf(“%d, %d”, &a, &b ) ; c = gongyue( a, b ) ; (1) ; printf(“gongyue=%d,gongbei=%d\\n”, c,d ) ; } gongyue( int num1, int num2 ) { int temp, x, y ; if (__ (2) __) { temp=num1; num1=num2 ; num2=temp ; } x=num1 ; y=num2 ; while(__ (3) _____) { temp=x%y ; x=y ; y = temp ; } return (y) ; } 3.以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示“WELL DONE!!”,否则显示计算后的值。已有函数调用语句Check(ponse,value);请填空。 viod Check ( int ponse, float value) { int val; val= (1) ; printf (“计算后的值: %d”, val); if (val= =ponse) printf(“\\n WELL DONE!! \\n”); else printf (“\\nSorry the correct answer is %d\\n”, val); } 4.以下程序的运行结果是输出如下图形。请填空。 * * * * * * * * * * * * * * * * * * * * * * * * * * # include { int j, k; for (j=0; j<=7-i; j++) printf (“ “); for (k=0; k< (1) ; k++) printf(“﹡”); printf(“\\n”); } main ( ) { int i; for( i=0; i<3; i++) (2) ; for( i=3; i>=0; i--) (3) ; } 5.函数fun的功能是:使字符串str按逆序存放。 void fun (char str[]) { char m; int i, j; for (i=0, j=strlen(str); i< (1) ; i++, j--) { m = str[i]; str[i] = (2) ; str[j-1] = m; } printf(\} 6.以下程序使用递归法求n!, 请填空。 float fac(int n) { float f; if(n<0) {printf(“n<0” data error); f=-1;} else if(n==0||n==1) f=1; else f=___ (1) ___; return( f ); } main( ) { int n; float y; printf(“input a integer number”); scanf(“%d”,&n); y=___ (2) ____; printf(“%d! = .0f”, n, y ); } 7. 以下程序可计算10名学生1门功课成绩的平均分,请填空。 float average( float array[10] ) { int i; float aver, sum=array[0]; for ( i=1; __ (1) ___;i++) sum+=___ (2) ___; aver=sum/10; return(aver); } main( ) { float score[10], aver ; int i ; printf(“\\ninput 10 scores:”); for(i=0; i<10;i++) scanf(“%f”,&score[i] ); aver =___ (3) ___; printf(“\\naverage score is %5.2f\\n”, aver); } 四、读程序写结果题 1.下面程序的运行结果是: 。 main( ) { int i=5; printf(“%d\\n”, sub(i) ) ; } sub ( int n ) { int a ;if ( n==1) a=1; else a=n+sub(n-1); return( a ) ; } 3. 下面程序的运行结果是: 。 main( ) { increment ( ); increment ( ); increment ( ); } increment ( ) { int x=0; x+=1; printf (“%d”, x); } 4.以下程序的运行结果是 。 int a=5; int b=7; main( ) { int a=4, b=5,c; c=plus (a,b); printf(“A+B=%d\\n”,c) ; } plus (int x, int y) { int z; z=x+y; return (z); } 5.以下程序的运行结果是 。 main( ) { increment ( ); increment ( ); increment ( ); } increment ( ) {static int x=0; x+=1; printf (“%d”, x); } 6.以下程序的输出结果是 。 void fun() { static int a=0; a+=2; printf(“%d”,a); } main() { int cc; for(cc=1;cc<4;cc++) fun() ; printf(“\\n”); } 7.以下程序的输出结果是 。 #include printf(\} void main(void) { int i; for (i=1; i<=3; i++) f( i ); } 8.以下程序的输出结果是 。 #include increment(); increment(); } void increment(void) { static int x = 8;