有以下程序: #include <stdio.h>void funl (char * p){ char * q; q=p; while( *q! =’\0’) } (*q) ++;q++;}mains( ){ char a[ ] = {

admin2009-01-15  33

问题 有以下程序: #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

答案1

解析 在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。
转载请注明原文地址:https://jikaoti.com/ti/7HK0FFFM
0

相关试题推荐
最新回复(0)