曲谱网 > 知识库 >

导航导航

scanf字符串

发布日期:2019-02-10 17:29:26编辑:音乐人

概括:这道题是殷筛惩同学的课后练习题,主要是关于scanf字符串,指导老师为李老师。

题目:scanf字符串

解:

选C.

A不用说了.

B是一个合法的“字符数组”初始化语句,但是不是一个正确的“字符串”赋值语句,因为字符串要求最后有字符串结束标志'\0'.

C对."ABCDE"是一个字符串常量,它存储在静态数据区中.

D不对.这个语句跟下面这种情况类似:

int *p;

scanf("%d", p);

p是一个野指针,不能直接往p指向的内存空间中输入数据.对于这个题目来说,只能用:

char s[10];

scanf("%s", s);这种操作.

举一反三

例1: 【以下能正确进行字符串赋值,赋初值的语句组是()Achar[5]={'a''e''i''o''u'};Bchar*s;s="good!";Cchars[5]="good!";Dchars[5];s=“good";】


思路提示:

B正确

A char[5]={'a' 'e' 'i' 'o' 'u'}; 没有终结符,不算字符串

B char *s;s="good!"; //定义一个字符指针,然后让这个指针指向常量字符串"good!",正确

C char s[5]="good!"; //"good!"有6个字符,s空间不够,会越界

D char s[5];s=“good"; //s是个数组名,是常量,不可以被赋值

相关思考练习题:

题1:为什么在C语言中,用scanf输入字符串时,不需加&

点拨:因为字符串变量名在 scanf 语句里 表示指针 (地址) 例如: char s[80]; scanf("%s",s); --- 这里的s 已是地址。 当然,写成 scanf("%s",&s[0] ); 也可以, &s[0] 是地址。

题2:★C语言 关于scanf输入字符串的问题

点拨:name=%s num=%d 它会按照你的格式来进行接收字符串到 一个内存地址中,但这个地址并不是 你定义的 name[20] 和 num ,而是 stdin 这个结构体中 _base 成员 指向的数据区,这个数据区叫 做 输入缓冲出,同理 还有 输出缓冲区 :stdout._base 。 s...

题3:关于用scanf输入 字符串

点拨:可以让你在运行完有效代码后,不至于直接运行到return 0就推出程序。你可以看运行结果,然后按任意键,2次getchar函数运行完后才退出程序。 如果你用visual studio2008或更高作为开发环境的话,编译生成的程序不用加这里最后的getchar,程序会主...

题4:用scanf输入字符串不需要&么>?

点拨:不要,因为a是一个字符数组名或指针,是地址性的

题5:scanf接受键盘输入字符串后末尾是否自动加'\0?'

点拨:是的,自动就加上了 #include "stdio.h" int main(void) { char s[100]; scanf("%s", s); printf("%s", s); } 自动就加上了,不用担心

大家都在看

最新资讯

推荐专题

儿童歌曲大全 儿童故事大全 卡农钢琴曲谱 天空之城钢琴曲谱 梦中的婚礼钢琴曲谱 梁祝》钢琴曲谱 童年的回忆钢琴曲谱 彩云追月钢琴曲谱 康定情歌钢琴曲谱 水边的阿狄丽娜钢琴曲谱 渔舟唱晚古筝曲谱 云水禅心古筝曲谱 高山流水古筝曲谱 浏阳河古筝曲谱 南泥湾古筝曲谱 梅花三弄古筝曲谱 笑傲江湖古筝曲谱 青花瓷古筝曲谱 月光下的凤尾竹葫芦丝曲谱 婚誓葫芦丝曲谱 荷塘月色葫芦丝曲谱 映山红葫芦丝简谱 军港之夜葫芦丝简谱 青花瓷葫芦丝简谱 蝴蝶泉边葫芦丝曲谱 美丽的神话葫芦丝曲谱 致爱丽丝电子琴谱 小苹果 电子琴谱 天空之城 电子琴谱 婚礼进行曲 电子琴谱 茉莉花 电子琴谱 红河谷曲谱