| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 470 人关注过本帖
标题:数组问题,很不明白,求高人指点
只看楼主 加入收藏
pearlangel
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-9
结帖率:85.71%
收藏
已结贴  问题点数:12 回复次数:9 
数组问题,很不明白,求高人指点
下面程序输出的结果是()
#include<stdio.h>
main()
{ char w[][10]={"ABCD","EFGH","IJKL","MNOP"};
FOR(K=1;K<3;K++)printf("%s",&w[k][k]);
}
A.ABCD FGH KL   B.ABC EFG IJ M    C.EFG JK 0    D.FGH KL

%s应该是输出整个字符串的吧,为什么答案会拆开,求详解。

2011-08-24 16:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:6 
1.你抄题不仔细,K和k是不同的变量,要注意。
2.看清楚printf()中的字符串入口。

授人以渔,不授人以鱼。
2011-08-24 16:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
写这道题的人是纯粹编题的,这代码能上机运行?

授人以渔,不授人以鱼。
2011-08-24 16:53
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:6 
程序代码:
#include<stdio.h>
void main()
{
    int k;
    char w[][10]={"ABCD","EFGH","IJKL","MNOP"};
    for(k=1;k<3;k++)
        printf("%s",&w[k][k]);
}
   'A'        'B'        'C'       'D'       '\0'
&w[0][0]    &w[0][1]  &w[0][2]  &w[0][3]   &w[0][4]

   'E'        'F'        'G'       'H'       '\0'
&w[1][0]    &w[1][1]  &w[1][2]  &w[1][3]   &w[1][4]

   'I'        'J'        'K'       'L'       '\0'
&w[2][0]    &w[2][1]  &w[2][2]  &w[2][3]   &w[2][4]

   'M'        'N'        'O'       'p'       '\0'
&w[3][0]    &w[3][1]  &w[3][2]  &w[3][3]   &w[3][4]
2011-08-24 16:54
pearlangel
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-9
收藏
得分:0 
回复 3楼 TonyDeng
还真是编的题,我是看不太明白的,这是二级书上的题目,嘿嘿
2011-08-24 17:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
按正确代码答案是D,只是这个垃圾代码其实不是这样输出,按它的写法,是5个字母连在一起的。你看看4楼的表就明白了,&w[k][k]是哪个位置?从那开始遇到'\0'作为字符串输出。

[ 本帖最后由 TonyDeng 于 2011-8-24 17:11 编辑 ]

授人以渔,不授人以鱼。
2011-08-24 17:08
pearlangel
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-9
收藏
得分:0 
回复 4楼 laznrbfe
您的意思是F和K,那输出的为什么是个字符串呢?还是有一编题
2011-08-24 17:09
liujigen
Rank: 2
等 级:论坛游民
帖 子:32
专家分:63
注 册:2010-8-24
收藏
得分:0 
输出的是2组字符串,&w[1][1] --> FGH, &w[2][2]-->KL,字符串是以'\0'结束。好好的看一下字符串的定义,就能做出这道题。
2011-08-24 17:11
pearlangel
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-9
收藏
得分:0 
回复 6楼 TonyDeng
那实际应该是什么样呢?大侠写个样本吧,我是自学c,不可避免的被各式各样的题目迷惑。弄得一头雾水,谢谢
2011-08-24 17:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
4楼就是正确的可运行代码。1楼那个,漏了k的变量声明(应全程k),而且FOR应是for,每次printf()输出应有明显的分隔符。注意:C语言是大小写敏感的。
你结合4楼和8楼再检查一下吧,字符串的概念,是要好好再学习一遍。

授人以渔,不授人以鱼。
2011-08-24 17:18
快速回复:数组问题,很不明白,求高人指点
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013239 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved