若有定义语句“int a,b;double X;”,则下列选项中没有错误的是( )。A.switch(X%2) { case 0:a++;break; case l:b++;break; default:a++;b++; }B.switch((int)x/2.O) { case 0:a++;break; case l:b++;break; default:a++;b++; }C.switch((int)X%2) { case 0:a++;break; case l:b++;break; default:a

题目

若有定义语句“int a,b;double X;”,则下列选项中没有错误的是( )。

A.switch(X%2) { case 0:a++;break; case l:b++;break; default:a++;b++; }

B.switch((int)x/2.O) { case 0:a++;break; case l:b++;break; default:a++;b++; }

C.switch((int)X%2) { case 0:a++;break; case l:b++;break; default:a++;b++; }

D.switch((int)(x)%2) { case 0.0:a++;break; case l.0:b++;break; default:a++;b++; }


相似考题
参考答案和解析
正确答案:C
C语言中,switch语句中的表达式和case表达式都不能是浮点类型。所以选C。
更多“若有定义语句“int a,b;double X;”,则下列选项中没有错误的是( )。 A.switch(X%2) { case 0:a++;br ”相关问题
  • 第1题:

    若有以下定义,则正确的swish语句是______。 float x;int a,b;

    A.switch(x) {case 1.0:printf("*\n"); case 2.0:printf("**\n"); }

    B.switch(x) {case 1,2:printf("*\n"); case 3:printf("**\n"); }

    C.switch(a+b) {case 1:printf("\n"); case 1+2:printf("**\n"); }

    D.switch(a+b); {case 1:printf("*\n"); case 2:printf("**\n"); }


    正确答案:C
    解析:switch后必须是整型或字符型的表达式,因此选项A、B错误;表达式的括号外没有分号,因此选项D错误。

  • 第2题:

    有如下程序:includemain(){int x=1,a=0,b=0; switch(x) {casc 0:b++;case 1:a++;case

    有如下程序: #include<stdio.h> main() { int x=1,a=0,b=0; switch(x) { casc 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b); } 该程序的输出结果是( )。

    A.a=2,b=1

    B.a=1,b=1

    C.a=1,b=0

    D.a=2,b=2


    正确答案:A
    解析:该程序的关键是要搞清楚程序执行的路线。由于x的值等于1,所以在switch语句中,程序从case1后面的语句开始执行。由于case1后面没有break语句,所以程序顺序执行case2后面的语句。程序共执行了三条语句:a++;a++;b++;所以,变量a和b最后的值分别为2和l。选项A)正确。

  • 第3题:

    若有以下函数首部: int fun(double x[10],int *n) 则下面针对此函数的函数声明语句中正确的是( )。

    A.int fun(double x, int *n);

    B.int fun(double, int);

    C.int fun(double *x, int n);

    D.int fun(double*, int*);


    正确答案:D
    解析:本题中的fun函数有两个参数,一个类型是double型一维数组,另—个是int型指针。而在C语言中,一维数组用作函数参数和该数组元素的指针类型是等价的。所以本题的正确答案是选项D。

  • 第4题:

    有下列程序:includemain(){int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0

    有下列程序: #include <stdio.h> main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++;break; case 1:b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,B) ; } 程序的运行结果是( )。

    A.a=1,b=0

    B.a=2,b=2

    C.a=1,b=1

    D.a=2,b=1


    正确答案:D
    解析:本题考查的是用switch语句实现多分支选择结构,首先进入第一个switch(x)判断,进入case 1中进行嵌套判断,如果switch(y)也成立,a自加1,遇到break,退出嵌套,接着执行case 2,a自加为2,b自加为1,遇到break,结束循环,此时a=2,b=1,故选项D)正确.

  • 第5题:

    下列程序的输出结果是______。main(){ int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++; case 2: a++;b++; } printf("a=%d,b=%d\n",a,b);}

    A.a=2,b=1

    B.a=1,b=1

    C.a=1,b=0

    D.a=2,b=2


    正确答案:A

  • 第6题:

    若有以下定义,则正确的switch语句是______。float x;int a,b;

    A.switch(x) { case 1.0:printf("*\n"); csse 2.0:printf("**\n"); }

    B.switch(x) { case 1,2:printf("*\n"); case 3:printf("**\n"); }

    C.switch(a+b) { case 1:printf("\n"); case 1+2:printf("**\n"); }

    D.switch(a+b); { case 1:printf("*\n"); case 2:printf("**\n"); }


    正确答案:C

  • 第7题:

    以下选项中与iF(a==1)a=B;elsea++;语句功能不同的sWish语句是

    A.sWitch(a){case1:a=B;Break; deFault:a++;}

    B.sWitch(a==1){case0:a=B;Break; case1:a++;}

    C.sWitch(a){DeFault:a++;Break; case1:a=B;}

    D.sWitch(a==1){case1:a=B;Break; case0:a++;}


    正确答案:B
    解析:switch(a==1)语句中,若a等于1,则a==1为"真",则应该进行a=b的操作,故选项B错误。

  • 第8题:

    若有定义语句:“int x=10;”,则表达式x-=x+x的值为( )。 A.-20B.-l0C.0

    若有定义语句:“int x=10;”,则表达式x-=x+x的值为( )。

    A.-20

    B.-l0

    C.0

    D.10


    正确答案:B
    表达式x-=x+X可以写成x=x-(x+x),所以X的值为-l0。

  • 第9题:

    若有定义:“double a=22;int i=0,k=18;”,则不符合C语言规定的赋值语句是( )。A.a=a++,i++;SXB

    若有定义:“double a=22;int i=0,k=18;”,则不符合C语言规定的赋值语句是( )。

    A.a=a++,i++;

    B.i=(a+k)<=(i+k);

    C.i=a%11;

    D.i=!a;


    正确答案:D

  • 第10题:

    若有定义语句“int x,*p=&x,**ppx=&px;”,则下列表达式中错误的是( )

    A.x=*px

    B.x=**ppx

    C.px=&ppx

    D.*ppx=&x


    正确答案:C
    分析备选答案A:“*px”,就是x,所以该表达式为“x=x”,是正确的,不符合题意分析备选答案B:"**ppx",就是"*(*ppx)=*px=x",所以该表达式为"X=X",是正确的,不符合题意.分析备选答案C:px是一级指针变量,其中只能存放变量或数组元素的地址,不能存放其他一级指针变量或二级指针变量的地址,而"&ppx"是二级指针变量ppx的地址,所以该表达式是错误的,本题答案应选C.至于备选答案D:"*ppx"就是px,将变量x的地址赋予px,当然是正确的。

  • 第11题:

    下列程序的输出结果是(). main( ) { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf("a=%d,b=%d/n",a,b); }

    • A、a=1,b=0
    • B、a=2,b=1
    • C、a=1,b=1
    • D、a=2,b=2

    正确答案:B

  • 第12题:

    单选题
    若有定义语句int a,b;double x;则下列选项中没有错误的是(  )。
    A



    switch(x%2)
    {
     case 0:a++;break;
     case 1:b++;break;
     default:a++;b++;
    }

    B



    switch((int)x/2.0)
    {
     case 0:a++;break;
     case 1:b++;break;
     default:a++;b++;
    }

    C



    switch((int)x%2)
    {
     case 0:a++;break;
     case 1:b++;break;
     default:a++;b++;
    }

    D



    switch((int)(x)%2)
    {
     case 0.0:a++;break;
     case 1.0:b++;break;
     default:a++;b++;
    }


    正确答案: D
    解析:
    switch语句中,表达式的类型应与case语句后的常量类型保持一致,并且switch的判断条件只能为整型或字符型,case后面为常量表达式。A项,x%2得到的是浮点型数据,而case语句后的常量是整型数据,类型不一致;B项,(int)x/2.0得到的也是浮点型数据,类型不一致;D项,(int)x%2.0得到的是整型数据,而case语句后的常量是浮点型数据,类型也不一致。答案选择C选项。

  • 第13题:

    若有以下定义:float x;int a,b; 则错误的switch语句是________。

    A. switch(x){case 1.0:printf("*\n"); case 2.0:printf("*\n"); }

    B. switch(a){case 1:printf("*\n");case 2:printf("*\n"); }

    C. switch(a+b) {case 1:printf("*\n"); case 1+2:printf("*\n"); }

    D. switch(a+b);{case 1:printf("*\n");case 2:printf("*\n"); }


    参考答案:D

  • 第14题:

    有如下程序:includevoid main(){int x=1,a=0,b=0;switch (x){Case 0: b++;Case 1:

    有如下程序:#include<iostream.h>void main(){int x=1,a=0,b=0;switch (x){Case 0: b++;Case 1: a++;Case 2: a++; b++;}cout<<"a="<<a<<","<<"b="<< b;}该程序的输出结果是( )。

    A.a=2,b=1

    B.a=1,b=1

    C.a=1,b=0

    D.a=2,b=2


    正确答案:A

  • 第15题:

    若有以下变量和函数说明:includecharCh='*';void sub(int x,int y,char ch,double*

    若有以下变量和函数说明: #include<iostream.h> charCh='*'; void sub(int x,int y,char ch,double*Z) { switch(ch) { case'+':*Z=x+y;break; case'-':*Z=x-y;break: case'*':*Z=x*y;break; case'/':*z=x/y;break: } } 以下合法的函数调用语句是( )。

    A.sub(10,20,Ch,y);

    B.sub(1.2+3,2*2,'+',&Z);

    C.sub(sub(1,2,'+',&y),sub(3,4'+',&x),'-',&y);

    D.sub(a,b,&x,ch);


    正确答案:B

  • 第16题:

    若有以下函数首部 int fun(double x[lO],int *n) 则下面针对此函数的函数声明语句中正确的是______。

    A.int fun(double x, int *n);

    B.int fun(double, int);

    C.int fun(double *x, int n);

    D.iht fun(double*,int*);


    正确答案:D
    解析:函数声明可以照写已定义的函数的首部,再加一个号就成为了对函数的声明,在函数声明中也可以不写形参名,而只写形参的类型,但要保证与函数首部写法上的—致,即函数类型、函数名、参数个数、参数类型和参数顺序相同。字符数组可用指针来表示,所以选顶D正确。

  • 第17题:

    以下程序的输出结果是main() { int x=l,a=2,b=3; switch(x) { case 0:b++; case 1:a++;break; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b); }


    正确答案:

    a=3,b=3


    在本题中,程序首先定于了三个整型变量x、a和b,其初值分别为1、2、3,然后执行switch选择语句,由于变量x的值为1,因此,执行case 1结构,这个结构中首先执行a++,即将变量a的值加1,然后执行break语句,执行此语句结束switch。此时,变量b的值没有发生变化。然后程序执行输出语句,根据输出语句的输出格式,最后程序的输出结果是a=3,b=3。

  • 第18题:

    下列程序的输出结果是

    main( )

    {int x=1,a=0,b=0;

    switch(x){

    case 0:b++;

    case 1:a++;

    case 2:a++;b++;

    }

    cout<<"a="<<a<<"b="<<b<<endl;

    }

    A.a=2 b=1

    B.a=1 b=1

    C.a=1 b=0

    D.a=2 b=2


    正确答案:A
    解析:本题主要考查switch语句中,break语句的作用。每个case语句后面如果没有break语句,则程序的执行流程将发生变化,即顺序执行各个case语句。这种情况一般不符合程序员的设计思路,但也可以用这种特性完成特殊控制。

  • 第19题:

    若有定义float x=1.5;int a=1,b=3,c=2;,则正确的switch语句是

    A.swimh(x) {case 1.0:printf("*\n"); case 2.0:printf("**\n");}

    B.switch((int)x); {case 1:printf("*\n"); case 2:printf("**\n");}

    C.switch(a+

    D. {case 1:pfintf("*\n"); case 2+1:pfintf("**\n");}switch(a-I-{case 1:pfintf("*\n"); case c:printf("**\n");}


    正确答案:C
    解析: C语言中,switch语句专用于实现多分支结构程序,其特点是各分支清晰且直观。switch后面括号中可以是任何表达式,取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量,且类型必须是整型、字符型或枚举型,各常量表达式各不相同。

  • 第20题:

    若有定义语句int a,b;double x;则下列选项中没有错误的是( )。

    A.switch(x%2) {case O:a++;break; case 1:b++;break; default:a++;b++; }

    B.switch((int)x/2.0) {case O:a++;break; case 1:b++;break; default:a++;b++; }

    C.switch((int)x%2) {case O:a++;break; case 1:b++;break; default:a++;b++; }

    D.switch((int)(x)%2) {case 0.O:a++;break; case 1.0:b++;break; default:a++;b++; }


    正确答案:C
    解析:C语言中switch语句中的表达式和case表达式都不能是浮点类型。所以选c。

  • 第21题:

    若定义:float x;int a,b;,则正确的switch语句是( )。

    A.switch(x) { case1.0:cout<<"*\n"; case2.0:cout<<"**\n";

    B.switch(x) { case 1.2:cout<<"*\n"; case 3:cout<<"**\n"; }

    C.switch(a+b) { case 1.0:cout<<"*\n"; case 1+2:cout<<"**\n ";

    D.switch(a+b) { case 1:cout<<"*\n"; case 2:cout<<"**\n";


    正确答案:D

  • 第22题:

    若有定义:float x=1.5;int a=1,b=3,c=2; 则正确的switch语句是( )。

    A.switch(x) { case 1.0: printf("*\n"); case 2.0: printf(" * * \n" );

    B.switch((iht)x); { case 1: printf(" * \n" ); case 2: printf(" * * \n" ); }

    C.switch(a +b) { case 1: printf(" * \n" ); case 2 + 1: printf(" * * \n" ); }

    D.switch(a + b) { case 1: pfintf(" * \n" ); case c: pfintf(" * * \n"); }


    正确答案:C
    解析:选项A)中case后面的表达式为浮点型,选项D)中case后面的表达式存在字符变量c,故选项A)、D)错误;在选项B)中,switch后面的表达式加了分号显然有错。

  • 第23题:

    单选题
    若有以下函数首部int fun(double x[10],int*n)则下面针对此函数的函数声明语句中正确的是(  )。
    A

    int fun(double*,int*);

    B

    int fun(double,int);

    C

    int fun(double *x,int n);

    D

    int fun(double x,int*n);


    正确答案: C
    解析:
    函数声明应该和函数调用的参数保持一致,声明时的参数(形参)名字可以省略,数组在参数传递过程中变成指针。答案选择A选项。