若输入abc def<回车>,输出结果为什么是def def而不是abc abc呢?
发布网友
发布时间:2024-08-07 03:53
我来回答
共2个回答
热心网友
时间:2024-08-30 10:28
scanf("%s%s",p,q);
这句的含义是这样的:
输入一个字符串,然后将其存放到p 所指向的内存单元 也就是abc
再输入一个字符串,将其存放到q所指向的内存单元,因 p,q指向的内存单元相同,所以def将abc替换掉了
所以printf("%s%s\n",p,q); 结果就是defdef
若想实现abc def 可用下面程序
#include <stdio.h>
#include <malloc.h>
#include <string.h>
void main()
{
char *p,*q;
p=(char*)malloc(sizeof(char)*20);
q=p;
scanf("%s%s",p,q+strlen(p));
printf("%s\n",p);
}
热心网友
时间:2024-08-30 10:32
p=(char*)malloc(sizeof(char)*20);
这样给p分配了空间,
但q=p; 使q指向了P的首地址。
scanf("%s%s",p,q); 先给P赋值,再给q赋值,因是同一地址,这样q的值覆盖了p的值。
你如改成这样就不会了。
scanf("%s%s",q,p);
热心网友
时间:2024-08-30 10:27
scanf("%s%s",p,q);
这句的含义是这样的:
输入一个字符串,然后将其存放到p 所指向的内存单元 也就是abc
再输入一个字符串,将其存放到q所指向的内存单元,因 p,q指向的内存单元相同,所以def将abc替换掉了
所以printf("%s%s\n",p,q); 结果就是defdef
若想实现abc def 可用下面程序
#include <stdio.h>
#include <malloc.h>
#include <string.h>
void main()
{
char *p,*q;
p=(char*)malloc(sizeof(char)*20);
q=p;
scanf("%s%s",p,q+strlen(p));
printf("%s\n",p);
}
热心网友
时间:2024-08-30 10:26
p=(char*)malloc(sizeof(char)*20);
这样给p分配了空间,
但q=p; 使q指向了P的首地址。
scanf("%s%s",p,q); 先给P赋值,再给q赋值,因是同一地址,这样q的值覆盖了p的值。
你如改成这样就不会了。
scanf("%s%s",q,p);
若输入abc def<回车>,输出结果为什么是def def而不是abc abc呢?
这句的含义是这样的:输入一个字符串,然后将其存放到p 所指向的内存单元 也就是abc 再输入一个字符串,将其存放到q所指向的内存单元,因 p,q指向的内存单元相同,所以def将abc替换掉了 所以printf("%s%s\n",p,q); 结果就是defdef 若想实现abc def 可用下面程序 include <stdio.h> incl...
...如果输入abc def【回车】,结果是def def,为什么是这样呢?
p,q指向的是同一地址,在这同一地址的值当然是一样了。显示p的地址上放abc,然后又在q指向的地址上放def,p,q指向的地址是一样的,def覆盖了abc
...如果输入abc def【回车】,结果是def def,为什么是这样呢?
故而最后输出也是def 你试着输入def abc回车,那么输出就是abc abc。同理,abc把def覆盖了
输入abcdef,为啥答案是fabcde
函数fun() 就是 先把最后一个字符存到临时变量temp里,然后把其它字符右移一个位子,再把temp里的放入第一个位子。所以abcdef 就是把 f 放入 temp,然后 e 坐 f 的位子, d 坐 e 的位子, c 坐 d 的位子,...temp 里的 f 放入 a 的位子. 所以输出 fabcde ...
有以下程序 :若从键盘输入:abc def<回车>,则输出结果是 :
若从键盘输入:abc def<回车>,则输出结果是 :def def
在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为
while语句括号中的表达式,只要满足要求就可以执行,当输入A B C e d f时,对应的值ch=getchar()!=‘\n’既(表达式)为真。所以一直执行到输入<回车>时,while语句才停止执行!
C语言编程器中输入的字符串abcdef,但输出的缺少f,+原因是什么?
可能是因为在输出字符串时,格式化字符串使用了错误的控制字符导致的,比如使用了 %d 而不是 %s 来输出字符串。或者是字符串末尾没有以空字符 '\0' 结尾,导致在输出时无法正确识别字符串结束位置。需要检查代码中字符串输出的部分,确认格式化字符串和参数的类型和数量是否正确,并且确保在输入字符串时...
若运行以下程序时从键盘输入abc def<回车>,则输出结果是( )_百度...
选a def def p和q指向同一块内存块,所以他们的结果是一样的。你那句输入语句scanf("%s%s",p,q);相当于是对同一块内存块写了两次,第二次把第一次覆盖掉了。结果就为后输入的结果
...程序,为什么比如我输入abc 然后回车,再输入 def 再回车,输出的是ab...
gets(a);、gets(b);中间的getchar();去掉吧,gets函数读入时以换行符或EOF为结束标志,并且换行符自动删除。所以getchar是没必要的。
求一些c编程题
104、在执行以下程序时,如果从键盘上输入:ABCdef〈回车〉,则输出为 A)ABCdef B)abcdef C)abc D)DEF # include main() { chsr ch; while((ch=getchar())!='\n') { if(ch>='A'&& ch<='Z')ch=ch+32; 、C、2 105、整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是 A...