单选题有以下程序:#include main(){ char b[4][10],c; int i,j; for(i=0;i<4;i++) {  j=0;  while((c=getchar())!=' '&& c!='')b[i][j++]=c;  b[i][j] = '\0'; } printf(%s%s%s%s,b[0],b[1],b[2],b[3]);}程序运行时从第一列开始输入: Peach flower is pink.<回车>则输出结果是(  )。A Peachflowefispink.B P

题目
单选题
有以下程序:#include main(){ char b[4][10],c; int i,j; for(i=0;i<4;i++) {  j=0;  while((c=getchar())!=' '&& c!='')b[i][j++]=c;  b[i][j] = '\0'; } printf(%s%s%s%s,b[0],b[1],b[2],b[3]);}程序运行时从第一列开始输入: Peach flower is pink.<回车>则输出结果是(  )。
A

Peachflowefispink.

B

Peachflowefis pink.

C

Peachflower is pink.

D

Peach flower is pink.


相似考题
更多“单选题有以下程序:#include main(){ char b[4][10],c; int i,j; for(i=0;i4;i++) {  j=0;  while((c=getchar())!=' ' c!='')b[i][j++]=c;  b[i][j] = '\0'; } printf(%s%s%s%s,b[0],b[1],b[2],b[3]);}程序运行时从第一列开始输入: Peach flower is pink.回车则输出结果是(  )。A Peachflowefispink.B Peachf”相关问题
  • 第1题:

    已知C源程序如下: include include void reverse(char S[]){ int C,i,J; f

    已知C源程序如下:

    include<stdio. h>

    include<string. h>

    void reverse(char S[]){

    int C,i,J;

    for(i=0,j=strlen(s)-1;i<j;i++,j++){

    c=s[i];

    s[i]=s[j];

    s[j]=c;

    }

    }

    void getHex(int number,char s[]){

    int I;

    i=0;

    while(number>0){

    if(number%16<10)

    s[i++]=number%16+'0';

    else

    switch(number%16){

    case 10:s[i++]='A';break;

    case 11:s[i++]='B';break;

    case 12:s[i++]='C';break;

    case 13:s[i++]='D';break;

    case 14:s[i++]='E';break;

    case 15:s[i++]='F';break;

    default:printf("Error");break;

    }

    number/=16;

    }

    s[i]:'\o';

    reverse(s);

    }

    int main(){

    unsigned int number;

    int i=0:

    char s[50];

    printf("%s","please input number;\n");

    scanf("%d",&number):

    getHex(number,s);

    i=0;

    while(s[i])

    printf("%c",s[i++]);

    return 0;

    }

    画出程序中所有函数的控制流程图。


    正确答案:流程图
    流程图

  • 第2题:

    有以下程序 include include void fun(char s[][10],int n

    有以下程序 #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 0--i+l; 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
    解析:在函数fun()中有一个两层嵌套的for循环,外循环变量i从0递增到n-2,内循环变量i从i+1循环递增到n-1,这是选择排序算法的标准结构。循环体中因为逆序条件为“s[i][0]> s[j][0]”,所以实现的是升序排序。由此可见,fun()函数实现的功能是对一个二维字符数组前n行的首字符进行升序排序。主函数中定义的二维数组初始化为{"bcc",”bbcc", "xy","aaaacc","aabcc"},通过fun()函数的排序后,结果将为acc","abcc","by", "baaacc","xabcc"}。故最终输出字符串ss[0]和ss[4]的结果为acc,xabcc,应该选择D。

  • 第3题:

    以下程序的输出结果是______。 main() { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) s=10*s+p[i][j]-'\0'; printf("%d\n",s); }

    A.69825

    B.59713

    C.6385

    D.693825


    正确答案:C
    解析:p是指向字符的指针数组。执行第1个循环后,p[0]指向字符数组ch的第1行"6937",p[1]指向字符数组ch的第2行"8254",那么p[0][0]其实就对应着ch[0][0],表示第1行的第1个元素“6”。第2个循环中,外层i循环是控制指针数组p的,内层j循环则是对每一行内的各个元素进行处理,特别注意循环变量j的改变"j+=2"。这样就可以看出是对ch[0][0]、ch[0][2]、ch[1][0]和ch[1][2]进行处理。

  • 第4题:

    以下程序的输出结果是()。includemain(){int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for

    以下程序的输出结果是( )。 #include<stdio.h> main() {int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) s+=a[i][a[j][j]]; printf("%d\n",s); }

    A.3

    B.4

    C.1

    D.9


    正确答案:B
    解析:当外层循环为i时,内层循环i只能取j=i,所以s+=a[i][a[j][j]],其实就是s+=a[i][a[i][i]],当i=0时,s=s+a[0][a[01[0]]=s+a[0][0]=1,当i=1时,s=s+a[1][a[1][1]1=s+a[1][1]=1+1=2,当i=2时,s=s+a[2][a[2][2]]=s+a[2][2]=2+2=4。

  • 第5题:

    以下程序的输出结果是( )。 main { int a[3][3]=“l,2),{3,4),{5,6)},i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++)s+=a[i][j]; printf(”%d\n”,s); }

    A.18

    B.19

    C.20

    D.21


    正确答案:A
    循环的作用是求行下标从1到2列下标从0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。

  • 第6题:

    若有以下程序main(){ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(a[i][j]<0) continue; if(a[i][j]==0) break; s +=a[i][j]; } } printf("%d\n",s);}程序执行后的输出结果是


    正确答案:58
    在本题程序中,首先定义了一个4*4的二维数组a,并进行了初始化操作,然后定义了三个整型变量,i和j分别作为循环变量,而s作用一个记录和的变量被初始化为0。然后开始循环,第一层循环的循环变量i被初始化为0,循环结束条件是i<4,即循环执行四次,而第二层循环同样是4次,总循环此时为4´4=16次,如果逐次循环分析,工作量和花费时间太多,且一不小心容易出错,这种情况下,我们应该找出一个更简便的方法。
    从循环体中的if(a[i][j]<0) continue;我们可以知道,只要数组元素小于0,结束本次循环,即不参与求和运算,由if(a[i][j]==0) break;我们可以知道,只要数组元素等于0,结束本层循环,即同一行的数组元素都不用参加求和运算,从数组a的初始化情况我们可以看到,在第二行的第一个元素为0,即第二行都不参加求和运算,而第三行的第三个元素为0,即该行最后一个元素不参加求和运算。这样,参与求和运算的数组元素必须满足大于0,且其前面的该行元素无0出现。由此可以知道,变量s的最后结果应该为1+2+23+32=58。因此,程序最后的输出结果为58。

  • 第7题:

    如下程序的输出结果是includemain(){ char ch[2)[5]={"6937","8254"},*p[2];int i,j,s

    如下程序的输出结果是 #include<stdio.h> main() { char ch[2)[5]={"6937","8254"},*p[2]; int i,j,s=0; for (i=0;i<2;i++) p[i]=ch[i]; for (i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s);}

    A.69825

    B.63825

    C.6385

    D.693825


    正确答案:C
    解析:通过行指针p来实现数组元素的引用。注意:用格式说明符%s进行整串输入与输出。

  • 第8题:

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

    有以下程序 #include <stdio.h> #include <string.h> void fun(char,*s[],int n) { char *t; int i,j; for(i=0;i<n-1;i++) 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","bbcc","xy","aaaacc","aabcc"}; fun(ss,5); printf("%s,%s\n",ss[0],ss[4]); } 程序的运行结果是

    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。

  • 第9题:

    下面程序的运行结果是()。includevoid delch(char *s){ int i,j;char*a;a=s;for(i=0,j=

    下面程序的运行结果是( )。 #include<stdio.h> void delch(char *s) { int i,j; char*a; a=s; for(i=0,j=0;a[i]!='\0' ;i++) if(a[i]>='0' &&a[i]<='9') { s[j]=a[i]; j++;} s[j]='\0'; } main() { char*item="a34bc"; delch(item); printf("\n%s" ,item);}

    A.abc

    B.34

    C.a34

    D.a34bc


    正确答案:B
    解析:指针a通过数组元素下标来从头逐个的引用字符串item中的字符,判断不是0~9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下34两个字符了。注意:形参为指针变量时,实参和形参之间的数据传递。

  • 第10题:

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

    main( )

    { char s1[40]="country",s2[20]="side";

    int i=0,j=0;

    while(s1[i]!='\0') i++;

    while(s2[j]!='\0') s1[i++]=s2[j++];

    s1[i]=0;

    printf("%s\n",s1);

    }

    A side

    B country

    C sidetry

    D countryside


    正确答案:D

  • 第11题:

    单选题
    有以下程序:#include main(){ char b[4][10],c; int i,j; for(i=0;i<4;i++) {  j=0;  while((c=getchar())!=' '&& c!='')b[i][j++]=c;  b[i][j] = '\0'; } printf(%s%s%s%s,b[0],b[1],b[2],b[3]);}程序运行时从第一列开始输入: Peach flower is pink.<回车>则输出结果是(  )。
    A

    Peachflowefispink.

    B

    Peachflowefis pink.

    C

    Peachflower is pink.

    D

    Peach flower is pink.


    正确答案: B
    解析:
    for循环语句中,通过执行while语句,while的判断条件是输入的字符不为空格和回车,当遇到空格或回车符时,i加一,分别保存在二维数组b的4行中,最终b[0] = "Peach",b[1] = "flower",b[2] = "is",b[3] = "pink.",再通过%s格式控制符,将二维数组b的四行字符串无空格连接输出。答案选择A选项。

  • 第12题:

    单选题
    有以下程序:#include main(){ char b[4][10]; int i; for(i=0;i<4;i++)  scanf(%s,b[i]); printf(%s%s%s%s,b[0],b[1],b[2],b[3]);}执行时若输入:Fig flower is red.<回车>则输出结果是(  )。
    A

    Figflowerisred.

    B

    Figflowefis red.

    C

    Figflower is red.

    D

    Fig flower is red.


    正确答案: A
    解析:
    scanf函数从输入设备按照指定的类型输入对应类型的若干个数据,遇到空格、制表符和回车时读取结束。可知读到第一个空格时b[0]赋值结束,为"Fig",从之后的第一个有效字符'f'读到第二个空格时b[1]赋值结束,为"flower",可知b[2]为is,b[3]为"red."。printf函数格式控制符%s输出字符串,遇到'\0'结束输出。输出结果为“Figflowerisred.”。答案选择A选项。

  • 第13题:

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

    A.18

    B.19

    C.20

    D.21


    正确答案:A

  • 第14题:

    以下程序的输出结果是______。 main() { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j]; printf("%d\n",s); }

    A.18

    B.19

    C.20

    D.21


    正确答案:A
    解析:本题首先定义了一个数组并附初值,然后通过两个for循环计算3、4、5、6的累加值,并用s保存。

  • 第15题:

    有以下程序:include int f(int b[] [4]){int i,j,s=0; for(j=0;j<4;j++) {i=j;if(i>2)

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

    A.12

    B.11

    C.18

    D.16


    正确答案:D
    解析:程序中,当j=0时,i=0,i>2不成立,s+=b[0][0)=1;j=1时,i=1,i>2不成立,s=s+b[1][1]=1+2=3;j=2时,i=2,i>2不成立,s=s+b[2][2]=3+9=12;j=3时,i=3,i>2成立,i=3-j,此时i=0,s=s+b[0][3]=12+4=16;j=4时循环结束。所以最后s值为16。

  • 第16题:

    阅读以下程序: include void main() { static int a[][3]={9,7,5,3,1,2,4,6,8}; int

    阅读以下程序:

    include<iostream.h>

    void main()

    {

    static int a[][3]={9,7,5,3,1,2,4,6,8};

    int i,j,s1=0,s2=0;

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

    for(j=0;j<3;j++)

    {

    if(i==j)s1=sl+a[i][j];

    if(i+j==2)s2=s2+a[i][j];

    }

    cout<<s1<<","<<s2<<endl;

    }

    则该程序的输出结果为【 】。


    正确答案:1810
    18,10

  • 第17题:

    有如下程序includevoid main(){char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;

    有如下程序 #include<iostream.h> void main() {char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) s=10*s+p[i][j]-'0'; cout<<s; return 0; } 该程序的输出结果是( )。

    A.69825

    B.63825

    C.6385

    D.693825


    正确答案:C

  • 第18题:

    下面程序的运行结果是( )。 #inelude<stdio.h> void del(char*s) { int i,j; char*a; a=s: for(i=0,j=0;a[i]!=\0;i++) { if(a[i]>=0&&a[i]<=9) {s[j]=a[i]; j++; } s[j]=\0; } } main { char*s="aa89gggh"; del(s): printf("\n%s",s); }

    A.1

    B.2

    C.3

    D.4


    正确答案:D
    本题中del(char*s)函数实现的功能是:逐个读入S数组中的字符,如果遇到数字,则将数字存在s中,遇到非数字字符则跳过。所以最后输出的应该是字符串S中所有的数字的个数。

  • 第19题:

    以下程序的输出结果是______。 main() { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=0;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j]; printf("%d\n",s); }

    A.18

    B.19

    C.20

    D.21


    正确答案:B
    解析:本题函数的功能是计算并输出一个二维数组对角线及对角线下面的元素之和。

  • 第20题:

    有以下程序:int f(int b[][4]){int i, j, s=0;for(j=0; j<4; j++){i=j;if(i>2)i=3-j;S+=b[i][j];

    有以下程序: int f(int b[][4]) { int i, j, s=0; for(j=0; j<4; j++) { i=j; if(i>2)i=3-j; S+=b[i][j]; } return s; } main() { int a[4][4]={{1, 2, 3, 4}, {0, 2, 4, 6}, {3, 6, 9, 12}, {3, 2, 1, 0}}; printf("%d\n", f(a)); } 执行后的输出结果是______。

    A.12

    B.11

    C.18

    D.16


    正确答案:D
    解析:f(a)=a[0][0]+a[1][1]+a[2][2]+a[0][3]=1+2+9+4=16。

  • 第21题:

    有以下程序

    #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

  • 第22题:

    单选题
    有以下程序:#include main(){ char b[3][10],c; int i; for(i=0;i<2;i++)scanf(%s,b[i]); i=0; while((c=getchar())!='')b[2][i++]=c; b[2][i] = '\0'; printf(%s%s%s,b[0],b[1],b[2]);}执行时若输入以下字符串:Peach flower is pink.<回车>则输出结果是(  )。
    A

    Peachflower is pink.

    B

    Peachfloweris pink.

    C

    Peachflowerispink.

    D

    Peach flower is pink.


    正确答案: A
    解析:
    由于用“%s”格式输出字符串时,遇到空格、制表符和回车时读取结束,因此,b[0] = "Peach",b[1] = "flower",而while循环中,用getchar函数一直读入字符直到''为止,b[2]=" is pink.",答案选择A选项。

  • 第23题:

    单选题
    有以下程序:#include main(){ int i,j=0; char a[] = How are you,b[10]={0}; for(i=0;a[i];i++)  if(a[i]==' ')   b[j++]=a[i+1]; printf(%s,b);}程序运行后的输出结果是(  )。
    A

    Hay

    B

    How are you

    C

    we

    D

    ay


    正确答案: C
    解析:
    for语句循环体执行功能是,每次当a[i]元素为' '时,自动将a[i]下一个元素赋值给b[j],赋值完成后,j值加1,因此a[i]的'a'和'y'分别赋值给b[0],b[1],输出结果为ay。答案选择D选项。

  • 第24题:

    单选题
    有以下程序:#include main(){ int i,j=0; char a[] = How are you!,b[10]={0}; for(i=0;a[i];i++)  if(a[i]==' ')   b[j++]=a[i-1]; printf(%s,b);}程序运行后的输出结果是(  )。
    A

    we

    B

    How are you!

    C

    ay

    D

    we!


    正确答案: D
    解析:
    for语句循环体执行功能是,每次当a[i]元素为' '时,自动将a[i-1]上一个单元内容赋值给b[j],赋值完成后,j值加1,因此a[i]的'w'和'e'分别赋值给b[0],b[1]。答案选择A选项。