更多“设有程序段:intx=0,s=0;while(x!=0)s+=++x;printf("%d",s);,则运行程序段后()A、输出0B、输出1C、控制表达式是非法的D、执行无限次”相关问题
  • 第1题:

    设有以下程序段

    int x=0,s=0;

    while(!x!=0)s+=++x;

    printf("%d",s);

    A.运行程序段后输出0

    B.运行程序段后输出1

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

    D.程序段执行无限次


    正确答案:B

  • 第2题:

    有以下程序 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[3],即5,执行printf语句,输出s[2]的值即s+2(指针后移两位)。

  • 第3题:

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

    A.运行程序段后输出0

    B.运行程序段后输出1

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

    D.程序段执行无限次


    正确答案:B

  • 第4题:

    若有如下程序: int m=1; main() { int t=0,s=0; {int m=4;s+=m;) t+=m; printf("%d,%d\n",s,t); } 则程序运行后的输出结果是( )。

    A.1,1

    B.1,4

    C.4,1

    D.4,4


    正确答案:C
    解析:{intm=4;s+=m;}是复合语句,m=4,s+=m等价于s=s+m=0+4=4。t+=m等价于t=t+m,这里m为全局变量,值为1,t=t+m=O+1=1。

  • 第5题:

    有以下程序

    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这条语句,使程序进入死循环。

  • 第6题:

    以下程序的输出结果是#include <stdio.h>main(){ int k=4,s=0; do{ if((k%3)==0) continue; s+=k;k++; }while(k>10); printf("s=%d\n",s);}


    正确答案:s=4
    在本题中,程序首先定义了两个整型变量k和s,其中k的初值为4,s为0。然后开始做do…while结构的循环。
    第一次循环时,变量k和s的值分别是4和0,条件判断语句的条件结果为假,执行s+=k,此时s的值变为4,而k的值变为5,此时k的值小于10,循环结束;最终输出变量s的结果为s=4。

  • 第7题:

    有下列程序: include<stdi0.h>voidfun(char*s){while(*s){if(*s%2==(1)printf("%C&q

    有下列程序:

    #include<stdi0.h>

    voidfun(char*s)

    {while(*s)

    {if(*s%2==(1)printf("%C",*s);

    s+十:

    }

    }

    voidmain( )

    {chara[]={"good");

    fun(a);printf("n");

    }

    注意:字母a的ASCIl码值为97,程序运行后的输出结果是( )。

    A.d

    B.go

    C.god

    D.good


    正确答案:A
    A。【解析】在本题中,子函数fun(char*s)的功能是如果*s的ASCIl值是偶数,则输出*s,主函数中当实参的值为good时,9的ASCIl值是103,字母o的ASCIl值是111,字母d的ASCIl值是100,只有字母d的ASCIl值是偶数,所以输出字母d。

  • 第8题:

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

    A.运行程序段后输出0

    B.运行程序段后输出l

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

    D.程序段执行无限次


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

  • 第9题:

    有以下程序 main() { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s+=i; }while(i<7); printf("%d\n",s); } 执行后输出结果是

    A.16

    B.12

    C.28

    D.21


    正确答案:A
    解析:do循环与continue语句,在循环体中有一条if语句,其后面表达式为“i%2”,当i的值为奇数时,其值为真,执行其后面的语句,i的值加1,重新开始循环,当i的值为偶数时,“i%2”为假,执行“i++;s+=i”。在循环中i为偶数时的值分别为0、2、4、6,加1过后的值分别为1、3、5、7,s中存放的是它们的和,值为16。

  • 第10题:

    有以下程序 main () { int i=0,s=0; do{ if(i%2) {i++;continue; } i++; s+=i; while (i<7); printf ( "%d\n" , s ); } 执行后输出的结果是

    A.16

    B.12

    C.28

    D.21


    正确答案:A
    解析:在循环体中有一条if语句,其后面表达式为“i%2”,当i的值为奇数时,其值为真,执行其后面的语句,i的值加1,重新开始循环,当i的值为偶数时,“i%2”为假,执行“i++;s+1”。在循环中i为偶数时的值分别为0、2、4、6,加1过后的值分别为1、3、5、7,s中存放的是它们的和,值为16.所以,A选项为所选。

  • 第11题:

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

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

    正确答案:A,B

  • 第12题:

    有以下程序段,其输出结果是()int x=3;while((--x)==0){Console.Write("{0}/t",x-=2);}

    • A、不执行循环体
    • B、1
    • C、0
    • D、死循环

    正确答案:A

  • 第13题:

    若有以下程序段int m=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是

    A.0X0

    B.0x0

    C.0

    D.0XABC


    正确答案:C
    解析:格式字符x或x是以十六进制无符号形式输出整型数(不带前导0x或OX)。对于x用abc输出,X用ABC输出。

  • 第14题:

    以下程序运行后的输出结果是【】。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。

  • 第15题:

    若有以下程序段: int m=0xabc, n=0xabc; m-=n; printf("% X\n", m); 执行后的输出结果是______。

    A.0X0

    B.0x0

    C.0

    D.0XABC


    正确答案:C
    解析:“%X”以十六进制无符号形式输出整数,变量m和n的初始值都是十六进制数,m=m-n=0xabc-oxabc=0x0,所以输出结果为0。

  • 第16题:

    有以下程序 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

  • 第17题:

    以下程序运行后的输出结果是( )。 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。

  • 第18题:

    若有以下程序段int m=0xabc,n=0xabc;m-=n;printf("%x\n", m);执行后的输出结果是A.0x0 B.0x0 C.0 D.0xABC


    正确答案:C
    本题考查C语言中的数据输出格式。
    题目中定义了两个整型变量m、n,对这两个变量赋值,输入的数值为十六进制整数,并且有m=n。进行m-n运算后,将减法所得到的值赋给m,并将m值输出。其中printf的格式字符选用的格式字符为x,即以十六进制形式输出整数。注意,0x是表示该数为十六进制的标志,输出数据时,数据前面不会自动加上进制的标志。

  • 第19题:

    有下列程序: #include<stdi0.h> voidfun(char*s) {while(*s) {if(*s%2==(1)printf("%C",*s); s+十: } } voidmain( ) {chara[]={"good"); fun(a);printf("n"); } 注意:字母a的ASCIl码值为97,程序运行后的输出结果是( )。

    A.d

    B.go

    C.god

    D.good


    正确答案:A
    A。【解析】在本题中,子函数fun(char*s)的功能是如果*s的ASCIl值是偶数,则输出*s,主函数中当实参的值为good时,9的ASCIl值是103,字母o的ASCIl值是111,字母d的ASCIl值是100,只有字母d的ASCIl值是偶数,所以输出字母d。

  • 第20题:

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

    A.运行程序段后输出0

    B.运行程序段后输出1

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

    D.程序段执行无限次


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

  • 第21题:

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

  • 第22题:

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

  • 第23题:

    有以下程序 main() { char s[]="abcde"; s+=2; printf("%d/n",s[0]); } 执行后的结果是()

    • A、输出字符a的ASCII码
    • B、输出字符c的ASCII码
    • C、输出字符c
    • D、程序出错

    正确答案:D

  • 第24题:

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

    输出0

    B

    输出1

    C

    控制表达式是非法的

    D

    执行无限次


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