更多“已知:char s[4]=〞cba〞;char *p; 执行语句列p=s;printf(〞%c/n〞,*p+1);后,其”相关问题
  • 第1题:

    有以下程序:includeincludeincludevoid f(char*s,char*t){char k;k=*s; *

    有以下程序: #include<stdio.h> #include<string.h> #include void f(char*s,char*t) { char k; k=*s; *s=*t; *t=k; s++;t--; if(*s)f(s,t): } main() {char str[10]="abcdefg",*P; P=str+strlen(str)/2+1: f(p,p-2); printf("%s\n",str); } 程序运行后的输出结果是( )。

    A.abcdefg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B

  • 第2题:

    有以下程序:includevoid f(char *s, char *t){ char k;k=*s;*s=*t; *t=k;s++;t- -;

    有以下程序:#include <string .h>void f(char *s, char *t){ char k; k=*s; *s=*t; *t=k; s++; t- -; if(*s) f(s, t);}main(){ char str[10]="abcdefg",*p; p=str+strlen(str)/2+ 1; f(p,p-2); printf("%s\n", str);}程序运行后的输出结果是( )。

    A.abcdcfg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:本题定义的函数f()是一个递归函数。它先交换两个字符指针所指的内容,然后将第1个指针往后移动—位,第2个指针往前移动一位,如果第1个指针所指内容不是字符串结束标志,则递归调用自身。主函数中首先定义了—个字符数组sir[10]=“ahcdeft”然后定义了一个字符指针p=str+strlen(str)/2+1,即让p指向str+4(或&str[4])的位置。然后调用f(p,p-2);,这使得p所指的str[4]及其以后的2个位置str[5]、str[6]中的内容同p-2所指的str[p]及其以前的2个位置str[1]、str[0]中的内容互相交换。即让整个字符串逆序。所以本题应该选择B。

  • 第3题:

    下列程序的输出结果是______。 includef(char 8s){char *p=s;while(*p!='\0')p++;retur

    下列程序的输出结果是______。# include<stdio.h>f(char 8s){ char *p=s; while(*p!='\0')p++; return(p-s);}main(){ printf("%d\n",f("ABCDEF"));}

    A.3

    B.6

    C.8

    D.0


    正确答案:B

  • 第4题:

    有以下程序:includevoid f(char*s,char*t){ char k;k=*s;*s=*t;*t=k;s++;t--;if(*s)f

    有以下程序: #include<string.h> void f(char*s,char*t) { char k; k=*s; *s=*t; *t=k; s++; t--; if(*s) f(s,t); } main( ) {char str[10]="abcdefg",*p; p=str+strlen(str)/2+1; f(p,p-2); printf(~%s\n",str); } 程序运行后的输出结果是 ______。

    A.abcdef

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:p=str+strlen(str)/2+1=str+4,f(p,p-2)的功能是将p[4]与p[2]互换,p[5]与p[1]互换,p[6]与p[0]互换,最后的结果为gfedcba。

  • 第5题:

    有以下程序 main() { char*s[]={"BBC","CNN","NDS"},*p; p=s[1]; printf("%c,%s\n",*(p+1),p); }执行后输出结果是______。

    A.C,BBC

    B.N,BBC

    C.C,CNN

    D.N,CNN


    正确答案:D

  • 第6题:

    有以下程序: include void f(char *s,char *t) {char k; k=*s; +s=*t;

    有以下程序: #include<string.h> void f(char *s,char *t) {char k; k=*s; +s=*t; *t=k; S++; t--; if(*s) f(s,t); } main() {char.str[10]="abcdefg",*p; p=str+strlen(str) /2+1; f(p,p-2); printf("%s\n",str); } 程序运行后的输出结果是 ______。

    A.abcdefg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:本程序的作是将字符串str倒序。语句“p=str+strlen(str)/2+1;”用于将指针变量p指向e字符所在的存储单元,p-2指向了c字符所在的存储单元,在函数f中将这两个存储单元的内容交换,并使得f函数中指向c字符的指针变量s加1。指向c字符的指针变量t减1,然后继续将s和t指向的存储单元的内容进行交换,直到s指向的存储单元的内容为空为止。所以本题程序输出的结果是字符串“abcdefg”的倒序形式“gfedcba”。

  • 第7题:

    下列程序的执行结果是______。 in(f(char*s) { char*p=s; while(*p!='\0')p++; return(p-s); } main() { printf("%d\n",f("goodbye!")); }

    A.3

    B.6

    C.8

    D.0


    正确答案:C
    解析:字符在内存中占一个字节的存储空间,按字符的存储顺序,其地址依次递增,在函数f中循环过后,p指向字符串的结束位置,s指向字符串首地址,p-s即为字符串长度。

  • 第8题:

    下列程序的执行结果是______。 point (char *pt); main ( ) { char b[4]={ 'a', 'c', 's', 'f' },*pt=b; point (pt); printf ("%c\n", *pt); } point (char*p) { p+=3; }

    A.s

    B.c

    C.f

    D.a


    正确答案:D

  • 第9题:

    下面程序的输出是______。 fun(char *s,int p1,int p2) { char c; while(p1<p2) { c=s[p1];s[p1]=s[p2];s[p2]=c;p1++;p2--;} } main() { char a[]="ABCDEFG",k,*p; fun(a,0,2);fun(a,4,6); printf("%s\n ",a); }

    A.ABCDEFG

    B.DEFGABC

    C.GFEDCBA

    D.CBADGFE


    正确答案:D
    解析:本题主要通过while循环对满足条件的元素进行交换。

  • 第10题:

    有以下程序: include main( ) { char *p ,* q; p=(char * )malloc(sizeof(char

    有以下程序: #include<stdlib.h> main( ) { char *p ,* q; p=(char * )malloc(sizeof(char) * 20);q=p; scanf("%s%s",p,q); printf("%s%s\n",p,q); } 若从键盘输入:abc def<回车>,则输出结果是

    A.def def

    B.abc def

    C.abc d

    D.d d


    正确答案:A

  • 第11题:

    若有如下程序: void a(char*p,char c) {while(*p) { if(*p==c)*p=c-'b'+'B';; p++; } } main() {char s[50]="abcdeeffgee",b='e'; a(s,b);printf("%s\n",s); } 则程序运行后的输出结果是( )。

    A.Abcdeeffgee

    B.ABCDeeFFGee

    C.abcdEEffgEE

    D.ABCDEEFFGEE


    正确答案:C
    解析:函数a的功能是将字符数组s中的小写字母e变为大写字母,其余字符不变,4个选项中只有C符合题意。

  • 第12题:

    下面语句正确的是()

    • A、int*p;*p=20
    • B、char*s=”abcdef”;printf(“%s/n”,s)
    • C、charstr[]=”abcd”;str++
    • D、charstr[]={‘a’,’b’,’c’};printf(“%s”,str)

    正确答案:B

  • 第13题:

    有以下程序 main( ) { char *s[ ]={"one","two","three"},*p; p=s[1]; printf("%c,%s\n",*(p+1),s[0]); } 执行后输出结果是

    A.n,two

    B.t,one

    C.w,one

    D.o,two


    正确答案:C
    解析:p首先指向s中的第二个字符串(p=s[1])的起始位置,其中输出语句printf的功能是输出p所指向的后一个字符,及数组元素s[0]。

  • 第14题:

    有以下程序:

    void funl(char*p)

    { char*q;

    q=P;

    while(*q!='\O')

    {(*q)++;q++;}

    }

    main

    { char a[]={"Program"),*P;

    p=&a[3];funl(p);

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

    }

    程序执行后的输出结果是( )。

    A.Prohsbn

    B.Prphsbn

    C.Progsbn

    D.Program


    正确答案:A
    本题中使用了函数的调用,由{unl函数中的while循环可知,循环的作用是为了把q所指向的内容增加l,而从主函数传到函数时是从下标为3开始传,因此当调用函数执行完后,传过去的字符串为'hsbn',前面不变。

  • 第15题:

    以下程序运行后的输出结果是( )。

    include

    char*ss(char*s)

    {char*p,t;

    P=s+1;t=*s;

    while(*p){ *(P-1)=*P;P++;}

    *(P-1)=t;

    return s;

    }

    main()

    {char*p,str[10]="abcdefgh";

    p=ss(str);

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

    }


    正确答案:bcdefgha
    bcdefgha

  • 第16题:

    下面程序的输出是______。 char s[]="ABCD"; main() { char *p; for(p=s;p<s+4;p++) printf("%s\n",p); }

    A.ABCD BCD CD D

    B.A B C D

    C.D C B A

    D.ABCD ABC AB A


    正确答案:A
    解析:在第—次执行for循环时,字符数组的首地址赋给了指针变量p,使得指针变量p指向了s的首地址,输出p所指向的字符串;第二次执行for循环时,p值增加1,p指向了s的第二个元素输出BCD:第三次输出CD:第四次输出D;直到p指向字符串的结束字符“\0”,for循环终止执行。

  • 第17题:

    有以下程序: include void funl (char * p){char * q; q=p; while( *q! ='\0') } (*q)

    有以下程序: #include <stdio.h>void funl (char * p){ char * q; q=p; while( *q! ='\0') } (*q) ++;q++;}mains( ){ char a[ ] = { "Program" } , * p; p = &a[3]; fun1 (p); printf("% s \n" ,a);}程序执行后的输出结果是( )。

    A.Prohsbn

    B.Prphsbn

    C.Progsbn

    D.Program


    正确答案:A
    解析:在main函数中,p=&a[3]说明指针p指向a数组的第4个字符(即字符'g');fun1中的q=p意味着指针q也指向了a数组的第4个字符。执行while语句,表达式(*q)++使'g'+1,使'g'变成了'h';表达式q++使q指向a[4]的起始地址。继续执行while语句,直到遇到'\0'结束循环,返回形参。最终得到的结果是从字符串"Program'的第4个字符开始,每个字符加1。

  • 第18题:

    有以下程序 include void fun(char **p) { ++p; printf("%s\n",*p);

    有以下程序 #include <stdio.h> void fun(char **p) { ++p; printf("%s\n",*p); } main() { char *a[]={"Moming","Afternoon","Evening","Night"}; fun(a); } 程序的运行结果是

    A.Afternoon

    B.fternoon

    C.Morning

    D.orning


    正确答案:A
    解析:本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和—般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给指向字符指针的指针(即字符型二级指针),所以数组名a可以用作函数fun()的实参。

  • 第19题:

    下列程序的输出结果是( )。 char*point(char*pt): main { char b[4]={a,c,s,f),*pt=b; pt=point(pt); printf("%c\n",*pt); } point(char*p) { p+=3; return p; }

    A.s

    B.c

    C.f

    D.a


    正确答案:C
    本题考查函数的调用及参数传递,当执行函数point时,刚开始指针P指向“a”,经过+3,指针p指向“f”,所以最后的输出结果是f。

  • 第20题:

    char *p="hello";

    printf("%s",p);

    p++;

    printf("%s",p);

    printf("%c",*p);


    正确答案:
     

  • 第21题:

    以下程序运行后,输出结果是()includess(char*s){char*p=s; while(*p)p++ return(p-s);

    以下程序运行后,输出结果是( ) #include<stdio.h> ss(char *s) { char*p=s; while(*p) p++ return(p-s); } main() { char *a="abded" int i; i=ss(a) ; printf("%d\n",i); }

    A.8

    B.7

    C.6

    D.5


    正确答案:D

  • 第22题:

    以下程序运行后的输出结果是______。 ss(char*s) { char*p=s; while(*p)p++; return(p-s); } main() { char*a="abded";int i; i=ss(a); printf("%d\n",i); }

    A.8

    B.7

    C.6

    D.5


    正确答案:D

  • 第23题:

    执行下列语句后,*(p+1)的值是().  char  s[3]="ab",*p;  p=s;


    正确答案:b

  • 第24题:

    单选题
    已知:char s[4]=〞cba〞;char *p; 执行语句列p=s;printf(〞%c/n〞,*p+1);后,其输出为()。
    A

    c

    B

    b

    C

    a

    D

    d


    正确答案: B
    解析: 暂无解析