单选题设有宏定义:#define IsDIV(k,n) ((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是( )。A 判断m是否能被5或7整除B 判断m是否能被5和7整除C 判断m被5或7整除后是否余1D 判断m被5和7整除后是否都余1

题目
单选题
设有宏定义:#define IsDIV(k,n) ((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是( )。
A

判断m是否能被5或7整除

B

判断m是否能被5和7整除

C

判断m被5或7整除后是否余1

D

判断m被5和7整除后是否都余1


相似考题
参考答案和解析
正确答案: B
解析:
IsDIV(m,5)&&IsDIV(m,7)为真,即表达式((m%5==1)?1∶0)结果为1,且表达式((m%7==1)?1∶0)结果也为1,也就是m%5,m%7都等于1,所以表达的是,判断m被5和7整除是否都余1。答案选择D选项。
更多“设有宏定义:#define IsDIV(k,n) ((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsD”相关问题
  • 第1题:

    (38)设有宏定义:#include IsDIV(k,n) ((k%n==1)?1:0且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&& IsDIV(m,7)为真时所要表达的是

    A)判断m是否能被5或者7整除

    B)判断m是否能被5和7整除

    C)判断m被5或者7整除是否余1

    D)判断m被5和7整除是否余1


    正确答案:D

  • 第2题:

    设有如下宏定义

    #define MYSWAP(z,x,y)

    {z=x;x=y;y=z;}

    以下程序段通过宏调用实现变量a,b内容交换,请填空。

    float a=5,b=16,c;

    MYSWAP(( ),a,b);


    正确答案:
    c

  • 第3题:

    设有以下宏定义:#define N 3#define Y(n) ((N+1)*n)则执行以下语句后,z的值为______。z=2 * (N+Y(5+1));

    A.出错

    B.42

    C.48

    D.54


    正确答案:C

  • 第4题:

    设有如下函数定义: int fun(int k) {if(k<1)return 0; else if(k= =l)return l; else return fun(k-1)+1: } 若执行调用语句:“n=fun(3);”,则函数fun总共被诃用的次数是( )。

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    此题考查简单的循环,当执行n=fun(3),则函数fun执行3次。

  • 第5题:

    有以下程序段,且变量已正确定义和赋值

    for(s=1.0, k=1; k<=; k++) s=s+1.0/(k*(k+1));

    printf("s=%f\n\n", s);

    请填空,使下面程序段的功能与之完全相同

    s=1.0; k=1;

    while(【 】) { s=s+1.0/(k*(k+1));【 】; }

    prinff("s=%f\n'n", s);


    正确答案:(10)k=n  或  n>=k  (11)K++
    (10)k=n  或  n>=k  (11)K++ 解析:本题考查的知识点是:while语句和for语句。
     while语句和for语句的作用都是循环控制语句的执行,两者之间是可以互相转换的。将while(EXP)转换为for语句可以写成for(;EXP;);将for(EXP1;EXP2;EXP3)转换为while语句可以写成:EXP1;while(EXP2){… EXP3;}。故本题的两个空分别应填写for语句的第2和第3个表达式。即K=n或n>=K和k++。当然也可写成与之等价的其他形式。

  • 第6题:

    设有以下宏定义: #define N 3 #define Y(n) ((N+1)*n)则执行以下语句后,z的值为______。 z=2*(N+Y(3+2));

    A.出错

    B.34

    C.46

    D.54


    正确答案:B
    解析:注意C语言中宏定义是先替换再参与运算,因此:z=2*(N+(N+1)*3+2)=2*(3+(3+1)*3+2)=34。

  • 第7题:

    设有以下宏定义: # define N 3 # defi0ne Y(n)(N+1) * n) 则执行语句“z=2*(N+Y(5+1));”后,z的值为 ( )

    A.出错

    B.42

    C.48

    D.54


    正确答案:C

  • 第8题:

    有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用的语句是A.fun(int y,double m); B.k=fun(10,12.5); C.fun(x,n); D.void fun(n,x);


    正确答案:C
    选项A中,fun(int y,double m);中变量y和m前不需要类型说明;因为函数fun(10,12.5)没有返回值,所以选项B错误;调用函数fun时,不需要在函数前面加上void,所以选项D错误。故本题的正确答案是选项C。

  • 第9题:

    设有宏定义:

    define IsDIV(k,n)((k%1"1==1)?1:O)且变量m已正确定义并赋值,则宏调用:

    IsDIV(m,5)&&;IsDIV(m,7)为真时所要表达的是( )。

    A.判断m是否能被5和7整除

    B.判断m被5和7整除是否都余l

    C.判断m被5或者7整除是否余1

    D.判断m是否能被5或者7整除


    正确答案:B
    本题考查逻辑运算符的相关概念,逻辑与若要为真,那么两边都要为真,即m都能被5和7整除都余1,所以选项B正确。

  • 第10题:

    (32)设有如下函数定义

    int fun(int k)

    { if (k<1) return 0;

    else if(k==1) return 1;

    else return fun(k-1)+1;

    }

    若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是

    A)2

    B)3

    C)4

    D)5


    正确答案:B

  • 第11题:

    若有以下宏定义:  #define  N  2  #define  Y(n)  ((N+1)*n)  则执行赋值语句z=2*(N+Y(5));后,变量z的值是多少?


    正确答案:变量z的值是34

  • 第12题:

    问答题
    若有以下宏定义:  #define  N  2  #define  Y(n)  ((N+1)*n)  则执行赋值语句z=2*(N+Y(5));后,变量z的值是多少?

    正确答案: 变量z的值是34
    解析: 暂无解析

  • 第13题:

    已知#define M 2;的宏定义,执行语句k=M*5;后,k的值是

    A.10

    B.5

    C.2

    D.以上答案都不对


    正确答案:D

  • 第14题:

    设有如下宏定义

    define MYSWAP(z,x,y){z=x;x=Y;Y=z;}

    以下程序段通过宏调用实现变量a、b内容的交换,请填空。

    float a=5,b=16,c;

    MYSWAP( 【 】,a,b) ;


    正确答案:c
    c 解析:本题关键在考生是不是了解宏的基本运用,在使用宏的时候明显少了—个实参。在定义宏的时候变量z是用来做中间变量的,题目中缺的变量就是一个中间变量c。

  • 第15题:

    已知下列函数定义 setw(int *b,int m,int n,int dat) { int k; for(k=0;k<m*n,k++) { *b=dat;b++;} } 则调用此函数的正确写法是(假设变量a的说明为int a[50])( )

    A.setw(*a,5,8,1);

    B.setw(&a,5,8,1);

    C.setw((int*)a,5,8,1);

    D.setw(a,5,8,1);


    正确答案:D

  • 第16题:

    有以下函数定义: void fun(int n, double x) {……} 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。

    A.fun(int y,double m);

    B.k=fun(10,12.5);

    C.fun(x,n);

    D.void fun(n,x);


    正确答案:C
    解析:本题考查函数调用。函数调用时,实参前不需加类型说明,选项A)错误;题目中的函数没有返回值,所以选项B)错误;函数调用前不需要加类型说明,选项D)错误。

  • 第17题:

    若变量已正确定义并赋值,对库函数错误调用的是( )

    A.k=scanf("%d%d",&i,&j);

    B.printf("\\%d\\n",k);

    C.getchar(ch);

    D.putchar(ch);


    正确答案:C

  • 第18题:

    设有宏定义“#definelsDIV(k,n)((k%n==1?1:0)”且变量m已正确定义并赋值,则宏调用“lsDIV(m,5)&&IsDIV(m,7)”为真时所要表达的是( )。

    A.判断m是否能被5或者7整除

    B.判断m是甭能被5和7整除

    C.判断m被5或者7整除是否余1

    D.判断m被5和7整除是否都余l


    正确答案:D
    D。【解析】本题考查宏定义,宏定义IsDIV(k,n)的意思是如果k对n.求模的余数为1,其值等于1,否则其值等于0。本题中宏调用表达式是两个宏调用之间的逻辑与运算,所以选项D正确。

  • 第19题:

    已知下列函数定义: fun(int%,int c,int n,int datA){int k; for(k=0;k<m*n;k++) {*b=data; b++;} } 则调用此函数的正确写法是(假设变量a的说明为int a[50])( )。

    A.fun(*a,4,5,1);

    B.fun(&a,4,5,1);

    C.fun((int*)a,4,5,1);

    D.fun(a,4,5,1);


    正确答案:D

  • 第20题:

    设有如下函数定义

    int fun(int k)

    {if(k<1) return 0:

    else if(k==1) return 1:

    else return fun(k一1)+1:

    }

    若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    解析:函数fun总共被调用了3次,即fun(3)、fun(2)和fun(13)

  • 第21题:

    设有宏定义:define MY(x,y) x*y,则宏调用MY(2+3,5)的结果为25。 ()

    此题为判断题(对,错)。


    正确答案:错误

  • 第22题:

    对于函数定义:  void FUN(int n, double x)  {  … }  若以下选项中的变量都已定义并赋值,则对函数FUN的正确调用的语句是()。 

    • A、k=FUN(x,n);
    • B、void FUN(n,x);
    • C、FUN(int y,double m);
    • D、FUN(10,12.5);

    正确答案:D

  • 第23题:

    有以下函数定义voidfun(intn){…};若以下选项中的变量都已经正确定义且赋值则对函数fun的正确调用语句是()

    • A、fun(inty);
    • B、k=fun(10);
    • C、fun(x);
    • D、voidfun(n);

    正确答案:C