有以下程序 #include<stdlib.h> main() { char*p,*q; p=(char *)malloc(sizeof(char)*20);q=p; scanf(“%s%s”,p,q);printf(

admin2013-02-23  20

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

答案1

解析 本题首先定义两个字符型指针变量p和q,通过malloc()函数申请 20个字符的存储空间,并把它的首地址赋给p,再把p的值赋给q,p和q指向同一个存储区。在scanf()语句中读取字符串到p和q指向的字符串,先把“abc”读取到P指向的存储区中,第一个空格是结束标记,第二个空格是分隔符,再把“def”存放到q指向的存储区,把原先的内容覆盖。所以p和q指向的存储区中内容是“def”,所以最后输出为def,def。
转载请注明原文地址:https://kaotiyun.com/show/oHJp777K
0

最新回复(0)