更多“设有程序段 int x=10; while (x=0) x=x-1; 则下面描述中正确的 。”相关问题
  • 第1题:

    下列程序段执行以后,内存变量y的值是( )。 CLEAR x=12345 y=0 DO WHILE x>O y=y+x%10 x=int(x/10) ENDDO ?y

    A.54321

    B.12345

    C.51

    D.15


    正确答案:D
    解析:程序的功能是从后往前依次读取各位上的数值,并对它们求和,所以最终的结果为15。

  • 第2题:

    下列程序段执行以后,内存变量Y的值是( )。 CLEAR x=12345 y=0 DO WHILE x>0 y=y+x%10 x=int(x/l 0) ENDD0 7 Y

    A.54321

    B.12345

    C.51

    D.15


    正确答案:D
    D。【解析】程序的功能是从后往前依次读取各位上的数值,并对它们求和,所以结果为l5。

  • 第3题:

    执行下列程序段以后,内存变量y的值是( )。x=76543y=0DO WHILE x>0 y=x%10+y*10 x=int(x/10)ENDDO

    A.3456

    B.34567

    C.7654

    D.76543


    正确答案:B
    解析:程序执行情况如下表所示:

    最终变量y的结果为34567。

  • 第4题:

    下列程序段的运行结果是______。

    int x=0,y=0;

    while(x<15) y++,x+=++y;

    pfintf("%d,%d",y,x);


    正确答案:820
    8,20 解析:本题考查while循环和++运算符的运用。x=0符合条件x15,则执行y++,x+=++y后,y=1,x=0+2=2后y=2,符合条件继续循环,y=3,x=x+4=6后y=4,再循环y=5,x=x+6=6+6=12后,y=6,继续循环y=7,x=x+8=12+8=20,此时y=8。

  • 第5题:

    ● 针对以下C语言程序段,假设sta[10]= -1,对于x的取值,需要__个测试用例能够满足分支覆盖的要求。 int MathMine( int x ) { int m = 0; int i; for( i = x-1; i <= x + 1; i++ ) { if ( i < 0 ) continue; if ( i >31 ) break; if ( sta[i] == -1 ) m++; } return m; }

    A.3

    B.4

    C.5

    D.6


    正确答案:A
    分支覆盖要使得程序中的每一个分支都至少执行一次。本题比较特殊,在循环体中用到了continue与break,其中执行continue语句,则结束本次循环,也就是说执行continue后,其后面的循环体语句在本次循环中将不执行;而break语句结束的是本层循环,在本题中就结束了整个循环。在本题中要设计的用例如下:(1)使i<0成立,(2)使i<0不成立,而i>31成立(3)使i<0不成立,且i>31也不成立,而使sta[i]==-1成立。这样就实现了分支覆盖。参考答案A

  • 第6题:

    int Calc(unsigned int x)

    {

    int count=0;

    while(x)

    {

    printf("x=%i\n",x);

    count++;

    x=x&(x-1);

    }

    return count;

    }

    问 Calc(9999)的值是多少。


    正确答案:
     

  • 第7题:

    关于以下程序段的描述,正确的是x=-1;do {x=x*x-1;}while(!x); A.是死循环 B.循环执行两次C.循环执行一次 D.有语法错误


    正确答案:B
    本题主要考查do…while结构。在程序中,首先定义了一个变量x,其初值为-1,然后执行循环体。
    第一次循环时,x=x*x-1;运行后x的值为0,那么此时!x的值为非0,其值是真,循环继续进行。
    第二次循环时,x=x*x-1;运行后x的值为-1,那么此时!x的结果其为非真,即假,循环结束。
    那么循环执行的次数应该为两次,因此,本题正确答案为B。

  • 第8题:

    有以下程序:includeusing namespace std;int main(){int x=15;while(x>10&&x

    有以下程序: #include<iostream> using namespace std; int main() { int x=15; while(x>10&&x<50) { x++; if(x/3) { x++;break; } } cout<<x<<endl; return 0; } 执行后的输出结果是( )。

    A.15

    B.16

    C.17

    D.18


    正确答案:C
    解析: 本题考核选择语句与循环语句的嵌套。由程序可知,当x=16时,满足if条件表达式,进入if分支,执行“x++;break”,所以最后程序输出x的值为17。

  • 第9题:

    用程序计算一个整数的各位数字之和,在横线处应填写的语句是( )。 SET TALK OFF INPUT”X=”TOX S=0 DO WHIlE X!=0 S=S十MOD(X,10) ENDDO ?S SET TAlKON

    A.X—int(X/10)

    B.X—int(X%10)

    C.X—X—int(X/10)

    D.X—X—int(X% 10)


    正确答案:A
    A。【解析】首先用户输入一个数字保持到变量X中,判断条件是变量X是否等于0,如果为0,则退出循环,否则通过求余函数M0D得到变量X的个位数。因为题意要求计算各位数之和,所以接下来应当将变量x除以l0并取整,以便将变量X的十位数变成个位数,然后再次循环计算。

  • 第10题:

    执行下面程序段的结果是______。 int x=234; do { printf("%3d\n",x--); } while(!x);

    A.432

    B.234

    C.0

    D.234到1的自然数


    正确答案:B

  • 第11题:

    设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x; printf(“%d”,s); 则(50)。

    A.运行程序段后输出0

    B.运行程序段后输出1

    C.程序段中的控制表达式是非法的

    D.程序段执行无限次


    正确答案:B
    解析:当x=0时,!x=1,1!=0,s=1;当x=1时,!x=0,0==0,循环结束。

  • 第12题:

    ( 28 )下面程序计算一个整数的各位数字之和。在下划线处应填写的语句是

    SET TALK OFF

    INPUT " x= " TO x

    s=0

    DO WHILE x!=0

    s=s+MOD(x,10)

    ____________

    ENDDO

    ? s

    SET TALK ON

    A)x=int(x/10)

    B)x=int(x%10)

    C)x=x-int(x/10)

    D)x=x-int(x%10)


    正确答案:A

  • 第13题:

    下列的程序 段 中与上题的程序段对 y 的计算结果相同的是

    A) x=34567

    y=0

    flag=.T.

    DO WHILE flag

    y=x%10+y*10

    x=int(x/10)

    IF x>0

    flag=.F.

    ENDIF

    ENDDO

    B ) x=34567

    y=0

    flag=.T.

    DO WHILE flag

    y=x%10+y*10

    x=int(x/10) }

    IF x=0

    flag=.F.

    ENDIF

    ENDDO

    C ) x=34567

    y=0

    flag=.T.

    DO WHILE !flag

    y=x%10+y*10

    IF x>0

    flag=.F.

    ENDIF

    ENDDO

    D) x=34567

    y=0

    flag=.T.

    DO WHILE !flag

    y=x%10+y*10

    x=int(x/10)

    IF x=0

    flag=.T.

    ENDIF

    ENDDO


    正确答案:B

  • 第14题:

    有以下程序:include using namespace std;int main (){int x=15;while (x>10&&am

    有以下程序: #include <iostream> using namespace std; int main () { int x=15; while (x>10&&x<50) { x++; if (x/3) { x++; break; } } cout<<x<<endl; return 0; } 执行后的输出结果是

    A.15

    B.16

    C.17

    D.18


    正确答案:C
    解析:本题考核选择语句与循环语句的嵌套。由程序可知,当x=16时,满足if条件表达式,进入if分支,执行“x++;break;",所以最后程序输出x的值为17。

  • 第15题:

    下列程序段循环( )次。int x=-10;while(++x) {}

    A.9

    B.10

    C.11

    D.无限


    正确答案:A

  • 第16题:

    下列程序段执行以后,内存变量y的值是( )。 x=34567 y=0 DO WHILE x>0 y=x%10+y*10 x=int(x/10) ENDDO

    A.3456

    B.34567

    C.7654

    D.76543


    正确答案:D
    D。【解析】INT<数值表达式>的功能是返回数值表达式的整数部分。DOWHILE<表达式条件>ENDDO,当<表达式条件>为真时执行循环体,当遇到ENDD0则自动返回到DOWHILE语句继续判断循环条件是否成立,以决定是否继续循环。当<表达式条件>为假时结束循环,执行ENDDO后面的语句。

  • 第17题:

    【程序说明】程序功能是计算一个整数的各位数字之和。

    【程序】

    SET TALK OFF

    INPUT“x=”TO x

    s=0

    DO WHILE x!=0

    s=s+ MOD(x,10)

    (1)

    (2)

    ? S

    SET TALK ON

    (1)

    A.x=INT(x*10)

    B.x=INT(x/10)

    C.x=x-INT(x/10)

    D.x=x-INT(x*10)


    正确答案:B
    解析:此程序运行步骤如下:首先等待用户屏幕输入一个数字,由变量x保存该数字;将0赋值给变量s,此变量用于计算各位数字和;使用一个DO WHILE循环语句,首先判断x是否等于0,如果等于0,退出循环,如果不等于零,则使用MOD()(取余)函数求出x除以10的余数(数字的个位数),并累加到变量s中。接下来,程序应当将变量x除以10并取整,使之缩小10倍,以便将x的10位数字变为个位数字,所以在此应当选择选项B。

  • 第18题:

    求下面函数的返回值(微软)

    int func(x)

    {

    int countx = 0;

    while(x)

    {

    countx ++;

    x = x&(x-1);

    }

    return countx;

    }


    正确答案:

     

    假定x = 9999。答案:8
    思路:将x转化为2进制,看含有的1的个数。

  • 第19题:

    有以下程序:includeusing namespace std;int main(){ intx=15; while(x>10&&

    有以下程序: #include <iostream> using namespace std; int main() { int x=15; while(x>10&&x<50) { x++; if(x/3) { x++; break; } } cout<<x<<end1; return 0; }

    A.15

    B.16

    C.17

    D.18


    正确答案:C
    解析:本题考核选择语句与循环语句的嵌套。由程序可知,当x=16时,满足if条件表达式,进入if分支,执行“x++;break;”,所以最后程序输出x的值为17。

  • 第20题:

    下列程序段执行以后,内存变量Y的值是( )。x=34567y=0DO WHILE x>;0y=x%l0+Y*10x=int(x/10)ENDD0

    A.3456

    B.34567

    C.7654

    D.76543


    正确答案:D
    INT数值表达式>的功能是返回数值表达式的整数部分。DOWHILE表达式条件>ENDD0,当表达式条件>为真时执行循环体,当遇到ENDD0则自动返回到DOWHILE语句继续判断循环条件是否成立,以决定是否继续循环。当表达式条件>为假时结束循环,执行ENDDO后面的语句。

  • 第21题:

    有以下程序:include using namespace std;int main() {int x=15;while(x>10&&

    有以下程序: #include <iostream> using namespace std; int main() { int x=15; while(x>10&&x<50) { x++; if(x/3) { x++; break; } } cout<<x<<end1; return 0; } 执行后的输出结果是

    A.15

    B.16

    C.17

    D.18


    正确答案:C
    解析:本题考核选择语句与循环语句的嵌套。由程序可知,当x=16时,满足if条件表达式,进入if分支,执行“x++;break;”,所以最后程序输出x的值为17。

  • 第22题:

    设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s);

    A.运行程序段后输出0

    B.运行程序段后输出1

    C.程序段中的控制表达式是非法的

    D.程序段执行无限次


    正确答案:B
    解析:本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符“!”的优先级大于不等于运算符“!=”的优先级。注意:for语句和do…while语句的使用。

  • 第23题:

    设有以下程序段: int x=0,s=0; whUe( ! x! =0) s+ = ++x; printf("%d",s); 则( )。

    A.运行程序段后输出0

    B.运行程序段后输出1

    C.程序段中的控制表达式是非法的

    D.程序段执行无限次


    正确答案:B
    解析:本题中,逻辑非“!”运算符比不等于“!=”运算符优先级高,因此第一次循环时!x!=0的运算结果为真,s的运算结果为1;第二次循环时!x!=0的运算结果为假,循环结束,输出s的结果为1。

  • 第24题:

    ( 17 )下列程序段执行以后,内存变量 y 的值是

    x =76543

    y=0

    DO WHILE x>0

    y=x%10+y*10

    x=int(x/10)

    ENDDO

    A ) 3456

    B ) 34567

    C ) 7654

    D ) 76543


    正确答案:B