参考答案和解析
正确答案: D
解析:
程序中b是一个3×3的二维数组,利用指针表示二维数组元素b[i][j]的方式为:*(*(b+i)+j)。**b表示元素b[0][0],值为1;**(b+1)表示元素b[1][0],值为4;*(*(b+1)+2)表示元素b[1][2],值是18;最后输出b[0][2]+b[1][2]+b[2][2]=12+18+0=30。
更多“单选题有以下程序,输出结果(  )。A 1 4 4 18 30B 1 1 4 4 18C 4 4 18 1 1D 4 4 4 30 1”相关问题
  • 第1题:

    有以下程序: # define f(x) (x*x) main() { int i1, i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("% d, % d\n", i1, i2); } 程序运行后的输出结果是______。

    A.64, 28

    B.4, 4

    C.4, 3

    D.64, 64


    正确答案:C
    解析:用宏代换有:i1=f(8)/f(4)=(8×8)/(4×4)=4,i2=f(4+4)/f(2+2)=(4+4×4+4)/(2+2×2+2)=3。

  • 第2题:

    有以下程序,程序运行后的输出结果是______。 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;i++) { i=j; if(i>2)i=3-j; s+=b[i][j]; } return s; } main() { int a[4][4]={{1,2,3,4},{0,2,4,6,},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(A) ); }

    A.22

    B.11

    C.18

    D.16


    正确答案:D
    解析:本题通过函数调用对数组a[0][0]、a[1][1]、a[2][2]、a[0][3]进行求和,然后用return语句返回s的值。

  • 第3题:

    有以下程序的输出结果是 int f(int b[ ][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; } return s; } main( ) { int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(“%d\n”,f(a)); }

    A.12

    B.11

    C.18

    D.16


    正确答案:D
    解析:程序执行过程为:
      j  i  i=3-j  s
      ①0 0 不执行  1
      ② 1 1 不执行 3
      ③2 2 不执行  12
      ④3 3  0  16
      ⑤4结束循环。

  • 第4题:

    有以下程序includemain(){int*p,j; p=NULL p=fun(); for(j=0;j<4;j+){printf("%d",*p)

    有以下程序 #include<stdio.h> main() { int *p,j; p=NULL p=fun(); for(j=0;j<4;j+){printf("%d",*p);p++;} } int*fun() { int a[4],k; for(k=0;k<4;k++)a[k]=k; return(A) ; } 程序运行后的输出结果是( )

    A.程序有错不能运行

    B.输出4个NULL

    C.输出0 1 2 3

    D.输出1 1 1 1


    正确答案:A

  • 第5题:

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

    A.1,2,3,4,5

    B.2,3,4,5,6

    C.3,4,5,6,7

    D.2,3,4,5,1


    正确答案:B
    函数调用时,prt函数的作用是为使m数组中的数自增1,因此数组下标从0开始,每个元素都自加1。

  • 第6题:

    有以下程序:

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

    A.2,3,1,6,8,7,5,4,10,9,

    B.3,4,2,7,9,8,6,5,11,10,

    C.2,4,3,9,12,12,11,11,18,9,

    D.1,2,3,6,8,7,5,4,10,9,


    正确答案:C
    题目中定义了一个结构体类型s,然后定义了一个结构体变量s并初始化,执行f函数后,将s中元素a的每个元素都加上i,这里需要注意最后一个元素没有加i,所以最终答案为C选项。

  • 第7题:

    有以下程序:

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

    A.2 3 4 4

    B.4 3 3 2

    C.1 2 3 4

    D.1 1 2 3


    正确答案:B
    在for(i=0;i<12;i++)C[s[i]]++中,数组元素s[i]的值作为数组c的下标,当退出循环时,数组c的4个元素的值分别为4…332。因此B选项正确。

  • 第8题:

    有以下程序:

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

    A.4,5,2,4,1,3,

    B.4,4,2,2,1,1,

    C.5,5,3,3,2,2,

    D.4,4,2,2,1,3


    正确答案:A
    sizeof()是运算符,在头文件中typedef为unsignedint,其值在编译时即计算好了,参数可以是数组、指针、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。strlen(·char)函数,要在运行时才能计算,参数必须是字符型指针(char·),当数组名作为参数传人时,实际上数组就退化成指针了,它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL,返回的长度大小不包括NULL。sizeof(a)求数组a所占空间的大小,包括字符串最后的’、0’,所以sizeof(a)=5,strlen()遇到’、0’就结束,strlen(a)=4。strlen(b)是指针指向的字符串长度,sizeof(b)是指针的大小。strlen(c)是字符串的长度,sizeof(c)是数组的长度。因此,输出4,5,2,4,l,3。故答案为A选项。

  • 第9题:

    以下程序输出的结果为______。 x=1 y=4 Do Until y>4 x=x*y y=y + 1 Loop Print x

    A. 4

    B.8

    C.12

    D.16


    正确答案:A

  • 第10题:

    W18Cr4V中C、W、Cr、V的含量大约为()。

    • A、0.1%,18%W,4%Cr,1%V
    • B、1%,1%W,18%Cr,4%V
    • C、1%,18%W,4%Cr,1%V
    • D、0.75%,18%W,4%Cr,1%V

    正确答案:D

  • 第11题:

    单选题
    有以下程序,输出结果(  )。
    A

    1 4 4 18 30

    B

    1 1 4 4 18

    C

    4 4 18 1 1

    D

    4 4 4 30 1


    正确答案: D
    解析:
    程序中b是一个3×3的二维数组,利用指针表示二维数组元素b[i][j]的方式为:*(*(b+i)+j)。**b表示元素b[0][0],值为1;**(b+1)表示元素b[1][0],值为4;*(*(b+1)+2)表示元素b[1][2],值是18;最后输出b[0][2]+b[1][2]+b[2][2]=12+18+0=30。

  • 第12题:

    单选题
    有以下程序: #include    main( ) {  int i, array[6] = {1, 5, 0, 4};  for (i=0; i<5; i++)   printf(%d,, array[i] & 4);  printf(); } 程序运行后的输出结果是(  )。
    A

    1,2,1,2,0,

    B

    1,5,0,4,0,

    C

    1,5,5,4,0,

    D

    0,4,0,4,0,


    正确答案: B
    解析:
    本函数的功能是将数组中所有元素与4进行与运算,首先将元素转换为二进制,然后和二进制数100(十进制4)进行与运算,第一个元素为001&100即为000,也就是0,同理可得答案分别为0、4、0、4、0,注意第五位按照0进行运算。答案选择D选项。

  • 第13题:

    以下程序段的输出结果为 ______。 X=1 Y=4 Do Until Y>4 X=X*Y Y=Y+1 Loop Print X

    A.1

    B.4

    C.8

    D.20


    正确答案:B
    解析:DoUntil语句是条件为:False的时候执行循环体。程序中的循环体只执行了一次,结果是x=4,y=5。最后输出的结果为4。

  • 第14题:

    下列程序执行后,其输出结果为( )。

    A. 1 1 1 4 1

    B. 1 2 3 4 1

    C. 1 2 1 4 1

    D. 1 1 1 4 1


    正确答案:C
    c)    【解析】本题考查数组元素的赋值。数组a在循
    环中为数据赋值,循环变量i从0到4,步长为1。如果i等于2,则将a(o)的值赋给a(2);如果m等于3,则将a(O)的值赋给a(1)。因此数组元素的值为:1 2 1 4 4。

  • 第15题:

    有以下程序

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

    A.123 456

    B.1 4

    C.123 4

    D.1 2


    正确答案:A
    将有6个元素的整型数组分两行输出到一个文件中,因为输出的都是数字并且每行都没有分隔符,所以当再对其进行读取操作时,每一行都会被认为是一个完整的数,而换行符则作为它们的分隔符。

  • 第16题:

    以下程序的输出结果是()。includemain(){int a=4,b=3,c=2,d=1;printf("%d",a

    以下程序的输出结果是( )。 #include<stdio.h> main() {int a=4,b=3,c=2,d=1; printf("%d",a<b?a:d<c?d:B); }

    A.1

    B.3

    C.2

    D.4


    正确答案:A

  • 第17题:

    下列程序执行后,其输出结果为( )。 A.1 1 1 4 1B.1 2 3 4 1C.1 2 1 4 1SX

    下列程序执行后,其输出结果为( )。

    A.1 1 1 4 1

    B.1 2 3 4 1

    C.1 2 1 4 1

    D.1 1 1 4 1


    正确答案:C
    c)【解析】本题考查数组元素的赋值。数组a在循环中为数据赋值,循环变量i从0到4,步长为1。如果i等于2,则将a(o)的值赋给a(2);如果m等于3,则将a(O)的值赋给a(1)。因此数组元素的值为:12144。

  • 第18题:

    有以下程序:

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

    A.1,1,2,6,

    B.6,2,1,1,

    C.6,4,3,2,

    D.2,3,4,6,


    正确答案:C
    首先对二维数组进行赋值操作,a[0]J[o]、a[o][1]、…、a[3][2]、a[3儿3]的值为1、4、…、6、1。通I过for嵌套循环语句和话条件语句,对二维数组对角线元素进l行由大到小的捧序操作,程序最后通过for语句输出二维数组I第1行的4个元素。因此c选项正确。

  • 第19题:

    有以下程序:

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

    A.1,2,6,24,120,

    B.1,2,3,4,5,

    C.1,1,1,1,1,

    D.1,2,4,6,8,


    正确答案:A
    static静态变量只在声明时初始化一次。mul()累乘,第一次init=1,init}=val,第二次init=1,val=2,第三次init=2,val=3,第四次init=6,val=4,第五层init=24,val=5,因此结果为l,2,6,24,120。故答案为A选项。

  • 第20题:

    以下程序段的输出结果是( )。 x=1 y=4 Do Until y>4 x= x * y y=y+1 Loop Print XA.1SX

    以下程序段的输出结果是( )。 x=1 y=4 Do Until y>4 x= x * y y=y+1 Loop Print X

    A.1

    B.4

    C.8

    D.20


    正确答案:B
    B。【解析】本题考查的是dountil循环语句。dountil是直到型循环,当条件为假时执行循环体,直到为真结束。本题中首先y=4,循环条件y>4,所以关系表达式的结果为假,执行循环体中的语句,直到x=4,y=5。然后再次进入循环判断。因为y=5,所以循环判断表达式结果为真,不执行循环体,循环结束。Printx打印X中的值,故选B。

  • 第21题:

    若有以下程序

    则程序的输出结果是

    A.6-5-4-3-2-1-

    B.6-5-4-3-2-1

    C.1-2-3-4-5-6

    D.1-2-3-4-5-6-


    正确答案:B
    本题重点考查函数的递归调用,程序首先初始化整型变量z为123456,调用函数f。f函数中首先通过if条件语句判断x是否大于等于l0,如果条件成立,求x除以10的余数并输出,同时将变量x进行x/10运算,同时调用函数f。如果条件不成立,直接输出变量x。因此第l次调用函数,变量x为123456,条件成立,输出余数6;第2次调用函数,变量x为12345,条件成立,输出余数5;第3次调用函数,变量x为1234,条件成立,输出余数4;第4次调用函数,变量x为123,条件成立,输出余数3;第5次调用函数,变量x为12,条件成立,输出余数2;第6次调用函数,变量x为12345,条件不成立,输出1。因此B选项正确。

  • 第22题:

    单选题
    W18Cr4V中C、W、Cr、V的含量大约为()。
    A

    0.1%,18%W,4%Cr,1%V

    B

    1%,1%W,18%Cr,4%V

    C

    1%,18%W,4%Cr,1%V

    D

    0.75%,18%W,4%Cr,1%V


    正确答案: A
    解析: 暂无解析

  • 第23题:

    单选题
    以下程序段的输出结果是()。 X=1:y=4 dountily>4 x=x*y:y=y+1 loop Printx
    A

    1

    B

    4

    C

    8

    D

    20


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

  • 第24题:

    单选题
    有以下程序: #include  main() {  int i,*ptr;  int array[4]={1,1,3,4};  for(ptr=array,i=0;i<3;i++)   printf("%d,",*ptr++);  printf(""); } 程序运行后的输出结果是(  )。
    A

    1,2,4,

    B

    1,3,4,

    C

    1,1,3,

    D

    1,1,4,


    正确答案: A
    解析:
    *的优先级低于++,即先运算ptr++再运算*ptr。定义指针ptr与数组array,执行for循环,使指针指向数组首地址,i=0,输出指针指向的元素array[0]=1,然后指针加1,指向数组下一个元素;i=1,输出array[1]=1,指针指向数组下一个元素;i=2,输出指针指向的元素array[2]=3,然后指针加1,指向数组下一个元素;i=3退出for循环。程序依次输出1、1、3。答案选择C选项。