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

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

1,0,2,0,0,9,

B

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

C

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

D

1,2,0,1,4,1,


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

    C语言数组输出间隔

    #include <stdio.h>void main(){ void sort(int array[],int n); int a[10],i; printf("enter the array:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); sort(a,10); printf("The sorted array:\n"); for(i=0;i<10;i++) printf("%d",a[i]); printf("\n");}void sort(int array[],int n){ int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(array[j]<array[k]) k=j; t=array[k];array[k]=array[i];array[i]=t; }}程序呢,就是这个了。谭老爷子书上的例题,和书上一样,然后输入:5 7 -3 21 -43 67 321 33 51 0 然后从小到大排好后输出,书上他们之间从小到大有间隔,但是我运行了,没有间隔。。。。( ⊙o⊙ )?咋解决?????来高手解答。。。我运行后是:-43-305721335167321


    #include <stdio.h> void main() { void sort(int array[],int n); int a[10],i; printf("enter the array:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); sort(a,10); printf("The sorted array:\n"); for(i=0;i<10;i++) printf("%d\t",a[i]);//在这加一个\t就行了 printf("\n"); }

  • 第2题:

    有以下程序

    inculde <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]);

    iI ++;

    }

    }

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


    正确答案:135
    135 解析:当i=0时,k[0]=&a[0];当i=1时,k[1]=&a[2];当i=2时,k[2]=&a[4],则打印结果为135。

  • 第3题:

    有以下程序: include main() {FILE *fp; int i,k,n; fp=fopen("data

    有以下程序: #include <stdio.h> main() {FILE *fp; int i,k,n; fp=fopen("data.dat","w+"); for(i=1;i<6;i++) {fprintf(fp,"%d ",i); if(i%3==0) fprintf(fp,"\n"); } rewind(fp); fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n); fclose(fp); } 程序运行后的输出结果是 ______。

    A.0 0

    B.123 45

    C.1 4

    D.1 2


    正确答案:D
    解析:语句“fprintf(fp,"%d ",i)”的作用是将变量i的值按“%d”的格式输出到中指向的文件上;  “rewind(fp)”的作用是使指针重新返回文件的开头:“fscanf(fp,"%d%d",&k,&n)”的作用是将磁盘文件中的数据送给变量k,n。

  • 第4题:

    下列程序执行输出的结果是______。 include f (int a) {int b=0;static c=7;a=c++; b++

    下列程序执行输出的结果是______。

    include <stdio.h>

    f (int a)

    { int b=0;

    static c=7;

    a=c++; b++;

    return (a);

    }

    main()

    { int a=2,i,k;

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

    k=f(a++);

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

    }


    正确答案:8
    8 解析:第1次for循环,i=0,调用函数f(2),然后将a的值加1,在f()函数中,变量c为static类型,所以c=8;第2次for循环, i=1,调用函数f(3),然后将a的值加1,调用函数f(3)时,a=c++=8,所以k=8。

  • 第5题:

    有以下程序 include void fun(int a[],int n) { int i,t; for(i=0;

    有以下程序 #include <stdio.h> void fun(int a[],int n) { int i,t; for(i=0;i<n/2;i++) {t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t;} } main() {int k[10]={1,2,3,4,5,6,7,8,9,10},i; fun(k,5); for(i=2;i<8;i++) printf("%d",k[i]); printf("\n"); } 程序的运行结果是______。

    A.345678

    B.876543

    C.1098765

    D.321678


    正确答案:D
    解析:在主函数中,定义了一维数组k,并通过调用fun函数将形参数组a指向实参数组k所在的存储单元,这样,a和 k共用同一存储单元,所以对数组a的元素值的改变相当于对相应数组k的元素值的改变。在fun函数中,通过for循环对数组元素a[0]与a[4]、a[1]与a[3]的值分别作了交换,也即相当于主函数中k[0]与k[4]、k[1]与k[3]的值分别作了交换,此时k中各元素的值为5,4,3,2,1,6,7,8,9,10,故输出k[2]到k[7]的值为321678。

  • 第6题:

    有以下程序:includeint fun(int*k){int b=0;b=*k+b:return(B);}main(){int a[10]={1,2

    有以下程序: #include<stdio.h> int fun(int*k) {int b=0; b=*k+b: return(B);} main() {int a[10]={1,2,3,4,5,6,7,8},i; for(i=2;i<4;i++){printf("%d",fun(&a[i]));} printf("\n"); } 程序运行后的输出结果是( )。

    A.10 12

    B.8 10

    C.3 4

    D.10 28


    正确答案:C

  • 第7题:

    下述程序的输出结果是()。includevoid main(){int a[20],*p[4];int i,k=0;for(i=0;i<20

    下述程序的输出结果是( )。 #include<stdio.h> void main() {int a[20],*p[4]; int i,k=0; for(i=0;i<20;i++) a[i]=i; for(i=0;i<4;i++) p[i]=&a[i*i+1]; for(i=0;i<4;i++) {k=k+*p[i];} printf("%d",k); }

    A.10

    B.18

    C.6

    D.数组元素引用不合法,输出结果不定


    正确答案:B
    解析:第一个for循环,给数组a的20个元素分别赋值0~19;第二个for循环,给数组p赋值,p[0]=a[1]=1,p[1]=a[2]=2,p[2]=a[5]=5,p[3]=a[10]=10;第三个for循环,将数组p中元素的值进行累加,k=1+2+5+10=18。

  • 第8题:

    有以下程序 #include<stdio.h> int a=1; intf(int c) {static int a=2: c=c+1: return(a++)+C; } main ( int i,k=0; for(i=0;i<2;i++){int a=3;k+=f(a);} k+=a: printf("%d\n",k); } 程序运行结果是( )。

    A.14

    B.15

    C.16

    D.17


    正确答案:A
    在主函数中,k的初值为0,首先调用函数f(3),返回值为6,k的值变为6,而函数intfun(intc)中的局部静态变量a等于3。第二次调用函数f(3)时,返回值为7,所以k=6+7=13。退出循环语句,k再加上全局变量a的值l,其最终的值为14。

  • 第9题:

    ( 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 】 。


    正确答案:

  • 第10题:

    单选题
    有以下程序:#include int sum(int *array,int len){ if(len == 0)  return array[0]; else  return array[0]+sum(array+1,len-1);}main(){ int i=1,j=3; printf(%d,,i++); {  int i = 0;  i+=j*2;  printf(%d,%d,,i,j); } printf(%d,%d,i,j);}程序运行后的输出结果是(  )。
    A

    1,6,3,1,3

    B

    1,6,3,2,3

    C

    1,6,3,6,3

    D

    1,7,3,2,3


    正确答案: B
    解析:
    程序执行过程为:输出i=1,之后i自增,得i=2;然后执行复合语句,赋值i=0,执行语句i+=j*2;得i=6;输出i=6,j=3;花括号内的i的作用域仅限于该花括号内,在括号外的i为程序第四行定义的i,这两个i属于不同的变量。之后再输出i=2,j=3。答案选择B选项。

  • 第11题:

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

  • 第12题:

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

  • 第13题:

    有以下程序: include main ( ) int i;for(i =0;i <3 ;i ++ )switch (i)case 0: printf

    有以下程序: #include <stdio.h> main ( ) int i; for(i =0;i <3 ;i ++ ) switch (i) case 0: printf(" % d" ,i); case 2: printf(" % d" , i); default: printf( "% d" , i);程序运行后的输出结果是( )。

    A.22111

    B.21021

    C.122

    D.12


    正确答案:C
    解析:程序中没有使用break终止switch语句的执行。当i:0时,执行第一个case语句,因为它后面没有break,所以一直到执行完default语句结束,输出3个0,再执行下一循环。所以只有选项C)正确。

  • 第14题:

    有以下程序:include using namespace std;int main ( ){ int n[3],i,j,k = 2; for(i

    有以下程序: #include <iostream> using namespace std; int main ( ) { int n[3],i,j,k = 2; for(i = 0;i<k;i++) n[i] = O; for(i = O;i<k;i++) { for(j = O;j<k;j++) n[j] = n[i] + 1; } cout<<n [0 ] <<end1; return 0; } 上述程序运行后,输出结果是( )。

    A.0

    B.1

    C.2

    D.3


    正确答案:D
    解析:本题考核数组的定义、初始化及其使用。根据程序逐步分析:程序首先给数组n的所有元素赋初值0,然后执行一个嵌套的循环结构。嵌套循环的执行过程如下:①i=0时,j分别取值0、1,使得n[0]、n[1]的值分别变1、2,内层循环结束。②i=1时,对外层循环进行判断,符合循环条件,执行内层循环,j分别取值0、1,使得n[0]、n[1]的值变为3、3,退出内层循环。③i=2时,判断外层循环,不再符合循环条件,退出外层循环,执行cout语句,输出n[0]的值为3。

  • 第15题:

    有以下程序 include int a=1; int f(int c) { stati

    有以下程序 #include <stdio.h> int a=1; int f(int c) { static int a=2; c=c+1; return (a++) + c; } main() { int i, k=0; for(i=0;i<2;i++) { int a=3; k += f(a); k +=a; printf("%d\n",k); }

    A.14

    B.15

    C.16

    D.17


    正确答案:A
    解析:静态局部变量的作用域跟一般局部变量相同,都是从声明处开始到声明所在函数或语句块结束为止。但静态局部变量的生存周期却是从第1次执行到该静态局部变量的声明语句时起,直到程序结束。而—般局部变量的生存周期到离开它的作用域时就结束了。本题的f()函数中static int a=2;语句就声明了一个静态局部变量a,并初始化为2。主函数中,通过一个for循环连着调用了2次f()函数。两次调用形参c都为3,f()函数中让c增1变为4,然后输出(a++) +c,第1次调用a为2,所以输出结果为3+4=6,而第2次调用a被上次调用时的++运算符增1,所以为3,输出结果为3+4=7。所以主函数for循环结束后,k的值是13,下面一条k+=a;语句中的a是全局变量a,值为1。故最终输出结果是14,应该选择 A。

  • 第16题:

    下列程序执行后输出的结果是()includef(int A){ int b=0;static c=3;a=c++,b++;return

    下列程序执行后输出的结果是( ) #include<stdio.h> f(int A) { int b=0; static c=3; a=c++,b++; return(A) ; } main() { int a=2,i,k; for(i=0;i<2;i++) k=f(a++); printf("%d\n",k); }

    A.3

    B.0

    C.5

    D.4


    正确答案:D

  • 第17题:

    下面程序运行后的输出结果是( )。 include main() {int a[]={1,2,3,4,5,6},*k[3],i=1; w

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

    include<stdio.h>

    main()

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

    while(i<4)

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

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

    i++;

    }

    }


    正确答案:246
    246 解析:在程序中定义了一维数组a和指针数组k,在while循环语句中,当i等于1时,k[0]的等于a[1]的地址,所以输入a[1]的值为2。当i等于1时,k[1]的等于a[3]的地址,所以输入a[3]的值为4。当i等于3时,k[2]的等于a[5]的地址,所以输入a[5]的值为6。所以此空应该填写246。

  • 第18题:

    下列程序执行输出的结果是()。 include f(int a) {int b=0; static c=3; a=C++;b++; re

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

    #include<stdio.h>

    f(int a)

    { int b=0;

    static c=3;

    a=C++;b++;

    return(a);

    }

    main()

    { int a=2,i,k;

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

    k=f(a++);

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

    }

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:本题考查函数调用时的参数传递。在函数调用时,static变量在函数调用结束后所做的所有变化均保持(即上次调用结束时的值)。
      在主函数中,第一次循环,i=0,调用k-f(a++)=f(2),调用完之后才将a加1,a变为3,在f(2)中,先将c=3赋值给a返回,然后将c加1,得到k=a=3,c=4。
      第二次循环,i=1,调用k=f(a++)=f(3),调用完之后才将a加1,a变为4,在f(3)中,先将c=4赋值给a返回,然后将c加1,得到k=a=4,c=5。

  • 第19题:

    以下程序的输出结果是#include <conio.h>#include <stdio.h>#define M 100void fun(int m, int *a, int *n){ int i,j=0; for(i=1;i<=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j;}main(){ int aa[M],n,k; clrscr(); fun(100,aa,&n); for(k=0;k<n;k++) if((k+1)%20==0)printf("\n"); else printf("%d",aa[k]); printf("\n"); }


    正确答案:77
    在本题中,程序首先定义一个宏M,然后定义一个fun函数,函数带有三个形参,分别是一个整型形参m和两个整型指针形参a、n。在函数体中,首先定义两整型变量i和j,并给j赋初值为0,然后执行循环,循环体中首先是一个条件判断语句,如果结果为真,则说明变量i能同时被7和11整除,并将变量i保存到数组中,循环结束后,将数组中元素的个数通过指针变量n进行返回。通过分析可以知道,fun函数的作用是求取1到m中能同时被7和11整除的整数,并将结果保存到数组a中。
    在主函数中,首先定义了两个整型变量和一个整型数组aa,然后调用clrscr()函数对文本模式窗口进行清除操作。接着调用fun函数,根据上面我们对fun函数的分析,要计算1~100之间能同时被7和11整除的整数,很显然,这样的数只有77一个,那么此时数组aa中只有一个元素为77,而n的值是1。
    接着执行for循环,从程序中不难看出循环的作用是将数组aa中的元素按一定的规则输出,其规则为每行最多只能输出20个值。结合上面的分析,数组aa中只有一个元素为77,因此,本题程序的最终输出结果为77。

  • 第20题:

    有以下程序:includemain(){char k; int i; for(i=1;i<3;i++) {scanf("%c",&k);swi

    有以下程序: #include <stdio.h> main() { char k; int i; for(i=1;i<3;i++) { scanf("%c",&k); switch(k) { case '0': printf("another\n"); case '1': printf("number\n"); } { } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是( )。

    A.another number

    B.another number another

    C.another number

    D.number number


    正确答案:C
    解析:本题中没有使用break终止switch语句的执行,当k为'0'时,执行完case'0'后的输出后将继续执行case'1'后的输出;当k为'1'时,执行case'1'后的输出。

  • 第21题:

    有以下程序

    #include <stdio.h>

    int a=1;

    int f(int

    C.

    { static int a=2;

    c=c+1;

    return (a++)+c;

    }

    main()

    {int i,k=0;

    for(i=0;i<2;i++) {int a=3;k+=f(

    A.; }

    k+=a;

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

    }

    程序的运行结果是( )。

    A.14

    B.15

    C.16

    D.17


    正确答案:A

  • 第22题:

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

  • 第23题:

    单选题
    有以下程序:#include void fun(int *x,int s,int n){ int i; for(i=s;i>=n;i--)  *(x+i+3)=*(x+i);}main(){ int m[]={0,1,2,3,4,5,6,7,8,9},k; fun(m,10-4,3); for(k=0;k  printf("%d",m[k]);}程序的运行结果是(  )。
    A

    0123456345

    B

    0123453456

    C

    0123456666

    D

    0123454569


    正确答案: C
    解析:
    程序的执行过程为:定义数组m,并为其赋初值,数组长度为10。调用函数fun(m,6,3)。函数实现对数组m[6]~m[9]的重新赋值,令m[9]=m[6],m[8]=m[5],m[7]=m[4],m[6]=m[3],for循环结束之后数组为m= {0,1,2,3,4,5,3,4,5,6}。依次输出数组元素,答案选择B选项。