c语言问题 50分悬赏!!!谢谢了 回答好的加分!!!! 求详解~~~
1.执行下面程序输入ABC求输出结果()#include“stdio,h”intmain(){chars[15]="12345";gets(s);stract(s,"67...
1.执行下面程序 输入ABC 求输出结果()
#include “stdio,h”
int main ( )
{ char s[15]="12345";
gets(s);stract(s,"6789");printf("%s",s);return 0;}//不懂 S[15]没用??
A.123456789 B.ABC6789 C.ABC456789 D.12345ABC6789
答案 [B]
2.下面程序中有错误的行是( )
(1) int main ()
(2) {
(3) int a[3]={1};
(4)int i;
(5)scanf ("%d",&a); //不懂
(6)for (i=1;i<3;i++) a[0]=a[0]+a[i];
(7)printf("%f\n",a[0]);
(8) return 0;}
A 3 B. 6 C.7 D.5
答案[D]
3. char s[ ]="china";char *p;p=s; 则下列正确的是()
A. s与p完全相同
B. 数组S中的内容与指针变量P中的内容相等
C. S数组的长度和P所指向的字符串长度相等
D. *p与s[0]相等
答案:[D] 展开
#include “stdio,h”
int main ( )
{ char s[15]="12345";
gets(s);stract(s,"6789");printf("%s",s);return 0;}//不懂 S[15]没用??
A.123456789 B.ABC6789 C.ABC456789 D.12345ABC6789
答案 [B]
2.下面程序中有错误的行是( )
(1) int main ()
(2) {
(3) int a[3]={1};
(4)int i;
(5)scanf ("%d",&a); //不懂
(6)for (i=1;i<3;i++) a[0]=a[0]+a[i];
(7)printf("%f\n",a[0]);
(8) return 0;}
A 3 B. 6 C.7 D.5
答案[D]
3. char s[ ]="china";char *p;p=s; 则下列正确的是()
A. s与p完全相同
B. 数组S中的内容与指针变量P中的内容相等
C. S数组的长度和P所指向的字符串长度相等
D. *p与s[0]相等
答案:[D] 展开
3个回答
展开全部
1、s[15]是定义一个数组,s为数组名,15表示它的长度(内存)。在“gets(s);stract(s,"6789");printf("%s",s)”中,引用的是s,其实代表的是整个数组,学过指针的吧?数组名就是数组的首地址,也就意味着从这个首地址所代表的元素开始依次对后面的元素实施操作。而”15“就好比事先准备的空间,你装的元素可以比它少,但是不能大于它。所以s[15]也是有用的。
2、和前面1题有相似之处,定义数组a[3]后,“a”就表示这个数组的地址,也是它的首地址,所以a已经包含了“&”(取地址符号)。
3、D选项中*p表示引用指针p所指向的元素(从“;char *p;p=s”此句中可以知道p就是指向的数组s).而引用也和前面说的一样,是从首地址所代表的元素(s[0])开始对数组实施操作,so,*p=s[0].
补充一下,解这类题前,你得清楚哪些代表“地址”,哪些代表地址里面包含的”元素“。这也是学指针的基础,会有那么一点点抽象,i like it ,haha,加油!
2、和前面1题有相似之处,定义数组a[3]后,“a”就表示这个数组的地址,也是它的首地址,所以a已经包含了“&”(取地址符号)。
3、D选项中*p表示引用指针p所指向的元素(从“;char *p;p=s”此句中可以知道p就是指向的数组s).而引用也和前面说的一样,是从首地址所代表的元素(s[0])开始对数组实施操作,so,*p=s[0].
补充一下,解这类题前,你得清楚哪些代表“地址”,哪些代表地址里面包含的”元素“。这也是学指针的基础,会有那么一点点抽象,i like it ,haha,加油!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.对于gets是将键盘输入的字符保存到参数地址里,这里是保存到数组S中,然后在字符串后面加\0,当运行到gets(s);时S内元素分布依次是{'A', 'B', 'C', '\0', '5'},而stract用来连接2个字符串,而字符串结束的标记为'\0',所以实际上连接的是"ABC", "6789"这两个字符串
2.scanf ("%d",&a); 表示要输入的是个整数,你需要用一个整型的变量来保存它,而不是一个数组名。正确方法是scanf ("%d",&a[0]);
3.A,s与p不完全相同,s是数组,他保存了字符串"china",而指针是指向这个数组的。
B.s保存了字符串,而指针只指向数组,指针的内容是数组的地址
C,S数组还要包括\0
2.scanf ("%d",&a); 表示要输入的是个整数,你需要用一个整型的变量来保存它,而不是一个数组名。正确方法是scanf ("%d",&a[0]);
3.A,s与p不完全相同,s是数组,他保存了字符串"china",而指针是指向这个数组的。
B.s保存了字符串,而指针只指向数组,指针的内容是数组的地址
C,S数组还要包括\0
更多追问追答
追问
请问第二题要表达的意思是什么?
追答
scanf 是将键盘输入的字符或字符串保存到相应的地址去
%d 表示保存一个整型变量,这样你在键盘输入一个整型的值后,就会保存到整型变量的地址中。
其他还有%s,%c等
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题:stract(s,"6789");printf("%s",s)这里面的s就代表s[15],s里面放的是s[15]这个数组的首地址;
第二题:scanf ("%d",&a); //不懂 这个a在前面没定义;&a的意思是代表a这个变量的地址;
第三题:s和p都是存放地址的。p和s的内容相同,但是s和p是存放在不同地址的。所以A错,
s中的内容和p中的内容确实相等,存放的都是"china"字符串的首地址;选B,你做错了; s数组的长度有加‘\0’所以是6个字节,而p中字符串的长度是5个字节即为“china”,所以C错;*p为字符串"china"而s[0]为'c'字符,故D错;
第二题:scanf ("%d",&a); //不懂 这个a在前面没定义;&a的意思是代表a这个变量的地址;
第三题:s和p都是存放地址的。p和s的内容相同,但是s和p是存放在不同地址的。所以A错,
s中的内容和p中的内容确实相等,存放的都是"china"字符串的首地址;选B,你做错了; s数组的长度有加‘\0’所以是6个字节,而p中字符串的长度是5个字节即为“china”,所以C错;*p为字符串"china"而s[0]为'c'字符,故D错;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询