参考答案和解析
正确答案:A
p=s,是将字符串数组的首地址赋给p,即p指向’1’,然后输出1,p++,指向下一位,即指向5,输出5,指向下一位。
更多“有以下程序:void main(){char s[]="159",*p;p=s;printf("%c",*p++);printf("%c",*p++);}程序运行 ”相关问题
  • 第1题:

    有以下程序: include main( ) {char s[ ] ="159" , * p;p=s;printf( "% c", * p + +

    有以下程序: #include <stdio.h> main( ) { char s[ ] ="159" , * p; p=s; printf( "% c", * p + + ); printf("%~", * p++);}程序运行后的输出结果是( )。

    A.15

    B.16

    C.12

    D.59


    正确答案:A
    解析:语句p=s将指针变量p指向字符数组s,第一次输出时,由于++和*为同一优先级,而结合方向为自右向左,所以,*p++相于*(p++)。但又因为“++”在p的右侧,所以,先输出*p,得到s[0]的值,然后P++,P指向s[1],故第二次输出时,输出s[1]的值,所以输出结果为15。

  • 第2题:

    请读程序: includef(char * s){cahr * p=s;while(* p!='\0')p++;return(p-s);}main(){

    请读程序: # include<stdio.h> f(char * s) {cahr * p=s; while(* p!='\0')p++; return(p-s); } main() {printf("%d\n”,f("ABCDEF"));} 上面程序的输出结果是 ( )

    A.3

    B.6

    C.8

    D.0


    正确答案:B

  • 第3题:

    以下程序运行后的输出结果是______。 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

  • 第4题:

    有以下程序: main() {char s[]="159",*p; p=s; printf("%c",*p++);printf("%c",*p++); } 程序运行后的输出结果是 ______。

    A.15

    B.16

    C.12

    D.59


    正确答案:A
    解析:本题通过“p=s”将指针变量p指向字符数组s,在第一次输出时,由于++和*为同一优先级,“*p++”相于“*(p++)”。 p指向s[1],输出为s[1]的值。

  • 第5题:

    有以下程序 main() { char s[]="159",*p; p=s; printf ("%c",*p++);printf("%c",*p++); } 程序运行后的输出结果是______。

    A.15

    B.16

    C.12

    D.59


    正确答案:A