雅思口语考试时间选择:关于字符型数据输入输出的小问题:
来源:百度文库 编辑:查人人中国名人网 时间:2024/05/30 20:32:02
关于字符型数据输入输出的小问题:
有如下程序:
#include "stdio.h"
main()
{ int i;char ch;
for(i=0;i<=5;i++) {ch=getchar();putchar(ch);}
}
如输入a<CR>bc<CR>de<CR>
则程序的输出是什么??能告诉我为什么吗??
<CR>代表回车符
有如下程序:
#include "stdio.h"
main()
{ int i;char ch;
for(i=0;i<=5;i++) {ch=getchar();putchar(ch);}
}
如输入a<CR>bc<CR>de<CR>
则程序的输出是什么??能告诉我为什么吗??
<CR>代表回车符
若输入 a<CR>bc<CR>de<CR> 则程序的输出是这 3 行:
a
bc
d
用你的方式表达输出的话,则是:
a<CR>bc<CR>d
每一个回车都是一个字符:2 个回车 + 4 个字母 == 6 个字符。
原因是程序里的 for 语句只执行循环体 6 次,而循环体的每一次执行所完成的操作是:
1)通过 getchar( ) 读取标准输入上的一个字符,并把该字符赋值给 ch
2)通过 putchar( ) 把 ch 输出到标准输出上去
即是说,程序会把标准输入上的前 6 个字符按序输出到标准输出上去。
其实程序里的 ch 没有必要。 要达到同样的效果只需写:
#include <stdio.h>
void main( ) {
int i;
for ( i = 0; i <= 5; i++ )
putchar( getchar( ) );
}
对了,楼上的 mscao 给出的:
a
a
bc
bc
de
d
是键盘输入加上程序输出,不单是程序输出。
a (输入+回车)
a
bc (输入+回车)
bc
de (输入+回车)
d
因为的控制循环输入的i的0到5共6次,到最后那个输出的de的d的时候次数已经用完了程序就结束了。
a<CR>b
因为进行了6次循环,每次读入一个字符,然后输出。
(本结果在VC上经过验证)
如果<CR>是换行符则结果为
a (输入+换行)
a
bc (输入+换行)
bc
de (输入+换行)
d
不好意思,先前没有理解您的意思
不是很理解你的意思,不知道你的<CR>代表什么??
1.如果你把<CR>当成普通字符,那么输出就是楼上回答的 :a<CR>b
2.如果你在输入时把<CR>当成回车,结果为:
a
a
bc
bc
de
d