niusouti.com

设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s);A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次

题目

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

A.运行程序段后输出0

B.运行程序段后输出1

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

D.程序段执行无限次


相似考题
更多“设有以下程序段int x=0,s=0;while(!x!=0)s+=++x;printf("%d",s);A.运行程序段后输出0B.运行程序 ”相关问题
  • 第1题:

    以下程序运行后的输出结果是【】。includemain(){int k=1,s=0; do{ if((k%2)!=0)continue;

    以下程序运行后的输出结果是【 】。

    include<stdio.h>

    main()

    { int k=1,s=0;

    do{

    if((k%2)!=0) continue;

    s+=k; k++;

    }while(k>10);

    printf("s+%d\n",s);

    }


    正确答案:s=0
    s=0 解析:do-while循环结构的形式如下:
    do
    循环体
    while(表达式);
    循环的执行过程如下:
    ①执行do后面循环体中的语句。
    ②计算while后—对圆括号中表达式的值。当值为非0时,转去执行步骤1;当值为0时,执行步骤3。
    ③退出do-while循环。
    在本题中先判断k是否为偶数,如果不是则结束本次循环,进行下—次的循环条件判定,由于没有改变k的值,k>10的不成立,退出do-while循环,执行后面的printf("s=%d\n",s);语句,因为s=0,所以输出结果为s=0。

  • 第2题:

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

    A.运行程序段后输出0

    B.运行程序段后输出1

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

    D.程序段执行无限次


    正确答案:B

  • 第3题:

    有以下程序 int a=3; main() { int s=0; { int a=5;s+=a++;} s+=a++; printf("%d\n",s); } 程序运行后的输出结果是______。

    A.8

    B.10

    C.7

    D.11


    正确答案:A

  • 第4题:

    以下程序运行后的输出结果是( )。 include main() { int x=20; printf("%d", 0

    以下程序运行后的输出结果是( )。

    include<stdio.h>

    main()

    { int x=20;

    printf("%d", 0<x<20);

    printf("%d\n", 0<x && x<20);

    }


    正确答案:10
    10 解析:表达式0x20,首先计算0x,其值为1,再计算120,其值为1,输出1;表达式0x && x20,0x为1,x20为0,再计算1 && 0,其值为0,输出0。所以输出结果为10。

  • 第5题:

    以下程序通过函数sunFun求。这里f(x)=x2+1

    main( )

    { printf("The sum=%d\n",SunFun(10)); }

    SunFun(int n)

    { int x,s=0;

    for(x=0;x<=n;x++) s+=F(【 】);

    return s;

    }

    F( int x)

    { return 【 】);}


    正确答案:x*x+1
    x*x+1 解析:本题中F(  )函数实现表达示f(x) =x2+1,SunFun(  )函数实现循环累加F(0)...F(10)的值因此[14]填x,[15]填x*x+1。

  • 第6题:

    以下程序运行后的输出结果是( )。 include main() {char ch[]="abcd",x[4][4];int i; f

    以下程序运行后的输出结果是( )。 include<string.h> main() {char ch[]="abcd",x[4][4];int i; for(i=0;i<4;i++)strcpy(x[i],ch); for(i=0;i<4;i++)printf("%s",&x[i][i]); printf("\n"); }


    正确答案:abcdabcdabcdabcdbcdabcdabcdcdabcdd
    abcdabcdabcdabcdbcdabcdabcdcdabcdd

  • 第7题:

    有以下程序: #include<stdi0.h> #define S(x)(x)"x"2 main( ) { int k一5,j=2; Drintf("%printf,",S(k+j));printf("%printf\n",S((k—j))); } 程序运行后的输出结果是( )。

    A.98,18

    B.39,11

    C.39,18

    D.98,11


    正确答案:B
    S(k+j)=(k+j)*k+j*2=(5+2)*5+2*2=39,同理S(k-1)=(k+j)*k+j*2=(5-2)*5-2*2=11,所以答案选择B。

  • 第8题:

    设有以下程序段: int X=0,s=0; while(!X!=0.s+=++X; prinff(”%d”,S.; 则( )。

    A.运行程序段后输出0

    B.运行程序段后输出l

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

    D.程序段执行无限次


    正确答案:B
    考查while语句的使用,逻辑非运算符和不等于运算符的区别,逻辑非运算符”!”的优先级大于不等于运算符”!=”的优先级。

  • 第9题:

    设有以下程序段: 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。

  • 第10题:

    设有程序段:intx=0,s=0;while(x!=0)s+=++x;printf("%d",s);,则运行程序段后()

    • A、输出0
    • B、输出1
    • C、控制表达式是非法的
    • D、执行无限次

    正确答案:A,B

  • 第11题:

    单选题
    有以下程序:#include int fun(){ static int x=1; x*=2; return x;}main(){ int i,s=1; for(i=1;i<=2;i++)s=fun(); printf(%d,s);}程序运行后的输出结果是(  )。
    A

    0

    B

    1

    C

    4

    D

    8


    正确答案: C
    解析:
    对局部静态变量在编译时赋初值,以后每次调用函数时一直保持不变,只是保留上次函数调用结束时的值。在主函数中调用了两次fun()函数,第一次调用时x初值为1,执行x*=2后,x=2;第二次调用时初值为2,执行x*=2后,x=4。答案选择C选项。

  • 第12题:

    单选题
    有如下程序:#includemain(){ int x=0x13; if(x=0x18)printf(T); printf(F); printf();}程序运行后的输出结果是(  )。
    A

    TF

    B

    T

    C

    F

    D

    TFT


    正确答案: C
    解析:
    x=0x18为赋值表达式,十六进制数0x18非0,即x非0,if条件成立输出T,之后再输出F与回车符。程序运行后的输出结果是TF,答案选择A选项。

  • 第13题:

    有以下程序: #include<stdio.h> int fun {static int x=1; x+=1;return X; } main {int i,S=1; for(i=1;i<=S;i++)s+=fun; printf("%d\n",s); } 程序运行后的输出结果是( )。

    A.11

    B.21

    C.6

    D.120


    正确答案:B
    本题考查静态变量,C语言中静态变量的生存期是从程序的开始到结束。本题中静态变量x,随着每次进入循环不断增长5次,返回的值分别为2、3、4、5、6。所以S=1+2+3+4+5+6=21,选B。

  • 第14题:

    有以下程序: main() { int x[8]={8,7,6,5,0,0},*s; s=x+3; printf("%d\n",s[2]); } 程序运行后的输出结果是______。

    A.随机值

    B.0

    C.5

    D.6


    正确答案:B
    解析:本题定义了数组x[8]和指针变量s,由C语言规定,指针加1的含义是使指针指向数组的下一个元素,而不是指针值简单的加1,因此通过s=x+3;使s指向数组元素x[3]。由于指向数据的指针变量可以带下标表示,如s[i]与*(s+i)等价。因此题目要求输出s[2]的值,即*(s+2)的值,也就是x[5]的值,为0。

  • 第15题:

    有以下程序

    main( )

    { int i=0,x=0;

    for (;;)

    { if(i==3||i==5) continue;

    if (i==6) break;

    i++;

    s+=i;

    };

    printf("%d\n",s);

    }

    程序运行后的输出结果是

    A.10

    B.13

    C.21

    D.程序进入死循环


    正确答案:D
    解析:由于程序中for循环没有条件,只有靠其内部的break跳转循环,但在循环执行二次之后,i的值变为3,会使循环一直执行if(i= =3| | i= =5)continue这条语句,使程序进入死循环。

  • 第16题:

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

    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。

  • 第17题:

    有以下程序 int a=3; main() {int s=0; { int a=5;s+=a++;} 8+=a++;printf(“%d\n”,s); } 程序运行后的输出结果是

    A.8

    B.10

    C.7

    D.11


    正确答案:A
    解析:本题中定义一个全局变量a和一个局部变量a。局部变量和全局变量的不同在于,局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失,而全局变量是在函数外部任意位置上定义的变量,它的作用域从变量定义的位置开始,到整个源文件结束为止。若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽,在该函数内,起作用的将是局部变量,与同名的全局变量不发生任何关系。 在程序中首先定义了变量s并赋值为0,接着在嵌套的复合语句{}中定义了变量a并赋初值为5,接着执行语句s+=a++;在这条语句中a加1,但表达式a++还是原来的值,故s=s+5,s为5,程序执行到外层,此时{}内定义的变量a不再有效,此时的变量a为{}之前定义的且初值为3,接着执行{}后面的语句s+=a++;相当于执行语句s=s+(a+ +);即s=5+3,最后值为8,所以最后输出的s值为8。

  • 第18题:

    有以下程序

    #include<stdio.h>

    int fun()

    {static int x=l:

    X*=2:

    return X:

    }

    main()

    {int i,s=l:

    for(i=l;i<=3,i++) s*=fun();

    printf(“%d\n”,s);

    }

    程序运行后的输出结果是

    A.0

    B.10

    C.30

    D.64


    正确答案:B
    解析:fun函数中的变量x为静态局部变量,它在内存的静态存储区中占据着永久性的存储单元.即使退出fun函数也不释放x的存储单元,仍保留其原来的值,函数共调用了3次fun函数,第一次调用fun函数后,x=2,s=2;第二次调用fun函数后,x=l,s=8;第三次调用fun函数后.x=8,s=64。故程序运行后输出结果为64。

  • 第19题:

    有以下程序:include main(){union{charch[2];int d;} s;s.d=0x4321;printf("%x,%x\n",

    有以下程序: #include <stdio.h> main() { union { charch[2]; int d; } s; s.d=0x4321; printf("%x,%x\n",s.ch[0],s.ch[1]); } 在16位编译系统上,程序执行后的输出结果是( )。

    A.21,43

    B.43,21

    C.43,00

    D.21,00


    正确答案:A
    解析:int型变量和字符数组ch共用两个字节的存储单元,通常ch[0]位于低字节,ch[1]位于高字节,所以s.ch[0]=21,s.c[1]=43。

  • 第20题:

    设有以下程序段 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,循环结束。

  • 第21题:

    (34)有以下程序

    #include <stdio.h>

    int fun()

    { static int x=1;

    x*=2;

    return x;

    }

    main()

    { int i,s=1;

    for(i=1;i<=3;i++) s*=fun();

    printf("%d\n",s);

    }

    程序运行后的输出结果是

    A)0

    B)10

    C)30

    D)64


    正确答案:D

     

  • 第22题:

    下列程序运行后的输出结果是()。  #include   main( )  { int x=9;   for(; x>0; x--){   if(x%3==0){     printf(“%d”,--x);     continue;    }   }  }


    正确答案:852

  • 第23题:

    多选题
    设有程序段:intx=0,s=0;while(x!=0)s+=++x;printf("%d",s);,则运行程序段后()
    A

    输出0

    B

    输出1

    C

    控制表达式是非法的

    D

    执行无限次


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

  • 第24题:

    单选题
    有以下程序:#includemain(){ int x=0x13; if(x=0x12)printf(True); printf(False);}程序运行后的输出结果是(  )。
    A

    True

    B

    TrueFalse

    C

    False

    D

    TrueFalseTrue


    正确答案: C
    解析:
    if(x=0x12)条件语句为赋值语句,注意赋值操作符“=”与相等操作符“==”的区别,此处是赋值语句“=”0x12即十进制的18,给x赋值18,因此if的判断条件为真,执行输出语句,输出True;之后再执行下一个输出语句,输出False,答案选择B选项。