更多“若变量已正确定义,在if(W)printf("%d",k);中,以下不可替代W的是(  )。”相关问题
  • 第1题:

    以下程序的输出结果是 ( ) main( ) { int w=5;fun(w);printf("\n");} fun (int k) { if (k>0) fun (k-1); printf("%d",k); }

    A.5 4 3 2 1

    B.0 1 2 3 4 5

    C.1 2 3 4 5

    D.5 4 3 2 1 0


    正确答案:B

  • 第2题:

    下列程序段中的变量已正确定义: for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*&qu

    下列程序段中的变量已正确定义:

    for(i=0;i<4;i++,i++)

    for(k=1;k<3;k++);printf("*");

    程序段的输出结果是( )。

    A.********

    B.****

    C.**

    D.*


    正确答案:D
    D。【解析】本题中第二个for循环语句的后面有一个分号,所以两个for循环语句的执行语句为空。当两个for循环语句执行完后,再执行printf语句输出一个星号。所以正确答案为选项D。

  • 第3题:

    以下程序的输出结果是( )。 main { char w[][10]={"ABCD","EFGH","IJKL"," MNOP"),K; for(k=1;k<3;k++)printf("%s\n",w[k]);

    A.ABCD FGH KL

    B.ABCD EFG U

    C.EFG JK O

    D.EFGH UKL


    正确答案:D
    当k=1时,循环成立,输出w[l]的数组即EFGH,接着执行k++后k为2;当k=2时,循环成立,输出w[2]的数组即IJKL,接着执行k++后,k为3;当k=3时,循环不成立,退出。

  • 第4题:

    若有以下程序段,w和k都是整型变量。w=k;LB:if(w==0)goto LE; w--; printf("*"); goto LB;LE: M则不能与上面程序段等价的循环语句是A.for(w=k;w!=0;w--)printf("*");B.w=k;<CR>while(w--!=0)printf("*");w++;C.w=k;<CR>do { w--;printf("*");}while(w!=0);D.for(w=k;w;--w)printf("*");


    正确答案:C
        本题主要考查几种循环结构的比较。在题目中,给出了一段程序,程序首先对整型变量w赋值;然后定义了一段程序LB,在该段程序中,首先判断变量w是否为零,如果是,则用GOTO语句跳出该段程序至LE,如果不为零,则w自减并输出*,然后用GOTO语句跳到该程序段开始的地方执行。该段程序其实相当于一个循环,循环的结束条件是变量w的值等于零。
        在选项A中,我们可以看到循环结束的条件是变量w的值等于零,而初值也一样,与题目中的程序段意思完全一致。
        在选项B中,我们可以看出循环结束的条件是变量w的值等于零,而程序也是先判断,再执行后面的语句,与原程序段描述的意思一致。
        在选项C中,do-while循环是直到型循环,即先执行一次循环体中的语句后,再判断循环条件,当w的值已经等于0时,循环依然要运行一次,与原程序段描述的内容不一致,是题目的答案。
        在选项D中,循环所描述的内容也与原程序段一致。
        提醒:在完成这类题时,首先需要弄明白原程序段的作用,如果看不懂,则可以比较选项中与其他选项不同的结果。

  • 第5题:

    有以下定义语句

    double a, b; intw; longc;

    若各变量已正确赋值,则下列选项中正确的表达式是

    A.a=a+b=b++

    B.w%(int)a+b)

    C.(c+w)%(int)a

    D.w=a==b;


    正确答案:D
    解析:本题中仅选项D为合法的赋值语句,可以解释为w=(a= =b),即把逻辑运算a = =b的结果(真或假,即1或0)赋给整数w。

  • 第6题:

    若变量已正确定义,在if(W)printf(”%d、n”,k);中,以下不可替代w的是( )。

    A.ab+1:

    B.ch=getchar()

    C.a==b+c

    D.a++


    正确答案:A
    选项A)是非法的表达式,C语言中没有“<>”运算符。

  • 第7题:

    以下程序段中的变量已正确定义: for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf("*"); 程序段的输出结果是______。

    A.******

    B.****

    C.**

    D.*


    正确答案:D
    解析: 本题考杏for循环语句中嵌套for循环语句的情况。由于第一个for语句没有具体的执行语句,故当i=0时,k=1时,执行一次语句 printf(“*”);,程序便会跳出整个循环,故运行结果为一个星号。

  • 第8题:

    若有以下程序段,w和k都是整型变量:

    w=k:

    LB:if(w==0)go to LE;

    W--:

    printf("*")

    goto LB;

    LE;

    则不能与上面程序段等价的循环语句是( )。

    A.for(w=k;w!=0;w--)printf("*");

    B.for(w=k;w;--w)printf("*");

    C.w=k; while(w--!=0)printf("*");

    D.w=k;w++; do{w--;printf("*");}while(w!=0);


    正确答案:C
    当循环结束时,w的值应为-1,而其他选项中w的值为0,故选择C选项。

  • 第9题:

    下列程序段中的变量已正确定义: for(i=0;i<4;i++,i++) for(k=1;k<3;k++);printf("*"); 程序段的输出结果是( )。

    A.********

    B.****

    C.**

    D.*


    正确答案:D
    D。【解析】本题中第二个for循环语句的后面有一个分号,所以两个for循环语句的执行语句为空。当两个for循环语句执行完后,再执行printf语句输出一个星号。所以正确答案为选项D。

  • 第10题:

    有定义语句doubld a,b;int w;long c;若各变量已正确赋值,则下列选项中正确的表达式是( )。

    A.a=a+b=b++

    B.w%((int) a+b)

    C.(c+w)%(int)a

    D.w=a==b;


    正确答案:C
    解析:赋值运算符的左边只能是变量,不能是表达式,选项A)错误;由于“%”两边表达式值的类型必须为整型,所以选项B)错误;题目要求的是正确的表达式,而表达式后面不能有“;”,选项D)错误。

  • 第11题:

    以下程序的输出结果是()。includeint fan(int);main(){int w=5; fun(w);printf("\n");}

    以下程序的输出结果是( )。 #include <stdio.h> int fan(int); main() { int w=5; fun(w); printf("\n"); } fun(int k) { if(k>0) fun(k-1); printf("%d",k); }

    A.5 4 3 2 1

    B.0 1 2 3 4 5

    C.1 2 3 4 5

    D.5 4 3 2 1 0


    正确答案:B
    解析:本题考查函数的递归调用。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0),其中fun(5)是main函数调用的,其余是在fun函数中调用的。

  • 第12题:

    单选题
    以下程序段中的变量已正确定义for( i=0; i<4; i++,i++ ) for( k=1; k<3; k++ ); printf(* );该程序段的输出结果是(  )。
    A

    *******

    B

    ****

    C

    **

    D

    *


    正确答案: C
    解析:
    for语句在没有"{}"说明时仅仅是跟随其后的第一条语句,即另外一个for语句,第二个for循环有个";"结束,所以整个双重循环将被视为空语句。然后执行下一个顺序语句,即输出语句,只输出一个"*"。答案选择D选项。

  • 第13题:

    若变量已正确定义,在语句“if(W)printf("%d\n",k);”中,以下不可替代w的是( )。

    A.ab+c

    B.ch=getchar

    C.a= =b+C

    D.a++


    正确答案:A
    符号<>不是C语言中的运算符,所以不能替代。

  • 第14题:

    有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( )。

    A.a=a+b=b++

    B.w%((int)a+b)

    C.(c+w)%(int)a

    D.w=a==b


    正确答案:C
    解析:选项A不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=a+(b=b++)才正确,故选项A不正确。选项B中运算符%的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确。a,b都为double型,应当避免使用a==b这样的关系表达式,因为通常存放在内存中的实型数据是有误差的,因此不可能精确相等,这将导致关系表达式a==b总为0。所以,4个选项中选项C符合题意。

  • 第15题:

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

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

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

    C.getchar(ch);

    D.putchar(ch);


    正确答案:C

  • 第16题:

    以下程序段中的变量已正确定义 for(=0;i<4;i++,i++) for(k=1;k<3;k++);printf("*") 程序段的输出结果是______。

    A.********

    B.****

    C.**

    D.*


    正确答案:D
    解析:本题考查的是for循环语句的使用以及分号“;”的使用,第一层for循环由于i两次自增运算故执行两次,每执行一次第一层for循环,第二条for循环语句执行三次,但由于语句后面加了分号,因此这一条空循环语句,结果当第一层的for语句执行完,跳出整个循环语句后,执行printf语句,因此执行一次printf语句,选项D是正确的。

  • 第17题:

    若变量已正确定义,有以下程序段 i—o; do printf("%d,",i);while(i++); printf("%d",i) 其输出结果是( )。

    A.0,0

    B.0,1

    C.1,1

    D.程序进入无限循环


    正确答案:B
    本题中,变量i的初始值等于0,执行循环体中的语句后,输出i的值为0。while后面括号中表达式i++的值为0,循环结束。此时变量i自加1,所以再次“1”。

  • 第18题:

    若变量已正确定义,在if(W)埘ntf(”%d\n”,k);中,以下不可替代w的是( )。

    A.a<>b+C

    B.ch=getchar

    C.a==b+C

    D.a++


    正确答案:A
    选项A是非法的表达式,C语言中没有<>运算符。

  • 第19题:

    若变量已正确定义,则以下语句的输出结果是______。 s=32;s^=32;printf("%d",s);

    A.-1

    B.0

    C.1

    D.32


    正确答案:B
    解析: 为按二进制异或运算符,变量s与其相等的数值异或的结果为0。

  • 第20题:

    若变量已正确定义,在语句“if(W)printf("%d\n",k);”中,以下不可替代w的是( )。 A.a<>b+cS

    若变量已正确定义,在语句“if(W)printf("%d\n",k);”中,以下不可替代w的是( )。

    A.a<>b+c

    B.ch=getchar

    C.a= =b+C

    D.a++


    正确答案:A
    符号<>不是C语言中的运算符,所以不能替代。

  • 第21题:

    以下程序的输出结果是______。

    A.54321

    B.12345

    C.1 2 3 4 5

    D.5 4 3 2 1 0 main() { int w=5;fun(w);printf("\n");} fun (int k) { if(k>0) fun(k-1); printf("%d"",k);}


    正确答案:B

  • 第22题:

    .若有以下程序段,W和k都是整型变量,则不能与该程序段等价的循环语句是( )

    W= k;

    LB: if(w==0) gotO LE;

    w - -;

    printf("*");

    goto LB;

    LE:

    A. for(w=k;w!=0;W--)printf("*");

    B.w= k; While(W--!=0) Prinif(”* ”);

    C.w= k; do{w--; prinif(“*”); } while( W!= 0);

    D.for(w=k;W;--W) printf("*");


    正确答案:C
    问题所给出的程序段用goto语句构造一个循环控制结构,该循环结构的初值是让变量W的值为k的值,循环结束条件是W的情等于0,循环体是让变量W的值减1,并输出一个字符*。上述循环控制过程用for循环可描述如下:</P>
    for=(w=k;W!=0;W--)printh("*");
    或写成:
    for(w=k;w;--w)printf("*");
    若用while语句,可描述如下:
    W=k;
    while(w--!=0)printf("*");
    w++;/*在w等于0时,也执行了一次w--,这里是对w最后减1的补尝*/
    或更直观地写成:
    W=k;
    while(w!=0){w--;Printf("*");}
    若用do-while语句,可描述如下:
    W=k;
    if(W)
    do{
    w--;prinif("*");
    }while(w);
    若写成:
    W=k;
    do{
    W--;printf("*");
    }while(w!=0);
    是不正确的,因为原代码当k的值为0时,不输出字符*,而上面的改写,当k的值为0时,将输出许许多多的字符*。所以解答应是C。

  • 第23题:

    若有类W说明class W{int a;public:voidfConst(int&)const;};,则函数fConst的正确定义是()

    • A、void W::fConst(int&k)const{k=a;}
    • B、void W::fConst(int&k)const{k=a++;}
    • C、void W::fConst(int&k)const{cin>>a;}
    • D、void W::fConst(int&k)const{a=k;}

    正确答案:A

  • 第24题:

    单选题
    若有类W说明class W{int a;public:voidfConst(int&)const;};,则函数fConst的正确定义是()
    A

    void W::fConst(int&k)const{k=a;}

    B

    void W::fConst(int&k)const{k=a++;}

    C

    void W::fConst(int&k)const{cin>>a;}

    D

    void W::fConst(int&k)const{a=k;}


    正确答案: C
    解析: 暂无解析