itgle.com

有以下程序void fun1(char *p){ char *q;q=p;while(*q!='\0'){ (*q)++; q++; ) }}main(){ char a[]={"Program"),*p;p=&a[3];fun1(p);printf(" % s\n",a);}程序执行后的输出结果是A)ProhsbnB)PrphsbnC)ProgsbnD)Program

题目

有以下程序

void fun1(char *p)

{ char *q;

q=p;

while(*q!='\0')

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

}

main()

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

p=&a[3];fun1(p);printf(" % s\n",a);

}

程序执行后的输出结果是

A)Prohsbn

B)Prphsbn

C)Progsbn

D)Program


相似考题
更多“有以下程序void fun1(char *p){ char *q;q=p;while(*q!='\0'){ (*q)++; q++; ) }}main(){ c ”相关问题
  • 第1题:

    以下程序的输出结果是【】。 includevoid main() {char *p= "12345678" , *r;long *q;

    以下程序的输出结果是【 】。

    include<iostream. h>

    void main() {

    char *p= "12345678" , *r;

    long *q;

    q=(long *)p;

    q++;

    r= (char *) q:

    cout<<r;

    }


    正确答案:5678
    5678

  • 第2题:

    有以下程序 void fun 1 (char *p) { char *q; q=p; while(*q!='\0') {(*q)++;q++;} } main() {char a[]={"Program"},*p; p=&a[3];fun1(p);printf("%s\n",a); } 程序执行后的输出结果是______。

    A.Prohsbn

    B.Prphsbn

    C.Progsbn

    D.Program


    正确答案:A
    解析:此题考核的知识点是指向数组的指针作为函数的参数及指针的运算,如果形参数组中的元素发生变化,实参也将发生相应变化。指针p指向数组的第三位地址(即字符“g”的地址),q=p也就相当于指针q指向数组的第三位地址。表达式(*q)++,首先根据()的优先级得到a[3]的值“g”,再进行加1运算,所以g也就变成了h;表达式q++是将地址加 1,也就是指向下—个地址町a[4]。然后再执行while()语句,直到遇到'\0'结束循环,返回形参。

  • 第3题:

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

    A.Prohsbn

    B.Prphsbn

    C.Progsbn

    D.Program


    正确答案:A
    解析:在函数fun1()中,首先将形参p的内容存入临时指针q中,然后使用—个while循环,当q所指内容不是字符串结束标志"\0'时,让q所指内容增1,然后将指针q增1指向下一个位置。所以函数fun1()实现的功能是:将传入字符串的所有字符自增1。主函数,指针p在被传入fun1()函数之前,初始化指向的是宁符数组a的第4个元素'g',所以最终输出的结果应该是Prohsbn。故应该选择A。

  • 第4题:

    有以下程序: 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。

  • 第5题:

    有以下程序: 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,前面不变。