C语言函数习题:以下函数定义正确的是: ( a )A. double fun(int x, int y) B. double fun(int x; int y)C. double fun(int x, int y) ; D. double fun(int x , y) 2. C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是: ( b )地址传递; B. 单向值传递;C. 双向值传递; D. 由用户指定传递方式3. 以下关于C语言程序中函数的说法正确的是: ( b )A.函数的定义可以嵌套,但函数的调用不可以嵌套;B.函数的定义不可以嵌套,但函数的调用可以嵌套;C.函数的定义和调用均不可以嵌套;D.函数的定义和点用都可以嵌套。4. 下面程序的正确运行结果是: (d ) main( ) { int a=2, I; for(I=0;I<3;I++) printf(“%4d”,f(a) ); } f( int a) { int b=0; static int c=3; b++; c++; return (a+b+c); }A.7 7 7 B.7 10 13 C.7 9 11 D.7 8 95.下面程序的运行结果是:__15___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 ) ; }6. 下面程序的功能是利用函数调用求两整数的最大公约数,请填空。 main( ) { int a, b ,c; scanf(“%d, %d”, &a, &b ) ; c = gongyue( a, b ) ; printf(“%d\n”, c ) ; } gongyue( int num1, int num2 ) { int temp, x, y ; if (_num1<num2_____) { temp=num1; num1=num2 ; num2=temp ; } x=num1 ; y=num2 ; while(_x%y!=0______) { temp=a%b ; a =b ; b = temp ; } return ( a ) ; }备注:上面答案未必正确,有不同答案的请直接提出,并予以说明!特别是第5/6题,希望有高手讲解下!谢谢
第一题 C , 您的答案,A答案后面没有分号C语言一句话是以分号作为结束语的。 第二题 B 第三题 B 第四题 D static int c=3; 静态变量,只做一次初值赋值,即:第一次调用c=3 而B只是int ,并没有static,所以B的赋值没有改变 第五题 15 a=5+sub(4)=5+4+sub(3)=5+4+3+sub(2)=5+4+3+2+sub(1)=5+4+3+2+1=15 第六题 我不知道空在哪,但是我写了一个求最大公约数的,希望对你有所帮助 int f1(int a,int b) {int x; x=a>b?b:a; while (x>1 && (a%x!=0 || b%x!=0)) x--; return x; }