更多“单选题有以下程序: #include main() {  intA=0,B=0,C=0;  C=(A-=A-5);  (A=B,B+=4);  printf(%d,%d,%d,A,B,C); } 程序运行后输出的结果是(  )。A 0,4,5B 4,4,5C 4,4,4D 0,0,0”相关问题
  • 第1题:

    有以下程序:include include main( ) {char a[ 7 ] = "a0 \0a0 \0";int i,

    有以下程序:#include <stdio.h>#include <string.h>main( ) { char a[ 7 ] = "a0 \0a0 \0"; int i,j; i = sizeof(a); j = strlen(a); printf(" % d %d \n" ,i,j); }程序运行后的输出结果是( )。

    A.22

    B.76

    C.72

    D.62


    正确答案:C
    解析:C语言.中以,'\0'作为字符串的结束符,且strlen函数计算的是,'\0',字符前的所有字符的个数,故本题中strlen(a)应为2。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof运算符是计算变量或数组所分配到的内存空间的大小,所以本题的sizeof(a)为7。

  • 第2题:

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

  • 第3题:

    有以下程序

    #include <stdio.h>

    main( )

    { int a=0,b=0,c=0;

    c=(a=a-5); (a=b, b+=4);

    printf(”%d,%d,%d\n”,a,b,c);

    }

    程序运行后的输出结果是

    A) 0,4,5

    B) 4,4,5

    C) 4,4,4

    D) 0,0,0


    正确答案:A
    【答案】A
    【知识点】赋值语句与运算符结合性
    【解析】首先执行a-=a-5,即a=a-(a-5),使得a的值为5,然后执行c=(a-=a-5),即将a的值5赋给变量c,使得c的值也为5。然后执行下句逗号表达式中的a=b,把b的值0赋给a,此时a的值为0,然后执行b=b+4,使得b的值为4。最后打印输出。

  • 第4题:

    下列程序的输出结果是()。includemain(){int a=4; printf("%d\n",(a+=a-=a*a));}A.-8B.

    下列程序的输出结果是( )。 #include<stdio.h> main() { int a=4; printf("%d\n",(a+=a-=a*a)); }

    A.-8

    B.14

    C.0

    D.-24


    正确答案:D
    解析: 表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式 (a-=a*a)=(a=a-a*a=-12);②第二个表达式(a+=a-=a*a)=(a=a+a=-24)。

  • 第5题:

    有以下程序: include main( ) {intc = 35; printf( "% d \n" , e&c); }程序运行

    有以下程序: #include <stdio.h> main( ) { intc = 35; printf( "% d \n" , e&c); } 程序运行后输出结果是( )。

    A.0

    B.70

    C.35

    D.1


    正确答案:C
    解析:按位与运算符“&”的运算规则是:如果两个相应的二进制位都为1,则该位的结果为1,否则为0。因为本题中相与的两个数相同,即对应位的二进制数相等,所以结果为其值本身。

  • 第6题:

    下列程序的输出结果是()。 include main() {int a=4; printf("%d\n",(a+=a-=a*A) ); }A

    下列程序的输出结果是( )。

    #include<stdio.h>

    main()

    { int a=4;

    printf("%d\n",(a+=a-=a*A) );

    }

    A.-8

    B.14

    C.0

    D.-24


    正确答案:D
    解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a=a-a*a=-12);②第二个表达式 (a+=a-=a*a)=(a=a+a=-24)。

  • 第7题:

    试题18

    有以下程序

    #include <stdio.h>

    main()

    { int a=1,b=0;

    if(- -a) b++;

    else if(a= =0) b+=2;

    else b==3;

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

    }

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

    A.0

    B.1

    C.2

    D.3


    正确答案:C
    试题18分析
    a的值为1,- -a为0,不满足if(- -a),此时a的值为0,满足if(a= =0),执行b+=2;所以b的值为2。所以输出结果为2。
    试题18答案
    c

  • 第8题:

    单选题
    有以下程序#include main(){ char *p1 = 0;  int *p2 = 0; float *p3 = 0; printf(%d,%d,%d, sizeof(p1), sizeof(p2), sizeof(p3));}程序运行后的输出结果是(  )。
    A

    4,4,4

    B

    1,4,8

    C

    0,0,0

    D

    1,2,4


    正确答案: A
    解析:
    sizeof函数用来获取类型或数据对象的长度,也即是一个这种数据类型的变量在内存中所占字节数。由于一个变量的地址也是一个值,因此就可以把这个地址值存放到另一个变量里保存。这种专门用来存放变量地址的变量,称为“指针变量”。所有类型的指针变量都是地址,所占字节数均为4,答案选择A选项。

  • 第9题:

    单选题
    有如下程序#include main() { if('\0'== 0)putchar('X'); if('0'== 0)putchar('Y'); if('a'>'b')putchar('Z'); printf();}程序运行后的输出结果是(  )。
    A

    X

    B

    XYZ

    C

    YZ

    D

    Y


    正确答案: C
    解析:
    考查ASCII字符,字符'\0'、'0'、'a'、'b'的ASCII码值分别为0、48、97、98。putchar函数是向标准输出设备上输出一个字符。程序执行过程为:判断'\0'==0成立,输出X;判断'0'==0不成立,不输出;判断'a'>'b'不成立,不输出。答案选择A选项。

  • 第10题:

    单选题
    有以下程序: #include  main() {  int a=1,b=0;  for(;a<5;a++)  {   if(a%2==0)break;   b+=a;  }  printf(%d,b); } 程序的运行结果是(  )。
    A

    1

    B

    10

    C

    0

    D

    4


    正确答案: C
    解析:
    程序的执行过程为:a=1时,a%2=1,if判定条件不成立,执行语句b+=a;得到b=1;a=2时,a%2=0,if判定条件成立,执行语句break;跳出循环。输出b=1,故答案选择A选项。

  • 第11题:

    单选题
    若有以下程序 #include  main() {  int a=6,b=0,c=0;  for(;a;)  {   b+=a;   a-=++c;  }  printf(%d,%d,%d,a,b,c); } 则程序的输出结果是(  )。
    A

    0,18,3

    B

    1,14,3

    C

    0,14,3

    D

    0,14,6


    正确答案: C
    解析:
    题目中的for循环可以写成:
    for(;a!=0;){b=b+a; ++c; a=a-c;}
    第一次循环,a=6,进入for循环,b=0+6=6,c=1,a=6-1=5;
    第二次循环,a=5,进入for循环,b=6+5=11,c=2,a=5-3=3;
    第三次循环,a=3,进入for循环,b=11+3=14,c=3,a=3-3=0;
    第四次循环,a=0,跳出for循环。答案选择C选项。

  • 第12题:

    单选题
    有以下程序: #include  main() {  int a[]={10,20,30,40},*p=a,i;  for(i=0;i  {   a[i]=*p;   p++;  }  printf("%d",a[2]); } 程序运行后的输出结果是(  )。
    A

    30

    B

    40

    C

    10

    D

    20


    正确答案: A
    解析:
    for循环重新给数组a赋值,执行完成后数组a中的值没有发生变化,故最终输出的a[2]还是原来的a[2],为30。答案选择A选项。

  • 第13题:

    有以下程序includemain(){printf("%d\n",NULL);}程序运行后的输出结果是A.0B.1C.-1D.N

    有以下程序 #include<stdio.h> main() {printf("%d\n",NULL);} 程序运行后的输出结果是

    A.0

    B.1

    C.-1

    D.NULL没定义,出错


    正确答案:A
    解析:在C语言中NULL的ASCII码值为0,而输出函数要求以整型格式输出,故最后的输出数为0。

  • 第14题:

    有以下程序include main(){ int.i=0,a=0;while(i<20){for(;;) {if((i%10)==0)break;el

    有以下程序 #include <stdio.h> main() { int.i=0,a=0; while(i<20) { for(;;) { if((i%10)==0) break; else i--; } i+=11; a+=i; } printf("%d\n",a) ; } 程序运行后的输出结果是( )

    A.21

    B.32

    C.33

    D.11


    正确答案:B

  • 第15题:

    有以下程序:includemain(){printf("%d\n",NULL));程序运行后的输出结果是()。A.0B.1C.-

    有以下程序: #include<stdio.h> main() {printf("%d\n",NULL)); 程序运行后的输出结果是( )。

    A.0

    B.1

    C.-1

    D.NULL没定义,出错


    正确答案:A
    解析:在C语言中NULL的ASCII码值为0,而输出函数要求以整形格式输出,故最后的输出数为0。所以,4个选项中选项A符合题意。

  • 第16题:

    有以下程序include.main(){char*p="abcde\ofghjik\0";printf("%d\n",strlen(p));} 程

    有以下程序 #include.<string.h> main() { char *p="abcde\ofghjik\0"; printf("%d\n",strlen(p)); } 程序运行后的输出结果是

    A.12

    B.15

    C.6

    D.5


    正确答案:D
    解析:本题首先定义了一个字符型指针变量p,并用一个宇符串给它赋值,然后调用printf()函数输出p所指向的字符串的长度。字符串的结束标记为“\0”,其长度为“\0”前的字符个数,故长度为5。所以4个选项中D正确。

  • 第17题:

    有以下程序: include main( ) { char *p="abcde\0ghjik\0"; printf("%d\n",str

    有以下程序: #include<string.h> main( ) { char *p="abcde\0ghjik\0"; printf("%d\n",strlen(p) ); } 程序运行后的输出结果是

    A.12

    B.15

    C.6

    D.5


    正确答案:D

  • 第18题:

    下列程序的输出结果是()。includemain(){ int a=4printf("%d\n",(a+=a-=a*A) );}A.-8B.

    下列程序的输出结果是( )。#include<stdio.h>main(){ int a=4 printf("%d\n",(a+=a-=a*A) );}

    A.-8

    B.14

    C.0

    D.-24


    正确答案:D
    解析:表达式a+a-=a*8看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a=a-a*a=-12);②第二个表达式(a+=a-=a*a):(a=a+a-24)。

  • 第19题:

    单选题
    有以下程序:#include main(){ int a=7; while(a--); printf(%d, a);}程序运行后的输出结果是(  )。
    A

    -1

    B

    0

    C

    1

    D

    7


    正确答案: B
    解析:
    “++”和“—”运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,再进行加一或减一操作。程序中执行a--,直到while判断为0时才跳出循环,执行下条语句,即a为0时再执行a--,此时跳出while循环,最终输出的结果为-1。答案选择A选项。

  • 第20题:

    单选题
    有以下程序 #include  main() {  int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},(*p)[4]=a,i,j,k=0;  for(i=0;i   for(j=0;j  printf("%d",k); } 程序运行后的输出结果是(  )。
    A

    99

    B

    68

    C

    60

    D

    108


    正确答案: D
    解析:
    定义了二维数组a,p是指针,它指向长度为4的int数组,初始化时,p执行a[0],*(*(p+i)+j)相当于a[i][j]。main函数的作用是计算数组a中前两列的和,结果是60。答案选择C选项。

  • 第21题:

    单选题
    有以下程序#include #include main(){ int a = 3; printf(%d,(a+=a-=a*a));}程序运行后的输出结果是(  )。
    A

    -12

    B

    9

    C

    0

    D

    3


    正确答案: C
    解析:
    C语言中,表达式从右向左计算。a+=a-=a*a;可以写成a-=a*a; a+=a; 而a-=a*a等价于a=a-(a*a)=3-(3*3)=-6;a+=a等价于a=a+a=(-6)+(-6)=-12。答案选择A选项。

  • 第22题:

    单选题
    在以下程序: #include main() {  int a=1,b=0;  if(!a) b++;  else if(a==0)if(a)b+=2;  else b+=3;  printf(%d,b); } 程序运行后的输出结果是(  )。
    A

    0

    B

    1

    C

    2

    D

    3


    正确答案: B
    解析:
    根据在if-else语句中,else总是和最近的if配对的原则,本题中层次关系是:if(!a)与else if(a==0)是一组,在最外层。而if(a)与else是一组,位于else if(a==0)条件的内层。if(!a)与else if(a==0)条件均不成立,所以b未进行任何操作仍为初始值0。答案选择A选项。

  • 第23题:

    单选题
    有以下程序#include main(){ int a=1, b=0; for(; a<5;a++) {  if(a%2 == 0)break;  continue;  b += a; } printf(%d ,b);}程序运行后的输出结果是(  )。
    A

    0

    B

    1

    C

    10

    D

    4


    正确答案: A
    解析:
    该程序的for循环中,如果循环变量a为偶数,则执行break语句直接跳出循环;如果a为奇数,则直接执行continue语句进入下一次循环。因此无论a取何值,语句b+=a都不会执行,即b没有改变,最后输出0。答案选择A选项。