Define宏语句和inline函数有什么区别?
第1题:
若有以下宏定义:
#define N 2
#define Y(n)((N+1)*n)
则执行语句z=2*(N+Y(5));后的结果是( )。
A.语句有错误
B.z=34
C.z=70
D.z无定值
本题考查宏定义的功能,可以把它看成一个函数,直接代人参数,可计算出结果为34, 故选B。
第2题:
#define能作简单的替代,用宏来替代计算多项式5*x*x+5*+5的值的函数f,正确的宏定义语句为( )。
A.#definef(x)5*x*x+5*+5
B.#definef5*x*x+5*x+5
C.#definef(a) (5*a*a+5*a+5)
D.#define5*x*x+5*+5f(x)
第3题:
下列有关内联函数的叙述中,正确的是______。
A.内联函数在调用时发生控制转移
B.内联函数必须通过关键字inline 来定义
C.内联函数是通过编译器来实现的
D.内联函数体的最后一条语句必须是rennin 语句
第4题:
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝
第5题:
设有以下宏定义:#define N 3#define Y(n) ((N+1)*n)则执行以下语句后,z的值为______。z=2 * (N+Y(5+1));
A.出错
B.42
C.48
D.54
第6题:
下列有关内联函数的叙述中,正确的是( )。
A.内联函数在调用时发生控制转移
B.内联函数必须通过关键字inline来定义
C.内联函数是通过编译器来实现的
D.内联函数函数体的最后一条语句必须是return语句
第7题:
当需要将一个函数bool isnumber(char c)声明为内联函数时,则此内联函数的函数原型为( )。
A.enum bool isnumber(char c);
B.define bool isnumber(char c);
C.inline bool isnumber(char c);
D.extem bool isnumber(char c);
第8题:
( 11 )下列有关内联函数的叙述中,正确的是
A )内联函数在调用时发生控制转移
B )内联函数必须通过关键字 inline 来定义
C )内联函数是通过编译器来实现的
D )内联函数函数体的最后一条语句必须是 return 语句
第9题:
#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为( )。
A.#definef(x)5*x*x+5*x+5
B.#definef5*x*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
第10题:
以下说法中,正确的是______。
A.#define和printf都是C语句
B.#define是C语句,而printf不是
C.printf是C语句,但#define不是
D.#define和printf都不是C语句