C语言问题!这几题不会啊!再教教偶吧!!T -T谢谢先!!

来源:百度知道 编辑:UC知道 时间:2024/06/09 11:45:45
17. 若有语句;char str1[8].str2[8]={"hello!"};
则能将字符串hello!赋给str1的正确语句是_______.
(str是什么型啊?这个怎么解的啊??)
A、str1=str2
B、strcpy(str1,str2)
C、str1==str2
D、strcpy(str2,str1)

21. 若有说明语句:int a,b,c,*d=&c;
则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是
(*d=&c是什么意思啊?)
A、scanf("%d%d%d",&a,&b,*d);
B、scanf("%d%d%d",&a,&b,&d);
C、scanf("%d%d%d",a,b,d);
D、scanf("%d%d%d",a,b,*d);
F、
21题是A还是B啊!!

第一问 选择B str是字符数组
strcpy的原型是strcpy(char *dest, const char *src);

21的声明等价于
int *d;
d=&c;
也就是定义d为指向c的指针
故我觉得正确地赋值应该是
scanf("%d%d%d",&a,&b,d);

(str是什么型啊?这个怎么解的啊??)
str不是什么类型 在题目里看来 是一个变量 它的类型是CHAR
17、D

(*d=&c是什么意思啊?)

这个是指针 指向C的地址

21、A

B、strcpy(str1,str2)
F、scanf("%d%d%d",&a,&b,d);

d即表示指针,故不用&

B、strcpy(str1,str2)
F、scanf("%d%d%d",&a,&b,d);