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

admin2010-09-05  22

问题 有以下程序:    # include<stdio.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、abe d
D、d d

答案A

解析 本题考查%s控制符在scanf函数中的应用。scanf函数中%s控制符的作用是将键盘输入的字符串送到内存,输入的字符串从第一个非空格字符算起,遇到空格或回车就认为是输入结束。本题中执行语句scanf("%s%s",p,q)时,从键盘输入abc def<回车>后,指针变量p指向字符串"abc\0",q指向字符串"def\0",但是由于p和q指向同一个存储单元,所以存储单元中存放的是"def\0",printf函数的输出结果为def def。
转载请注明原文地址:https://kaotiyun.com/show/jcWp777K
0

最新回复(0)