niusouti.com

单选题有以下程序:#include #include main(){ char *mm[4]= {abcd, 1234, mnop, 5678}; char **pm= mm; int i; for(i=0;i<4;i++) printf(%s,pm[i]+i); printf();}程序的运行结果是(  )。A abcd1234mnop5678B abcd234op8C a2o8D a1m5

题目
单选题
有以下程序:#include #include main(){ char *mm[4]= {abcd, 1234, mnop, 5678}; char **pm= mm; int i; for(i=0;i<4;i++) printf(%s,pm[i]+i); printf();}程序的运行结果是(  )。
A

abcd1234mnop5678

B

abcd234op8

C

a2o8

D

a1m5


相似考题
更多“单选题有以下程序:#include #include main(){ char *mm[4]= {abcd, 1234, mnop, 5678}; char **pm= mm; int i; for(i=0;i4;i++) printf(%s,pm[i]+i); printf();}程序的运行结果是(  )。A abcd1234mnop5678B abcd234op8C a2o8D a1m5”相关问题
  • 第1题:

    下列程序的输出结果是()。inCludemain(){char ch[2][5]={"1234","5678,},*p[2];int i,j

    下列程序的输出结果是( )。 #inClude<stdio.h> main() { char ch[2][5]={"1234","5678,},*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=p[i][j]-'0';

    A.8

    B.7

    C.12

    D.9


    正确答案:B
    解析: 第1次执行for循环,p[1][0]=p[1][0]-1=3;第2次执行for循环,p[1][1]=p[1][1]-1=4;第3次执行for循环,p[1][2]=1,最后输出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

  • 第2题:

    下面程序的运行结果是( )。include define SlZE 12 main() {char s[SIZE];int i;for(i=0

    下面程序的运行结果是( )。

    include<stdio.h>

    define SlZE 12

    main()

    {char s[SIZE];int i;

    for(i=0;i<SIZE;i++) s[i]='A'+i+32;

    sub(s,5,SIZE-1);

    for(i=0;i<SIZE;i++)printf("%c",s[i]);

    printf("\n");}

    sub(char *a,int t1,int t2)

    { char ch;

    while(t1<t2)

    { ch=*(a+t1);

    *(a+t1)=*(a+t2);

    *(a+t2)=ch;

    t1++;t2--;

    }

    }


    正确答案:abcdelkjihgf
    abcdelkjihgf 解析:本题先给字符型数组s的12个元素赋值a到1共12个字母,函数sub(char*a,int t1,int t2)的功能是将数组a的从第t1+1个元素到t2+1个元素进行逆置,在主函数中调用sub(s,5,SIZE-1)函数,是将数组s的第6个元素到第12个元素进行逆置,其他元素位置不变。

  • 第3题:

    以下程序的输出结果为()。includemain(){ char *alpha[6]={"ABCDEFGH","IJKL","MNOP","

    以下程序的输出结果为( )。 #include<stdio.h> main() { char *alpha[6]={"ABCDEFGH","IJKL","MNOP","QRST","UVWX"}; char**p;int i; p=alpha; for(i=0;i<4;i++)printf(" %s" ,p[i]);printf("\n" );}

    A.ABCDEFGHIJKL

    B.ABCD

    C.ABCDEFGHIJKLMNOPQRST

    D.AEIM


    正确答案:C
    解析:字符串数组中的每个元素是一个指向字符串的字符指针,可用一个指向指针的指针来指向一个字符串数组,题中p即为一个这样的指针,p[i]则指向了数组alpha的第i+1各元素。注意:用带下标的指针变量引用一维数组中的元素。

  • 第4题:

    以下程序运行后输入:3,abcde<回车>,则输出结果是【 】include move(char *str,

    以下程序运行后输入:3,abcde<回车>,则输出结果是【 】

    include <string.h>

    move(char *str, int n)

    { char temp; int i;

    temp=str[n-1];

    for(i=n-1;i>0;i--) str[i]=str[i-1];

    str[0]=temp;

    }

    main( )

    { char s[50]; int n, i, z;

    scanf("%d,%s",&n,s);

    z=strlen(s);

    for(i=1; i<=n; i++) move(s, z);

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

    }


    正确答案:cdeab
    cdeab 解析:本题主要考查函数move()的功能。经过分析可知,每次调用该函数时,都是把最后一个字符移到串的最前端,而原先的第一个字符至倒数第二个字符顺次后移。

  • 第5题:

    下列程序的输出结果是()。includemain() {char ch[2][5]={"1234","5678"},*p[2];int i,

    下列程序的输出结果是( )。 #include<stdio.h> main() { char ch[2][5]={"1234","5678"},*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=p[i][j]-'0'; printf("%d",s);} }

    A.6357

    B.6135

    C.1357

    D.691357


    正确答案:C
    解析:本题先将指针P指向二维数组ch[2][5],相当于p[0]="1234",p[1]="5678",通过双重for循环,是要将p中的字符隔一个输出一个,通过s=p[i][j]-'0'这条语句是将所要输出的字符转换成相应的十进制数。

  • 第6题:

    以下程序的输出结果为main(){ char *alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"}; char **p; int i; p=alpha; for(i=0;i<4;i++) printf("%s",p[i]); printf("\n");} A.ABCDEFGHIJKL B.ABCDC.ABCDEFGHIJKLMNOP D.AEIM


    正确答案:C
    指针数组*alpha[6]实际上相当于一个二维数组,而p是一个指向指针的指针,p=alpha后,引用p[x]便是引用数组*alpha[6]中的第x个数组元素的首地址,所以打印的结果应当为ABCDEFGHIJKLMNOP。

  • 第7题:

    有以下程序includevoid main(){char s[]={"01aXy"};int i,n=0;for(i=0;s[i]!=0;i++)if

    有以下程序 #include<stdio.h> void main() { char s[]={"01aXy"};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]<='a'&&s[i]>='z')n++; printf("%d\n",n); } 程序运行后的输出结果是( )。

    A.0

    B.2

    C.3

    D.5


    正确答案:A

  • 第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题:

    单选题
    有以下程序:#include main(){ char s[] = 012xy\08s34f4w2; int i,n = 0; for(i = 0;s[i]!='0';i++)  if(s[i]>'0'&& s[i]<='9')n++; printf(%d,n);}程序运行后的输出结果是(  )。
    A

    0

    B

    3

    C

    7

    D

    8


    正确答案: B
    解析:
    此题有陷阱,考查的是for的执行顺序,①i=0,初始化初值;②s[i]!='0'进行判断,如果条件为真,则继续执行;③执行循环体代码;④i++变量i自增;⑤回到第②步,一直循环下去,直到第②步为假,退出循环。本题i= 0时,s[i]=='0',for循环终止,接着执行printf语句,n的值没有发生变化,故输出0,答案选择A选项。

  • 第10题:

    单选题
    有以下程序:#include void fun(char(*p)[6]){ int i; for(i=0;i<4;i++)printf("%c",p[i][i]); printf("");}main(){ char s[6][6]={"ABCD","abcde","12345","FGHIJ","fghij","54321"}; fun(s);}程序的运行结果是(  )。
    A

    Aa1F

    B

    Ab3I

    C

    ABCD

    D

    fghij


    正确答案: D
    解析:
    函数fun的功能是输出s[i][i],二维数组的对角线元素,所以程序会输出s[0][0]、s[1][1]、s[2][2]、s[3][3],即Ab3I。答案选择B选项。

  • 第11题:

    单选题
    有以下程序:#include main(){ char *a[]={abcd,ef,gh,ijk}; int i; for(i=0;i<4;i++)printf(%c,*a[i]);}程序运行后的输出结果是(  )。
    A

    aegi

    B

    dfhk

    C

    abcd

    D

    abcdefghijk


    正确答案: C
    解析:
    char *a[]定义了一个指向数组的指针。由题中初始化结果得:*a[0]="abcd",a[1]="ef",a[2]="gh",a[3]="ijk",但是在输出语句时要求输出的格式是%c,为一个字符,所以每个元素输出第一个字符,即aegi。答案选择A选项。

  • 第12题:

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

  • 第13题:

    以下程序输出的结果为 ______。main(){ char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"}; char**p; int i; p=alpha; for(i=0;i<4;i++) printf("%s",p[i]);}

    A.ABCDEFGHIJKL

    B.ABCD

    C.ABCDEFGHIJKLMNOP

    D.AEIM


    正确答案:C
    解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此类推。当执行p=alpha后,p指向指针数组alpha的首地址。for循环中输出了4个字符串。

  • 第14题:

    如下程序:includevoid main(){char str[2][5]={"1234","5678"),*p[2];int i,j,s=0;

    如下程序: #include<iostream.h> void main() { char str[2][5]={"1234","5678"),*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=str[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; } 该程序的输出结果是( )。

    A.1357

    B.2468

    C.3556

    D.23678


    正确答案:A
    解析:程序中的“for(i=0;i2;i++)p[i]=str[i];”语句将str中的值赋值给指针数组p。在接下来的二重for循环中,跳取“j+=2”,p指针指向的值即“1”,“3”,“5”,“7”。在分别对字符到整型的转换,即减去字符‘0’,然后依次转换为千位,百位,十位,个位“10%”操作输出接型s,即“1357”。

  • 第15题:

    有以下程序includemain(){char*a[]={"abcd","ef","gh","ijk"};int i; for(i=0;i<4;i++

    有以下程序 #include<stdio.h> main() { char*a[]={"abcd","ef","gh","ijk"}; int i; for(i=0;i<4;i++) printf("%c",*a[i]); } 程序运行后的输出结果是______。

    A.agei

    B.dfhk

    C.abcd

    D.abcdefghijk


    正确答案:A
    解析:本题主要考查了字符数组的赋值,字符数组中的一个元素存放一个字符,所以数组元素a[0]、a[1]、a[2]和a[3]中依次存放了a、e、g、i,因此,在执行for循环时,四次的输出结果为a、e、g、i,因此选项A是正确的。

  • 第16题:

    以下程序运行后的输出结果是( )。 include main() {char ch[]="abcd",x[4][4];int i; f

    以下程序运行后的输出结果是( )。 include<string.h> main() {char ch[]="abcd",x[4][4];int i; for(i=0;i<4;i++)strcpy(x[i],ch); for(i=0;i<4;i++)printf("%s",&x[i][i]); printf("\n"); }


    正确答案:abcdabcdabcdabcdbcdabcdabcdcdabcdd
    abcdabcdabcdabcdbcdabcdabcdcdabcdd

  • 第17题:

    以下程序段的输出结果是 ______。includevoid main(){ char*p[5]={"ABCD","EF","GHI

    以下程序段的输出结果是 ______。 #include<iostream.h> void main(){ char*p[5]={"ABCD","EF","GHI","JKL","MNOP"}; char **q=p; int i; for(i=0;i<=4;i++) cout<<q[i]; }

    A.ABCDEFGHIJKL

    B.ABCD

    C.ABCDEFGHIJKMNOP

    D.AEGJM


    正确答案:C

  • 第18题:

    以下程序输出的结果为______。main(){ char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"}; char**p; int i; p=alpha; for(i+0;i<4;i++) printf("%s",p[i]);}

    A.ABCDEFGHIJKL

    B.ABCD

    C.ABCDEFGHIJKLMNOP

    D.AEIM


    正确答案:C
    解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此类推。当执行p=alpha后,p指向指针数组alpha的首地址。for循环中输出了4个字符串。

  • 第19题:

    下列程序的输出结果是()。 inClude main() {charch[2][5]={"1234","5678"},*p[2]; int

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

    #inClude<stdio.h>

    main()

    { charch[2][5]={"1234","5678"},*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=p[i][j]-'0';

    printf("%d",s);}

    }

    A.6357

    B.6135

    C.1357

    D.691357


    正确答案:C
    解析:本题先将指针p指向二维数组ch[2][5],相当于p[0]="1234",p[1]="5678",通过双重for循环,是要将p中的字符隔一个输出一个,通过s=p[i][j]-'0'这条语句是将所要输出的字符转换成相应的+进制数。

  • 第20题:

    下面程序的运行结果是()。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两个字符了。注意:形参为指针变量时,实参和形参之间的数据传递。

  • 第21题:

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

  • 第22题:

    单选题
    有以下程序:#include main(){  char *s[6]={ABCD,EFGH,IJKL,MNOP,QRST,UVWX},**p; int i; p=s;  for(i=0;i<4;i++)printf(%s,p[i]); printf();}程序运行后的输出结果是(  )。
    A

    ABCDEFGHIJKLMNOP

    B

    ABCDEFGHHKL

    C

    ABCD

    D

    AEIM


    正确答案: D
    解析:
    程序定义数组指针s以及指针的指针p,p指向数组指针s。p[i]为s的第i行字符串,因此程序输出s的前四行字符串。答案选择A选项。

  • 第23题:

    单选题
    有以下程序:#include main(){    char s[]={012xy};    int i,n=0;    for(i=0;s[i]!=0;i++)  if(s[i]>='a'&&s[i]<='z')n++;    printf(%d,n);}程序运行后的输出结果是(  )。
    A

    0

    B

    2

    C

    3

    D

    5


    正确答案: A
    解析:
    程序中main函数的作用就是判断字符串s中小写字母的个数,显然结果为2。答案选择B选项。