阅读下面程序,则程序段的功能是 #include"stdio.h" main() { int c[]={23,1,56,234,7,0,34},i,j,t; for(i=1;i<7;i++) { t=c[i];j=i-1; while(j>=0 && t>c[j]) { c[j+1]=c[j];j--;} c[j+1]=t;} for(i=0;i<7;i++) printf("%d",c[i]); putchar('\n');}A.对数组元素的升序排列B.对数组元素的降序排列C.对数组元素的倒序排列D.对

题目

阅读下面程序,则程序段的功能是 #include"stdio.h" main() { int c[]={23,1,56,234,7,0,34},i,j,t; for(i=1;i<7;i++) { t=c[i];j=i-1; while(j>=0 && t>c[j]) { c[j+1]=c[j];j--;} c[j+1]=t;} for(i=0;i<7;i++) printf("%d",c[i]); putchar('\n');}

A.对数组元素的升序排列

B.对数组元素的降序排列

C.对数组元素的倒序排列

D.对数组元素的随机排列


相似考题
更多“阅读下面程序,则程序段的功能是#include"stdio.h"main(){ int c[]={23,1,56,234,7,0,34},i,j,t;f ”相关问题
  • 第1题:

    下列程序的输出结果是()。includemain(){char a[]={'a','b','c','d','e','f','\0'};int

    下列程序的输出结果是( )。 #include<stdio.h> main() { char a[]={'a','b','c','d','e','f','\0'}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d",i,j); }

    A.7,7

    B.7,6

    C.6,6

    D.6,7


    正确答案:B
    解析: sizeof()函数的功能是返回字符串所占的字节数,strlen()函数的功能是返回字符串的长度,其中 '\0'是一个转义字符,它占存储空间,但不计入串的长度。

  • 第2题:

    以下程序的输出结果是【 】。include main() {int i,j,sum; for(i=3;i>=-1;i-) (sum=0; fo

    以下程序的输出结果是【 】。

    include<stdio.h>

    main()

    {int i,j,sum;

    for(i=3;i>=-1;i-)

    (sum=0;

    for(j=1;j<=i;j++) sum+=i*j;

    }

    printf("%d\n,sum);

    }


    正确答案:√
    1 解析:本题考查的是for循环嵌套。外循环i变量从3递减到1,内循环变量j在每轮外循环的作用下从1递增到i,并在每轮外循环结束时,通过内循环求得sum的值,但由于外循环体的第一条语句是将变量sum初始化为0,所以每轮外循环结束时求得的sum值均被下一轮外循环执行时重新初始化为0,只有在最后一轮,当i=1时,内循环求得stan=1,跳出内循环,i的值减1变为0,不满足i>=1这个条件,结束外循环,此时输出sum的值为1。

  • 第3题:

    有以下程序:include void f(int a[],int i, int j){int t; if(i

    有以下程序: #include <stdio.h> void f(int a[],int i, int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } main() { int i,aa[5]={1,2,3,4,5}; f(aa,0,4); for(i=0;i<5;i++) printf("%d,",aa[i]);printf("\n"); } 执行后的输出结果是( )。

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

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

    C.1,2,3,4,5,

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


    正确答案:A
    解析:f函数的功能是通过递归调用实现数组中左右部分相应位置数据的交换,即数组中第一个元素与最后一个元素调换位置,第二个元素与倒数第二个元素调换位置,以此类推。

  • 第4题:

    以下程序的输出结果是______。include void swap(int *a, int *b){ int *t;}{ int i=3,j

    以下程序的输出结果是______。

    include <stdio.h>

    void swap(int *a, int *b)

    { int *t;

    }

    { int i=3,j=5,*p=&i,*q=&j;

    swap(p,q); printf("%d %d\n",*p,*q);


    正确答案:

  • 第5题:

    有以下程序 include main() { int i,j,m=55; for(i=1;i<=3;i++)

    有以下程序 #include <stdio.h> main() { int i,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++) m=m%j; printf("%d\n",m); } 程序的运行结果是

    A.0

    B.1

    C.2

    D.3


    正确答案:B

  • 第6题:

    以下程序段给数组所有的元素输入数据,请选择正确答案填入。include main(){int a[10],j

    以下程序段给数组所有的元素输入数据,请选择正确答案填入。#include <stdio.h>main(){ int a[10],j=0; while(i<10)scanf("%d", ______ ); : :}

    A.a+(i++)

    B.&a[i+1]

    C.a+ i

    D.&a[++i]


    正确答案:A
    解析:a就是数组a的首地址,而a+x是数组中第x个元素的地址,所以在四个选项中,选项B和C只能输入一个数据,选项D不能给a[0]输入数据,只有A可以完成给数组所有的元素输入数据的任务。

  • 第7题:

    以下程序的输出结果是( )。 include main() {int i=10,j=0; do {j=j+i; i--; }while(i>5

    以下程序的输出结果是( )。 include<stdio.h> main() {int i=10,j=0; do {j=j+i; i--; }while(i>5); printf("%d\n",j); }


    正确答案:40
    40 解析:分析程序,初始时i=10,j=0,这时do循环中的“i=j+i”

  • 第8题:

    下列程序的输出结果是()。includeint f(int a,int b);main(){int i=2,p,j,k; j=i;k=++i

    下列程序的输出结果是( )。 #include <stdio.h> int f(int a,int b); main() { int i=2,p,j,k; j=i; k=++i; p=f(j,k); printf("%d",p); } int f(int a,int b) { int c; if(a>b)c=1; else if(a= =b) c=0; else c=-1; return(c); }

    A.-1

    B.1

    C.2

    D.编译出错,无法运行


    正确答案:A
    解析:函数调用相当于f(2,3),程序运算结果为-1。

  • 第9题:

    有以下程序include main(){ int i,j; for(i=3;i>=-1;i-) { for(i=1;j<=2;

    有以下程序#include <stdio.h>main(){ int i,j; for(i=3;i>=-1;i-) { for(i=1;j<=2;j++) printf("%d",i+j); printf("\n"); }} 程序的运行结果是______。

    A.234 345

    B.432 543

    C.23 34 45

    D.45 34 23


    正确答案:D
    解析:本题考查的是for循环的嵌套。外层循环变量i从3递减到1,内层循环变量j从1递增到2,具体运行过程如下: i-3:j=1,满足条件j=2,输出i+j=3+1=4;j=2,满足条件j=2,输出i+j=3+2=5;j=3,不满足条件j=2,退出内层循环,执行“printf("\n");”语句,换行。执行i--,此时i=2,满足条件i>=1;
    i=2:j=1,满足条件j=2,输出i+j-2+1=3:j=2,满足条件j=2,输出i+j=2+2=4;j=3,不满足条件j=2,退出内层循环,执行“ptintf("\n");”语句,换行。执行i-,此则i=1,满足条件i>=1;
    i=1:j=1,满足条件j=2,输出i+j=1+1=2;j=2,满足条件j=2,输出i+j=1+2=3;j=3,不满足条件j=2,退出内层循环,执行“printf("\n");”语句,换行。执行i--,此时i=0,不满足条件i>=1,结束外层循环。

  • 第10题:

    下面程序的输出结果是includemain(){int i=010,j=10;Printf(“%d,%d”,++i,j--);}A.11,1

    下面程序的输出结果是 #include<stdio.h> main() {int i=010,j=10; Printf(“%d,%d”,++i,j--); }

    A.11,10

    B.9,10

    C.010,9

    D.10,9


    正确答案:B
    解析:程序中i的值用八进制表示(十进制为8),++i是在变量使用前自身先加1,而j--是在变量使用后自身减1。

  • 第11题:

    阅读下面程序,则程序段的功能是 #include"stdio.h" main() { int c[]={23,1,56,234,7,0,34},i,j,t; for(i=1;i<7;i++) { t=c[i];j=i-1; while(j>=0&&t>c[j]) { c[j+1]=c[j];j--;} c[j+1]=t} for(i=0;i<7;i++) printf("%d",c[i]); putchar('\n');}

    A.对数组元素的升序排列

    B.对数组元素的降序排列

    C.对数组元素的倒序排列

    D.对数组元素的随机排列


    正确答案:B
    解析: 读懂两个循环的关系,是解这个题目的关键,本题的第一个for循环的作用是实现对数组元素的遍历,第二个循环的作用是排序。while(j>=0&&t>c[j]),这个语句是控制排序的关键语句,它即实现了比较两个元素大小的作用,又实现了元素向后移动的作用,不断地把大的数据向前移动,直到找到一个比它小的,或到数据的上界为止。

  • 第12题:

    以下程序的输出结果是( )。 include void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main

    以下程序的输出结果是( )。 include<stdio.h> void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main() {int i=3,j=5,*p=&i,*q=&j; swap(p,q);printf("%d %d\n",*p,*q); }


    正确答案:3 5
    3 5 解析:本题考查函数中形参和实参的传递。在C语言函数中实参和形参传递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap函数的功能是实现两个数的交换,但由于没有返回值,故最终的输出结果为3 5。

  • 第13题:

    阅读下面程序,则程序的执行结果为( )。 include"stdio.h" main() {int a=10; fun(A); printf("%d\n",A);} fun(int x) {x=50;}


    正确答案:10
    10

  • 第14题:

    下面程序的输出结果为【】。 include main() { char a[]="morning",t; int i,j=0; for(

    下面程序的输出结果为【 】。

    include<iostream.h>

    main()

    {

    char a[]="morning",t;

    int i,j=0;

    for(i=1;i<7;i++)

    if(a[j]<a[i])

    j=i;

    t=a[j];

    a[j]=a[7];

    a[7]=a[j];

    cout<<a;

    }


    正确答案:mo
    mo

  • 第15题:

    下列程序的输出结果是【 】。include void swap(int *a, int *B) { int *t; t=a;a=b;b=t;

    下列程序的输出结果是【 】。

    include <stdio.h>

    void swap(int *a, int *B)

    {

    int *t;

    t=a;a=b;b=t;

    }

    main()

    {

    int i=3,j=5,*p=&i,*q=&j;

    swap(p,q);printf("%d %d\n",*p,*q);

    }


    正确答案:3 5
    3 5 解析:本题考查函数中实参和形参的传递,在C语言函数中实参和形参传递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap函数的功能是实现两个数的交换,但没有返回值,故最终的输出结果为3 5。

  • 第16题:

    阅读以下程序,此程序的功能是【】。 include void main() { intn, i, j; for(i=100;i<9

    阅读以下程序,此程序的功能是【 】。

    include<iostream.h>

    void main()

    {

    int n, i, j;

    for(i=100;i<999; i+100)

    for(j=i/100:j<=99;j=j+10)

    {

    n=i+j;

    cout<<" "<<n;

    }

    cout<<"\n";

    }


    正确答案:求100到999的回文数
    求100到999的回文数

  • 第17题:

    下面程序的运行结果是( )。 include main() {char a[80],*p="AbabCDcd"; int i=0,j=0; w

    下面程序的运行结果是( )。 include<stdio.h> main() {char a[80],*p="AbabCDcd"; int i=0,j=0; while(*(p++)!='\0') {if(*p>='a'&&*p<='z'){a[i]=*p;i++;} } a[i]='\0'; puts(A); }


    正确答案:babcd
    babcd 解析:C语言中“\0”表示字符串的结束。程序将p指针指向字符串“AbabCDcd”的首地址,循环开始后若指针不是指向当前字符串的结束标志位,则进入循环体。循环中每次检验字符串中字母是否在'a'与'z'之间,若满足则将当前值赋值给数组a,最后给数组添加字符结束标志。此程序可以筛选出字符串中的小写字母。

  • 第18题:

    有以下程序: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。

  • 第19题:

    有以下程序includeincludevoidfun(char*s[],intn){char*t;int i,j;for(i=0

    有以下程序 #include <stdio.h> #include <string.h> void fun(char *s[],int n) { char *t; int i,j; for(i=0;i<n-1;++) for(j=i+1;j<n;j++) if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i];s[j];s[j]=t;} } main() { char *ss[]={"bcc

    A.xy,aaaacc

    B.aaaacc,xy

    C.bcc,aabcc

    D.aabcc,bcc


    正确答案:A
    解析: 函数fun(char*s[],int n)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行fun(ss,5)语句后,*ss[]={"xy","bcc"," bbcc","aabcc","aaaacc"},ss[0],ss[4]的输出结果为xy,aaaacc。

  • 第20题:

    下面程序的运行结果是includemain(){char a[]="morning",t; int i,j=0; for(i=1;i<7;i

    下面程序的运行结果是 #include<stdio.h> main() { char a[]="morning",t; int i,j=0; for(i=1;i<7;i++) if(a[j]<a[i])j=i; t=a[j]; a[j]=a[7]; a[7]=a[j]; puts[a];}

    A.mrgninr

    B.mo

    C.moring

    D.morning


    正确答案:B
    解析:本题考查了一维数组元素的引用方法。题中数组a为一字符串数组,通过数组首地址和下标可以引用数组中的每个元素。因为字符数组相当于字符串,所以可以用字符串输出函数puts()来输出字符数组中的各个字符。

  • 第21题:

    给定程序中,函数fun()的功能是:使数组中的元素的值缩小5倍。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include<stdio.h>

    include<conio.h>

    float m[10];

    /*************found**************/

    int fun (void)

    {

    int j;

    printf("In subfunc after calling\n");

    for(j=O;j<lO;j++)

    {

    ;

    /*************found**************/

    print ("%f ",m[j]%5);

    }

    }

    main()

    {

    int i;

    printf ("In main before calling\n");

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

    {

    m[i]=i+20;

    printf("%f ",m[i]);

    }

    fun();

    printf("\nIn main after calling\n");

    for(i=O; i<10;i++)

    printf("%f ",m[i]/5);

    }


    正确答案:(1)错误:int fun(void) 正确:void fun(void) (2) 错误:printf("%f"m[j]%5); 正确:printf("%f"m[j]/5);
    (1)错误:int fun(void) 正确:void fun(void) (2) 错误:printf("%f",m[j]%5); 正确:printf("%f",m[j]/5); 解析:错误1:函数fun()没有返回值,所以定义函数类型为void。错误2:此处考查的是除法运算符和取余运算符的区别。

  • 第22题:

    下列程序的输出结果是()。 include main() { char a[]= {'a','b','c','d','e','f,'\0'}

    下列程序的输出结果是( )。 #include<stdio.h> main() { char a[]= {'a','b','c','d','e','f,'\0'}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d",i,j); }

    A.7,7

    B.7,6

    C.6,6

    D.6,7


    正确答案:B
    解析:sizeof()函数的功能是返回字符串所占的字节数,strlen()函数的功能是返回字符串的长度,其中,'\0'是一个转义字符,它占存储空间,但不计入串的长度。

  • 第23题:

    有下面程序段 #include"stdio.h" #include"string.h" main() { char a[3][20]={{"china"};{"isa"},{bigcountry!"}}; char k[100]={0},*p=k; int i; for(j=0;j<3;i++) { p=strcat(p,a[i]);} i=strlen(p); printf("%d\n",i);} 则程序段的输出结果是

    A.18

    B.19

    C.20

    D.21


    正确答案:B
    解析:字符串连接函数strcat的调用形式如下:strcat(s1,s2)。此函数用来把s2所指字符串的内容连接到s1所指的字符串后面,并自动覆盖s1串末尾的尾标,函数返回s1的地址值。