有以下程序#nclude<stdio.h>#include<string.h>main(){ char a[5][10]={"china","beijing","you","tiananmen","welcome"};int i,j;char t[10];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(strcmp(a[i],a[j])>0){strcpy(t,a[i]);strcpy(a[i],a[j]);strcpy(a[j],t);}puts(a[3]);}程序运行后的输出

题目

有以下程序

#nclude<stdio.h>

#include<string.h>

main()

{ char a[5][10]={"china","beijing","you","tiananmen","welcome"};

int i,j;char t[10];

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

for(j=i+1;j<5;j++)

if(strcmp(a[i],a[j])>0)

{strcpy(t,a[i]);strcpy(a[i],a[j]);strcpy(a[j],t);}

puts(a[3]);

}

程序运行后的输出结果是

A.beijing

B.china

C.welcome

D.tiananmen


相似考题
更多“有以下程序#nclude&lt;stdio.h&gt;#include&lt;string.h&gt;main(){char a[5][10]={"china","bei ”相关问题
  • 第1题:

    有以下程序

    main( )

    {char str[ ][10]={"China","Beijing"},*p=str;

    printf("%s\n",p+10);

    }

    程序运行后的输出结果是

    A.China

    B.Bejing

    C.ng

    D.ing


    正确答案:B
    解析:本题中str定义为一个二维字符数组,即为str[2]  [10],也可以用str[0]..sr[19]来索引所有的字符值,p指向这个数组的首指针,那么p+10指向这个数组第二维的首指针,所以输出字符串为Beijng。

  • 第2题:

    有以下程序:include < stdio. h >main( ){ehar str[ ] [10] = { "China" ," Beijing" } , * p =

    有以下程序: #include < stdio. h > main( ) { ehar str[ ] [10] = { "China" ," Beijing" } , * p = str[o]; printf( "% s \n", p + 10); }程序运行后的输出结果是( )。

    A.China

    B.Beijing

    C.ng

    D.ing


    正确答案:B
    解析:C语言中二维数组是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。此题二维数组str[][10]第1行的前5个元素为'C','h','i','n','a',第6个元素为'\0',后4个元素为空字符。紧接着内存单元存放数组第2行的元素,即从str[1][0]到str[1][9]分别为'B','e','i','j','i','n','g',第8个元素为'\0',后两个元素为空字符。执行*p=str[0]后,指针p就指向了二维数组str的首地址,p+10指向从首地址依次向后的第11个存储单元即字符,B,的地址,所以输出Beijing,故答案为B。

  • 第3题:

    有以下程序:include include main(){char *p[10]={"abc","aabdfg","dcdbe"

    有以下程序: #include <stdio.h> #include <string.h> main() { char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"}; printf("%d\n",strlen(p[4])); } 执行后的输出结果是( )。

    A.2

    B.3

    C.4

    D.5


    正确答案:A
    解析:p是由10个指向字符型数据的指针元素组成的指针数组,其中前5个数组元素进行了初始化。p[4]="cd",strlen(str)是统计字符串str中字符的个数(不包括终止符'\0'),输出结果为2。

  • 第4题:

    有以下程序 include main() { FILE*pf, char *s1="China",

    有以下程序 #include <stdio.h> main() { FILE*pf, char *s1="China",*s2="Beijing"; pf=fopen("abc.dat","wb+"); fwrite(s2,7,1,pf); rewind(pf); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf); } 以上程序执行后abc.dat文件的内容是______。

    A.China

    B.Chinang

    C.ChinaBeijing

    D.BeijingChina


    正确答案:B
    解析:fwrite(buffer,size,count,fp);:buffer是一个指针,用于指向输出数据存放的内存区域的起始地址,size是要输出的字节数,count是要输出大小为size个字节的数据块的个数。fp是文件指针。fwrite函数的功能是对中所指向的文件存入 count次,每次存放一个大小为size的数据块,将存入的数据块存到buffer指向的内存区,如果buffer内存区有数据,则将其覆盖。本题中第一次调用fwrite函数是向文件中写入s2的值“Beijing”,第二次调用fwrite函数是向文件中写入s1的值“China”,并将先前的“Beijing”的前几个字符覆盖,得到“Chinang”。

  • 第5题:

    有以下程序: main() { char str[][10]={"China","Beijing"),*p=str; printf("%s\n",p+10); } 程序运行后的输出结果是( )。

    A.China

    B.Beijng

    C.ng

    D.ing


    正确答案:B
    解析:本题中首先定义了一个字符串数组并初始化,初始化后使得str[0]="China",str[1]="Beijng",然后定义一个指针变量p并让其指向str,而在该二维数组中定义每个字符串的长度为10,所以p+10将指向str[1],因此最后输出*(p+10)的值为Beijng。所以,4个选项中选项B符合题意。

  • 第6题:

    【单选题】以下四种说法中,正确的是________。(第7章 指针程序设计)

    A.char *a="china"; 等价于 char *a; *a="china";

    B.char str[]={"china"}; 等价于 char str[10]; str[]={"china"};

    C.char *s="china"; 等价于char *s; s="china";

    D.char a[4]="abc",b[4]="abc"; 等价于 char a[4]=b[4]="abc";


    反应速度直接取决于反应温度;加氢裂化反应器中催化剂床层总温升是转化率的标志;原料性质不同,一般反应温度也不相同