18. 有以下函数定义: int fun(,double a ,double b) { return a*b; }18. 有以下函数定义: int fun(,double a ,double b){ return a*b; } 若以下选项中所用变量都以正确定义并赋值,错误的函数调用时( ) A. if(f
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/31 07:44:59
18. 有以下函数定义: int fun(,double a ,double b) { return a*b; }18. 有以下函数定义: int fun(,double a ,double b){ return a*b; } 若以下选项中所用变量都以正确定义并赋值,错误的函数调用时( ) A. if(f
18. 有以下函数定义: int fun(,double a ,double b) { return a*b; }
18. 有以下函数定义:
int fun(,double a ,double b)
{ return a*b;
} 若以下选项中所用变量都以正确定义并赋值,错误的函数调用时( )
A. if(fun(x,y)){.} B. z=fun(fun(x,y),fun(x,y));
C. z=fun(fun(x,y)*x,y) ; D.fun(x,y);
答案是D,为什么?
24 .下列程序的输出结果是()
#include"stdio.h"
#define SUB(X,Y)(X)* Y
main( )
{int a=3,b=4;
printf ("%d\n",SUB(a++,b++));}
A.12 B.15 C.16 D. 20 答案为A,是怎么算的?
25.下列程序的输出结果是()
#include"stdio.h"
int fun(int x,int y)
{static int m=0,i=2;
i+=m+1;
m=i+x+y;
return m;}
main( )
{int j=4,m=1,k;
k=fun(j,m); printf ("%d,",k);
k=fun(j,m); printf ("%d\n",k);
答案为8和17,不知道17是怎么算出来的?
18. 有以下函数定义: int fun(,double a ,double b) { return a*b; }18. 有以下函数定义: int fun(,double a ,double b){ return a*b; } 若以下选项中所用变量都以正确定义并赋值,错误的函数调用时( ) A. if(f
首先说18题,这个函数是由返回值的,所以只有D不是赋值操作.24题:因为最后一句:
printf("%d/N",SUB(a++,b++));中的SUB不是函数而是预编译.它使SUB(a++,B++)在编译时变为:(a++)*b++,.所以这时的就是:3*45=12
25题:fun中的i,M为static变量,也就是静态变量,所以在函数Fun内是一直记录的,也就是知道程序结束才消失,而你主函数main中在第一次调用fun时结束时,fun中的i=3,m=8,所以这时返回值为8,而当第二次调用时fun内i=3,m=8.结束时:i=12,m=17.所以返回值为17