有以下程序#include <stdio.h>#include <string.h>void fun(char s[][10],int n){ char t;int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)/* 比较字符串的首字符大小,并交换字符串的首字符 */if (s[i][0] > s[j][0]) {t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;}}main(){ char ss[5][10]={"bcc","bbcc","xy",

题目

有以下程序

#include <stdio.h>

#include <string.h>

void fun(char s[][10],int n)

{ char t;int i,j;

for(i=0;i<n-1;i++)

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

/* 比较字符串的首字符大小,并交换字符串的首字符 */

if (s[i][0] > s[j][0]) {t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;}

}

main()

{ char ss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc"};

fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);

}

程序运行结果是

A)xy,aaaacc

B)aaaacc,xy

C) xcc,aabcc

D) acc,xabcc


相似考题
参考答案和解析
正确答案:D
更多“有以下程序#include &lt;stdio.h&gt;#include &lt;string.h&gt;void fun(char s[][10],int ”相关问题
  • 第1题:

    有以下程序 include void fun(char *t, char *s) { whil

    有以下程序 #include <stdio.h> void fun(char *t, char *s) { while(*t!=0) t++; while( (*t++ = *s++ )!=0 ); main() { char ss[10]="acc",aa[10]="bbxxyy"; fun(ss, aa); printff"%s,%s\n", ss,aa); 程序的运行结果是

    A.accxyy, bbxxyy

    B.acc, bbxxyy

    C.accxxyy, bbxxyy

    D.accbbxxyy, bbxxyy


    正确答案:D
    解析:函数fun()中,前一个while循环的作用是:如果形参指针t所指内容不为0,则让t增1,直到它指向0。后一个 while循环的作用是:将s所指内容赋给t所指地址,然后两者同时增1,直到赋给t的内容为0。由此可见,函数fun()的作用就是将形参s所指字符串连接到形参t所指字符串末尾,相当于库函数中的strcat()。主函数中使用fun()将数组aa中的字符串连接到了数组ss中原有字符串之后,所以执行完后,ss中的字符串为"accbbxxyy"。故最终输出的结果是:accbbxxyy,bbxxyy,应该选择D。

  • 第2题:

    有以下程序 include include int fun(int n) {int *

    有以下程序 #include <stdio.h> #include <stdlib.h> int fun(int n) {int *p; p=(int*)malloc(sizeof(int)); *p=n; return *p; } { int a; a=fun(10); printf("%d\n",a+fun(10)); } 程序的运行结果是______。

    A.0

    B.10

    C.20

    D.出错


    正确答案:C
    解析:malloc(sizeof(int))的作用是开辟一个长度为sizeof(int)存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了—个整型的指针变量p。然后执行语句“*p=n”,使得*p的值为10,并通过返回此值,在主函数中输出a+10的值,即输出20。

  • 第3题:

    设有以下函数:

    voidfun(intn,char}s){……}

    则下面对函数指针的定义和赋值均正确的是( )。

    A.void(*pf)(int,char);pf=&fun;

    B.void+pf( );pf=fun;

    C.void*pf( );*pf=fun;

    D.void(*pf)(int,char*);pf=fun;


    正确答案:D
    函数的参数可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的人口地址,指向函数的指针应该定义为void(+pf)()。如果定义为void·pf(),则表示函数pf返回值为一个基类型为void的指针。因此D选项正确。

  • 第4题:

    有以下程序includemain(){int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t);}程序运行后的

    有以下程序 #include<stdio.h> main() { int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t); } 程序运行后的输出结果是______。

    A.21

    B.11

    C.6

    D.1


    正确答案:A
    解析:本题主要考查了C语言的逻辑运算符,先将变量a,b的值转换为2进制数,a=00000101,b=00000001,a先左移 2位结果为00010100,再与b按位或运算,结果为00010101,转换为十进制数为21,因此,选项A是正确的。

  • 第5题:

    设有以下函数:

    void fun(int n,char*$s){……}

    则下面对函数指针的定义和赋值均正确的是

    A.void(*pf)( );pf=fun;

    B.void*Pf( );pf=fun;

    C.void*pf( ); *pf=fun;

    D.void(*pf)(int,char);nf=&fun;


    正确答案:A
    解析:函数指针的定义形式是:数据类型标识符(*指针变量名)( )。void(*pf)( )定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名fun赋给pf即可。所以正确答案为选项A)。

  • 第6题:

    21、以下程序执行后的结果为 。 #include "stdio.h" #include <string.h> void fun(char *s) { char a[10]; strcpy(a,"string"); s=a; } main() { char *p="gao"; fun(p); printf("%s\n",p); }

    A.gao

    B.结果不确定

    C.str

    D.string


    emoclew emoclew