更多“main( ){ int a[6]={10,20,30,40,50,60},i;invert(a,0,5);for(i=0;i<6;i++) printf(“%d,”,a ”相关问题
  • 第1题:

    没有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是

    A.for(i=0;i<6;i++) printf("%2d",*(p++));

    B.for(i=0;i<6;i++) printf("%2d",*(p+i);

    C.for(i=0;i<6;i++) printf("%2d",*p++);

    D.for(i=0;i<6;i++) printf("%2d",(*p)++);


    正确答案:D
    解析:本题首先定义了一个一维数组并初始化,接着定义了一个指针变量 p指向数组x。因此可以通过指针p的下移,即每次加1引用数组x中的元素,来指向数组中的每个元素,这样循环6次即可引用数组的每个元素。选项A、B和选项C满足要求,而在选项D中表达式为(*p)++,该表达式是先取*p的值然后将其值加1,而没有将指针下移一位。

  • 第2题:

    有以下程序 main() {int i; for(i=1;i<=40;i++) { if(i++%5=0) if(++i%8=0) printf ("%d",i); } printf("\n"); }

    A.5

    B.24

    C.32

    D.40


    正确答案:C
    解析:在满足for语句条件下,第—个if语句的条件是指i先对5取余后,再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。设可以满足第—个if语句的值为:x,那么可以满足第二个if语句的值为:x+2,转换为方程组:

    x=32,所以答案选C。

  • 第3题:

    有以下程序: void fun(int *a,int i,int i) { int t; if(i<j) { t==a[i];a[i]=a[j];a[i]=t; i++; j--; fun(a,i,j); } } main() { int x[]={2,6,1,8),i; fun(x,0,3), for(i=0;i<4;i++) printf("%2d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。

    A.1268

    B.8621

    C.8162

    D.8612


    正确答案:C
    解析:函数fun()中用了一个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组x,该数组有4个元素,接着调用fun(a,O,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为8、1、6和2,所以,4个选项中选项C符合题意。

  • 第4题:

    有以下程序:includemain(){char c[6];int i=0;for(;i<6;c[i]=getchar(),i++);for(i=0;

    有以下程序: #include<stdio.h> main(){ char c[6]; int i=0; for(;i<6;c[i]=getchar(),i++); for(i=0;i<6; i++)putchar(c[i]); printf("\n"); } 如果从键盘上输入: ab<回车> c<回车> def<回车> 则输出结果为______。

    A.a b c d e f

    B.a b c d

    C.ab c d

    D.abcdef


    正确答案:C
    解析:1.getchar():此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。
    2.putchar():此函数的作用是向终端输出一个字符,也可以输出控制字符。
    本题在输入字符时,ab和c后面的回车符分别赋给了c[2]和c[4],所以,正确答案为C。

  • 第5题:

    以下程序的输出结果是( )。 void fun(int*a,int i,int i) {int t; if(i<i) { t=a[i[;a[i]=a[j];a[j]一t; i++;j--;

    fun(a,i,j); } } main { int K[]={2,6,1,8},i; fun(x,0,3); for(i=0;i<1;i++)printf("%2d",x[i]); printf("\n"); }

    A.1,2,6,8

    B.8,6,2,1

    C.8,1,6,2

    D.8,6,1,2


    正确答案:C
    本题用了函数调用,fun中if语句成立则进行i,j的交换,用到主函势中则为把下标为0、3,1、2互换,因此,当执行完后X的数组为8,1,6,2,故选择C选项。

  • 第6题:

    有以下程序 void fun(int *a,int i,int j) { in t; if(i<j) {t=a[i];a[i]=a[j];a[j]=t; fun(a,++i,--j); } } main() { int a[]={1,2,3,4,5,6},i; fun(a,0,5); for(i=0;i<6;i++) printf("%d",a[i]); } 执行后输出结果是

    A.6 5 4 3 2 1

    B.4 3 2 1 5 6

    C.4 5 6 1 2 3

    D.1 2 3 4 5 6


    正确答案:A
    解析:函数fun()中有3个参数,参数。为一个指针变量,接收的实参可以是数组名,参数i和j分别表示数组元素的下标,当下标i小于下标j时,a[i]和a[j]交换,然后对自身进行调用,可见这是一个递归函数。其实现的功能是把数组a,从下标为i的元素到下标为j的元素之间的所有元素反序存放。在主函数中调用fun()函数,把a数组从a[0]到a[5]之间的所有元素反序存放,最后输出从a[1]到a[5]的值,因此输出的值为6、5、4、3、2、1。

  • 第7题:

    有以下程序: void fun( int *a, int i, int j) { int t; if ( i<j ) { t=a[i];a[i]=a[j];a[j]=t; fun (a,++i,--j); } } main() { int a[]={1,2,3,4,5,6),i; fun(a,0,5) for( i=0; i<6; i++) printf("%d",a[i]); } 执行后的输出结果是( )。

    A.654321

    B.432156

    C.456123

    D.123456


    正确答案:A
    解析:函数fun()中有3个参数,参数a为一个指针变量,接收的实参可以是数组名,参数i和j分别表示数组元素的下标,当下标i小于下标j时,a[i]和a[j]交换,然后对自身进行调用,可见这是一个递归函数。其实现的功能是把数组a从下标为i的元素到下标为j的元素之间的所有元素反序存放。在主函数中调用fun()函数,把a数组从a[0]到a[5]之间的所有元素反序存放,最后输出从a[0]到a[5]的值,因此输出的值为6、5、4、3、2、1,.所以,A选项为所选。

  • 第8题:

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

    A.#*#*#

    B.#####

    C.*****

    D.*#*#*


    正确答案:A
    解析:i从i到5循环5次,i为1时,满足条件,打印输出“#”;i为2时,条件为假,打印输出“*”。也就是说,当i为奇数时,条件为真,程序打印输出“#”,否则,输出:“*”。

  • 第9题:

    设有定义语句: int x[6]={2,4,6,8,5,7), *p=x, i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是( )。

    A.for(i=0;i<;i++) printf("%2d",*(p++));

    B.for(i=0;i<6;i++) printf("%2d",*(p+i));

    C.for(i=0;i<6;i++) printf("%2d",*p++);

    D.for(i=0;i<6;i++) printf("%2d",(*p)++);


    正确答案:D
    解析:本题中首先定义了一个了维数组并初始化,接着定义了一个指针变量p指向数组x。因此可以通过指针p的下移,即每次加1引用数组x中的元素,来指向数组中的每个元素,这样循环6次即可引用数组的每个元素。选项A和C,*和++的优先级相同且都具有右结合性,p++是先使用p的值再对p加1,即先输出*p的值,再将指针下移一位。选项B是取*(p+i)所对应的存储单元中的数据输出,随着i的递增输出x数组的6个元素。选项D中表达式为(*p)++,该表达式是先取*p的值然后将其值加1,而没有将指针下移一位,故选项D不正确。所以,4个选项中选项D符合题意。

  • 第10题:

    有以下程序

    void fun(intā*a,int i,int i)

    { int t;

    if(i<j);

    { t=a[i];a[i]=a[j];a[j]=t;

    fun(a,++i,- -j);

    }

    }

    main( )

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

    fun(a,0,5);

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

    cout<<a[i];

    }

    执行后输出结果是

    A.6 5 4 3 2 1

    B.4 3 2 1 5 6

    C.4 5 6 1 2 3

    D.1 2 3 4 5 6


    正确答案:A
    解析:本题采用递归函数的方式将数组中的元素进行倒置,正确答案为A。

  • 第11题:

    有以下程序: void fun(int *a,int i,int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; i++; j--; fun(a,ij); } } main() { int x[]={2,6,1,8},i; fun(x,0,3); for(i=0;i<4;i++) printf("%2d",x[i]); printf("\"n); } 程序运行后的输出结果是( )。

    A.1 2 6 8

    B.8 6 2 1

    C.8 1 6 2

    D.8 6 1 2


    正确答案:C
    解析:函数fun()中用了—个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组,在定义该数组的时候缺省了定义长度,定义的同时将其初始化赋值,所以该数组的长度为初始化该数组时的元素的个数即4,接着调用fun(a,0,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为8,1,6和2,所以,4个选项中选项C符合题意。

  • 第12题:

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

  • 第13题:

    有以下程序 void fun(int*a,int i,int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; i++; j--; fun(a,i,j); } } main() { int x[]={2,6,1,8},i; fun(x,0,3); for(i=0;i<4;i++) printf("%2d",x[i]); printf("\n"); } 程序运行后的输出结果是

    A.1 2 6 8

    B.8 6 2 1

    C.8 1 6 2

    D.8 6 1 2


    正确答案:C
    解析:函数fun()中用了一个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组,在定义该数组的时候缺省了定义长度,定义的同时将其初始化赋值,所以该数组的长度为初始化该数组时的元素的个数即4,接着调用 fun(a,0,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数 fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为 8,1,6和2。

  • 第14题:

    有以下程序: void fun(int a*a,int i,int i) {int t; if(i<j); {t=a[i];a[i]=a[j];a[j]=t; fun(a,++i,--j); } } main() {inta[]={1,2,3,4,5,6},i; fun(a,0,5); for(i=0;i(6;i++) cout<(a[i]; } 执行后输出结果是( )。

    A.6 5 4 3 2 1

    B.4 3 2 1 5 6

    C.4 5 6 1 2 3

    D.1 2 3 4 5 6


    正确答案:A
    解析: 本题采用递归函数的方式将数组中的元素进行倒置,正确答案为A。

  • 第15题:

    若有以下程序:includeint a[]={2,4,6,8};main(){int i; int *p=a; for(i=0;i<4;i++)a[

    若有以下程序: #include<stdio.h> int a[]={2,4,6,8}; main() { int i; int *p=a; for(i=0;i<4;i++) a[i]=*p; printf("%d\n",a[2]); } 上面程序的输出结果是( )。

    A.6

    B.8

    C.4

    D.2


    正确答案:D
    解析:在C语言中,数组元素的下标是从0开始的。for循环语句中,指针变量p始终指向数组a的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

  • 第16题:

    下列程序的输出结果是______。include main(){ int i=1,j=3; printf("%d,",i++); {int

    下列程序的输出结果是______。#include <stdio.h>main (){ int i=1,j=3; printf("%d,",i++); { int i=0; i+=j*2; printf("%d,%d,",i,j); } printf("%d,%d\n",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

  • 第17题:

    有以下程序 void fun{int *a,int i,int j) { int t; if (i<j) t=a[i] ;a[i]=a[j] ;a[j]=t; fun(a, ++i, --j); } main ( ) { int a[]={1,2,3,4,5,6},i; fun(a,0,5); for (i=0; i<6; i++ ) printf ("%d" , a [i] ); } 执行后输出结果是

    A.6 5 4 3 2 1

    B.4 3 2 1 5 6

    C.4 5 6 1 2 3

    D.1 2 3 4 5 6


    正确答案:A
    解析:本题考核的知识点是指针变量作为函数的参数和递归函数的简单使用。函数fun()中有3个参数,参数a为一个指针变量,接收的实参可以是数组名,参数i和j分别表示数组元素的下标,当下标i小于下标j时,a[i]和a[j]交换,然后对自身进行调用,可见这是一个递归函数。其实现的功能是把数组a,从下标为i的元素到下标为i的元素之间的所有元素反序存放。在主函数中调用fun()函数,把a数组从a[0}到a[5]之间的所有元素反序存放,最后输出从a[0]到a[5]的值,因此输出的值为6、5、4、3,2、1,所以,A选项为所选。

  • 第18题:

    有以下程序void fun(int* a, int i, int j){ int t; if(i<j); { t =a[i] ;a[i]= a[j] ;a[i]= t; fun(a, ++i, --j);}}main(){ int a[i]={1,2,3,4,5,6}, i; fun(a,0,5); for(i=0;i<6; i++) cout<<a[i];}执行后输出结果是

    A.654321

    B.432156

    C.456123

    D.123456


    正确答案:A
    解析:本题采用递归函数的方式将数组中的元素进行倒置,只要能够看出函数fun的功能,即可以得出正确答案为A。

  • 第19题:

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

  • 第20题:

    若有以下程序 include int a[ ]={2,4,6,8}; main( ) { int i; int *p=a; for(i=0;i<4

    若有以下程序

    #include <stdio.h>

    int a[ ]={2,4,6,8};

    main( )

    { int i;

    int *p=a;

    for(i=0;i<4;i++) a[i]=*p;

    printf("%d\n",a[2]);}

    上面程序的输出结果是

    A.6

    B.8

    C.4

    D.2


    正确答案:D
    解析:在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量 p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

  • 第21题:

    有以下程序 void fun(int *a,int i,int j) { int t; if (i<j) { t=a[j]; a[i]=a[j]; a[j]=t; i++; j--; fun(a,i,j); } } main() { int x[]={2,6,1,8},i; fun(x,0,3); for(i:0;i<4;i++) printf("%2d",x[i]); } 程序运行后的输出结果是______。

    A.1 2 6 8

    B.8 6 2 1

    C.8 1 6 2

    D.8 6 1 2


    正确答案:C

  • 第22题:

    下列程序的输出结果是______。 main ( ) { int i; for (i=l;i<6;i++) { if(i%2){printf("#");continue;} printf ("*"); } printf("\n"); }

    A.#*#*#

    B.#####

    C.****

    D.*#*#*


    正确答案:A

  • 第23题:

    以下程序的输出结果是( )。main(){ int i; for(i=0;i<3;i++) switch(i) { case 0:printf(&quo

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

    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.000102

    B.000020

    C.000122

    D.000111


    正确答案:C
    当i=0时,执行switch语句,对应的执行case0,输出0,因为没有break,接着执行case2的语句,又输出一个0,接着执行default语句,再输出一个0,返回i++;i=1时,没有case语句,执行default语句,输出一个1,接着又返回i++;当i=2时执行case2和default语句分别输出一个2,此时又返回i++,i变为3,for循环不成立,终止,最后输出000122。