单选题有以下程序: #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,

题目
单选题
有以下程序: #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,


相似考题
更多“单选题有以下程序: #include main() {  inti,*ptr;  intarray[4]={1,1,3,4};  for(ptr=array,i=0;i3;i++)   printf("%d,",*ptr++);  printf(""); } 程序运行后的输出结果是(  )。A 1,2,4,B 1,3,4,C 1,1,3,D 1,1,4,”相关问题
  • 第1题:

    有以下程序 main() { int a [3][2]={0},(* ptr [2],i,j; for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);pb++;} for(i=0;i<3;i++) { for(j=0;j<2;j++)printf("%2d",a[i][j]); printf("\n"); } } 若运行时输入:123<回车>,则输出结果是 ______。

    A.产生错误信息

    B.10

    C.12

    D.10 20 30 20 00 00 30


    正确答案:B
    解析:二维数组a,通过a[3][2]={0}将数组中的各个元素初始化为0,指针变量ptr,指向包含2个元素的一维数组。a[0][0]=1,a[1][0]=2,故本题的输出选B。

  • 第2题:

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

  • 第3题:

    有以下程序 main() { int a[3][2]={0},(*ptr)[2],i,j; for(i=0;i<2;i++) {ptr=a+i; scanf("%d",ptr); ptr++;} for(i=0;i<3;i++) { for(j=0;j<2;j++)printf("%2d",a[i][j]); printf("\n"); } } 若运行时输入:1 2 3<回车>,则输出结果是

    A.产生错误信息

    B.1 0 2 0 0 0

    C.1 2 3 0 0 0

    D.1 0 2 0 3 0


    正确答案:B
    解析:二维数组指针第一个for循环中,第一次循环ptr指向a[0][0]的首地址,所以经过输入语句,a[0][0]=1;第二次循环ptr指向a[1][0]的首地址,所以经过输入语句,a[1][0]=2。此时,除了这两个元素,其他元素没有改变,等于初值0。

  • 第4题:

    有以下程序,程序执行后,输出结果是【】include void fun(int*A) {a[0]=a[1];} main() {i

    有以下程序,程序执行后,输出结果是【 】

    include<stdio.h>

    void fun(int*A)

    { a[0]=a[1];}

    main()

    { int a[10]={10,9,8,7,6,5,4,3,2,1,},i;

    for(i=2;i>1=0;i-) fun(&a[i]);

    for(i=0;i<10;i++) printf("%d,a[i]);

    printf("\n");

    }


    正确答案:7777654321
    7777654321 解析:本题主要考查函数的调用,第—次调用把数组元素a[2]的地址赋给a,此时a[1]即是原数组的a[3]等于7,再执行赋值语句a[0]=a[1],则a[0]和a[1]中的值都是7,然后再把这个值返回给a[2]同样地第二次调用的时候函数返回值也是7,第三次调用返回值也是7,因此数组的前4个元素,即对a[0]、a[1]、a[2]和a[3]的值都为7,当执行第二个for循环时输出数组中所有元素的值7777654321。

  • 第5题:

    ( 10 )有以下程序

    #include <stdio.h>

    main ()

    { int a[]={1,2,3,4,5,6},*k[3],i=0;

    while ( i<3 )

    { k[i]=&a[2*i];

    printf ( " %d " ,*k[i] ) ;

    i++;

    }

    }

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


    正确答案:

  • 第6题:

    以下程序的输出结果是()      #include      main( )       {inti:  for(i=l;i<=5;i++)         {if(i%2)  printf(“*”);         else  continue;         printf(“*”);}         printf(“$/n”);I    

    • A、*#*#*#$
    • B、#*#*#*$
    • C、*#*#$
    • D、#*#*$

    正确答案:A

  • 第7题:

    单选题
    有以下程序 #include  main() {  int i,t[][3]={9,8,7,6,5,4,3,2,1};  for(i=0;i<3;i++)   printf("%d,",t[2-i][i]); } 程序执行后的输出结果是(  )。
    A

    3,5,7,

    B

    7,5,3,

    C

    3,6,9,

    D

    7,5,1,


    正确答案: B
    解析:
    依次输出t[2][0],t[1][1],t[0][2]。答案选择A选项。

  • 第8题:

    单选题
    有以下函数:#include void func(int n){ int i; for(i=0;i<=n;i++)printf(*); printf(#);}main(){ func(3); printf(????); func(4); printf();}程序运行后的输出结果是(  )。
    A

    ****#????***#

    B

    ***#????*****#

    C

    **#????*****#

    D

    ****#????*****#


    正确答案: D
    解析:
    从main函数开始,执行func()函数,for循环执行4次,连续输出四个“*”,然后输出一个“#”;输出“????”;再次调用func(),for循环执行5次,连续输出五个“*”,然后输出一个“#”;最后输出换行符。答案选择D选项。

  • 第9题:

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

    1,2,4,9,6,

    B

    1,4,6,0,2,9,0,0,

    C

    2,9,0,0,1,4,6,0,

    D

    2,9,6,1,4,


    正确答案: B
    解析:
    二维数组分行初始化如果初值表只对部分元素赋初值,没有被赋初值的元素将被自动赋值为0,相当于array[4][2]={{1,2},{4,9},{6,0},{0,0}}。执行两次for语句,实现按列依次输出数组中元素,答案选择B选项。

  • 第10题:

    单选题
    有以下程序:#include main(){  char *s[6]={ABCD,EFGH,IJKL,MNOP,QRST,UVWX},**p; int i; p=s;  for(i=0;i<4;i++)printf(%s,p[i]); printf();}程序运行后的输出结果是(  )。
    A

    ABCDEFGHIJKLMNOP

    B

    ABCDEFGHHKL

    C

    ABCD

    D

    AEIM


    正确答案: D
    解析:
    程序定义数组指针s以及指针的指针p,p指向数组指针s。p[i]为s的第i行字符串,因此程序输出s的前四行字符串。答案选择A选项。

  • 第11题:

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

    8,2,

    B

    8,8,

    C

    2,4,

    D

    4,8,


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

  • 第12题:

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

    12

    B

    4

    C

    1

    D

    0


    正确答案: A
    解析:
    for(printf("%d",i);i<2;i++)先输出i,由于i=4,不满足条件,跳出循环,直接输出换行符。答案选择B选项。

  • 第13题:

    有以下程序

    #include <stdio.h>

    void func(int n)

    { int i;

    for(i=0;i<=n;i++) printf(”*”);

    printf(”#”).

    }

    main( )

    { func(3); printf(”???? ”); func(4); printf(”\n”); }

    程序运行后的输出结果是

    A)****#????***#

    B)***# ????*** *#

    C)**#????*****#

    D)****#????*****#


    正确答案:D
    【答案】D
    【知识点】函数调用中形参与实参的关系
    【解析】第一次调用实参为3,所以形参变量n为3,打印四个*号后打印一个#号。然后在主函数中打印四个?。再次调用func函数,实参值为4,所以形参n的值为4,按照循环,打印五个*号后结束循环,再打印一个#号。

  • 第14题:

    下面程序的输出结果是( )。 include main(){static chara[]="zhao",b[]="juan"; char*pt

    下面程序的输出结果是( )。 include<stdio.h> main() {static chara[]="zhao",b[]="juan"; char*ptr1=a,*ptr2=b; int k; for(k=0;k<4;k++) if(*(ptr1+k)==*(ptr2+k)) printf("%c",*(ptr1+k));}


    正确答案:a
    a 解析:本程序先将指针ptr1和ptr2分别指向字符数组a和b,然后通过指针的移动比较a和b中是否有相同的字符。若有相同的字符则将其输出。

  • 第15题:

    有以下程序:include main( ){int a[3][2]={0} ,( *ptr)[2],i,j;for(i=0;i<2;i++) {ptr

    有以下程序: #include <stdio.h> main( ) { int a[3][2]={0} ,( *ptr)[2],i,j; for(i=0;i<2;i++) {ptr=a+i; scanf("%d",ptr); ptr++;} for(i =0;i<3;i ++ ) } for(j =0;j<2;j ++ ) prinff( "%2d" ,a[i] [j] ); prinff(" \n" ); }}若运行时输入:1 2 3 <回车>,则输出结果是( )。

    A.产生错误信息

    B.10 20 00

    C.12 30 00

    D.10 20 30


    正确答案:B
    解析:程序中a[3)[2]={0}将数组元素全部初始化为0,指针变量ptr指向包含2个元素的一维数组。在第一个for语句的循环体中ptr=a+i;语句用于将指针变量ptr指向第i行的数组元素,通过两次循环,分别给二维数组a的第。行的第1个元素和第1行的第1个元素赋了值1和2,即a[0][0]=1,a[1][0]=2。

  • 第16题:

    ( 9 )有以下程序

    #include <stdio.h>

    main ()

    { int i,j,a[][3]={1,2,3,4,5,6,7,8,9};

    for ( i=0;i<3;i++ )

    for ( j=i;j<3;j++ ) printf ( " %d%,a[i][j] ) ;

    printf ( " \n " ) ;

    }

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


    正确答案:

  • 第17题:

    ( 11 )有以下程序

    #include <stdio.h>

    main ()

    { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

    int b[3]={0},i;

    for ( i=0;i<3;i++ ) b[i]=a[i][2]+a[2][i];

    for ( i=0;i<3;i++ ) printf ( " %d " ,b[i] ) ;

    printf ( " \n " ) ;

    }

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


    正确答案:

  • 第18题:

    以下程序的输出结果是main(){inti;for(i=1;i<6;i++){if(i%2){printf(""#"");continue;}printf(""*"");}printf(""/n"");}

    • A、#*#*#
    • B、#####
    • C、*****
    • D、*#*#*

    正确答案:A

  • 第19题:

    单选题
    有如下程序 #include  main()  {  int i, *ptr;  int array[5] = {5,3,1};  for (ptr=array, i=0; i<5; i++, ptr++)  {   if (*ptr == 0)    putchar('X');   else    putchar('A' + *ptr);  }  printf(""); } 程序运行后的输出结果是(  )。
    A

    FDBXX

    B

    FFFXX

    C

    FDBBB

    D

    ABCDE


    正确答案: A
    解析:
    对数组进行初始化时,如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C语言将自动对余下的元素赋初值,即array={5,3,1,0,0}。程序执行过程为:执行for循环,将数组首地址赋给指针ptr,依次遍历每一个元素,如果数组元素为0则输出'X',如果不为0则按照字母表输出字符'A'后第array[i]个字符。程序运行后的输出结果为:FDBXX,答案选择A选项。

  • 第20题:

    单选题
    有以下程序: #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选项。

  • 第21题:

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

    2,3,4,5,

    B

    3,4,5,6,

    C

    3,4,2,2,

    D

    1,2,0,0,


    正确答案: A
    解析:
    本题程序执行过程为:调用change函数,将数组array={1,2,0,0,0}首地址传入函数,函数实现将数组每个元素加2,arrray={3,4,2,2,2}。依次输出数组前4个元素为3、4、2、2。答案选择D选项。

  • 第22题:

    单选题
    有以下程序:#include main(){ char *a[]={abcd,ef,gh,ijk}; int i; for(i=0;i<4;i++)printf(%c,*a[i]);}程序运行后的输出结果是(  )。
    A

    aegi

    B

    dfhk

    C

    abcd

    D

    abcdefghijk


    正确答案: C
    解析:
    char *a[]定义了一个指向数组的指针。由题中初始化结果得:*a[0]="abcd",a[1]="ef",a[2]="gh",a[3]="ijk",但是在输出语句时要求输出的格式是%c,为一个字符,所以每个元素输出第一个字符,即aegi。答案选择A选项。

  • 第23题:

    单选题
    有以下程序: #include  main() {  char a[4][4]={' '};  int i,j;  for(i=0;i<4;i++)  {   a[i][0]=a[i][3]='#';   for(j=1;j<3;j++)   {    a[0][j]=a[3][j]='#';    if((i!=0)&&(i!=3))a[i][j]='o';   }  }  for(i=1;i<3;i++)  {   for(j=0;j<4;j++)    printf("%2c",a[i][j]);   printf("");  } } 程序的运行结果是(  )。
    A

    # o o #<换行> # o o #

    B

    # # # #<换行> # o o #

    C

    # o o #<换行> # # # #

    D

    # # # #<换行> # # # #


    正确答案: A
    解析:
    程序的执行过程为:定义4行4列二维数组字符a并且初始化为a[0][0]=' ',其他元素均为0。执行for循环将数组第一列和第四列赋值为'#'。执行for循环将数组第一行和第四行的第二个到第三个元素赋值为'#',然后将剩余元素全部赋值为'o'。此时矩阵为{{#,#,#,#}, {#,o,o,#}, {#,o,o,#}, {#,#,#,#}}。之后输出矩阵第二行与第三行元素,答案选择A选项。