执行char*p=new char(’a’)操作后,p所指向的数据对象的值为()。

题目
填空题
执行char*p=new char(’a’)操作后,p所指向的数据对象的值为()。
参考答案和解析
正确答案: ‘a’
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序: void fun1(char*p) {char*q; q=P; while(*q!='\0') { (*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
解析:函数funl()实现的功能为将实参p所指的字符串顺序按位加1,而实参p通过“p=&a[3];”指向字符串数组a[]中的gram,敞输出结果为Prohsbn。

第2题:

有以下程序:

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',前面不变。

第3题:

以下与库函数strcpy(char *p, char *q)功能不相等的程序段是()。

A.strcpy1(char *p, char *q)

{ while ((*p++=*q++)!='\0')

}

B.strcpy2( char *p, char *q)

{ while((*p=*q)!='\0')

{p++ q++}

}

C.strcpy3(char*p, char *q)

{ while (*p++=*q++)

}

D.strcpy4(char *p, char *q)

{ while(*p)

*p++=*q++

}


答案:D

第4题:

以下程序段运行后*(++p)的值为()char a[5]=”work”;char *p;p=a;

A.‘w’

B.存放’w’的地址

C.’o’

D.存放’o’的地址


参考答案:C

第5题:

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

第6题:

设有以下程序片段:char a[ ]="hello",*p;p=a;printf("%d",*(p+5));执行上面的程序片段后的结果为( )

A.111

B.0

C.104

D.不确定的值


正确答案:B 

第7题:

要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( )。

A.const char *p=”ABCD”;

B.char const *p=”ABCD”;

C.char *const p=”ABCD”;

D.const char *const p=”ABCD”;


参考答案:D

第8题:

有以下程序

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
(37)A) 解析 : (*q)++ 是 q 所指的字符加 1,q++ 就是指针移到下一个字符。

第9题:

若结构Arith 中有一成员定义为char *op;,另有结构指针p定义为Arith *p=new Arith.,则要访问p所指对象中的。p成员所指向的对象,应使用表达式【 】。


正确答案:*(p->op)
*(p->op) 解析:访问结构指针所指向的指针的值,首先得到指向的指针(p->op),然后计算值 *(p->op)。

第10题:

以下程序段运行后*(p+3)的值为()char a[]=”good”;char *p;p=a;

A.‘d’

B.‘\0’

C.存放’d’的地址

D.‘0’


参考答案:A