c语言程序输出结果的疑惑!请教高手解答!

2024-11-23 12:49:06
推荐回答(5个)
回答1:

scanf 语句中格式要求是:name=%s ,num=%d,而你实际输入的是:name=Lili num=1001<回车>,没有中间的逗号,后面的num=1001就不会将1001送入到num后面的%d中,所有num没有得到值,是蠢让孙个随机数。而输入name=Lili ,系统以中间的空格作为字符串的结束符,将Lili送入name=后面的%s,所以name的值是Lili。
所以滑模,带链选A

回答2:

%s遇到空格会结束输入衫陵.
所以 当输入name=Lili num=1001后.
前面的name=和scanf的name=相符,被过滤掉.
输入到变衡搏量name从L开始,到空咐塌祥格结束.
所以 name="Lili"
选A

回答3:

选猜者乎择A,因为scanf严格的要求输入对齐,同时空白嫌困符(包括空格)是两穗悉个字符串的分隔符,
因此,name的值是lili
但是如果你输入name=Lili,num=1001的话,name的值为Lili,num=1001因为 没有空格隔开
编译器把它看成一个字符串

回答4:

%d,%o,%x,%u知道是什么意握局思吧?然后是哗肢哪里不明白呢?计算机内部存储是采取补码的形式,乱皮世就是原数据取反加一,你可以用二进制写一下65535,再写一下-1,你会发现都是一样的,只是65535是无符号型,首位是作为数据位,而普通的整形,默认首位是标志位。负数则为1

回答5:

选A。scanf语句输入时要按照引号里面的格式键入值;输入字符串结束的标志是空格或回车