请教一道C语言题,请问答案是什么,还有怎么做的?

#include<string.h>main(){charch[]="abcd",x[4][4];inti;for(i=0;i<4;i++)strcpy(x[i],ch)... #include <string.h>
main()
{char ch[]="abcd",x[4][4];int i;
for(i=0;i<4;i++)
strcpy(x[i],ch);
for(i=0;i<4;i++)
printf("%s",&x[i][i]);
printf("\n");
}
展开
 我来答
qbjqbj
2011-09-06 · TA获得超过891个赞
知道小有建树答主
回答量:119
采纳率:0%
帮助的人:125万
展开全部
首先你这个程序少个头文件#include<stdio.h>
猜测运行结果是abcdabcdabcdabcdbcdabcdabcdcdabcdd
说明原因:
楼只要知道char x[4][4];代表一个字符串数组 这个数组x只能放4个字符串,每个字符串只能放4个字符;
for(i=0;i<4;i++)
strcpy(x[i],ch);
这两步是赋值,就是将x[i],(每个字符串)都赋予一个ch(abcd),此时x是abcdabcdabcdabcd
for(i=0;i<4;i++)
printf("%s",&x[i][i]);
这两不是打印注意%s形式打印 要是%c 结果就是abcd了 这样的话是按着&x[i][i]的地址向后取
x[0][0]是首地址全取abcdabcdabcdabcd
x[1][1]是第1*4+1=5位置,取bcdabcdabcd
x[2][2]是第2*4+2=10位置,取cdabcd
x[3][3]是第3*4+3=15位置,取d
所以打印完应该是abcdabcdabcdabcd+bcdabcdabcd +cdabcd+d再加上/n换行
哪里不懂可以追问
破印之苍龙
2011-09-06 · 超过11用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:37.4万
展开全部
首先,printf("%s",x[i][i]);这里不要取地址符;
我没调试,按程序看是将abcd分别付给x[4][4]的每一行,即:
abcd
abcd
abcd
abcd
结果输出abcd换行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小浣和V
2011-09-06 · TA获得超过100个赞
知道答主
回答量:103
采纳率:0%
帮助的人:65.5万
展开全部
strcpy(x[i],ch);是指将字符串ch复制给字符串x[i],一共循环了4次,所以x[4][4]是abcdabcdabcdabcd,
当i=0时,从x[0][0]开始输出,所以前面16个字符为abcdabcdabcdabcd,
当i=1时从x[1][1]开始输出,接下来的字符为bcdabcdabcd,
当从x[2][2]即字符开始输出时,接下来的字符为cdabcd,
而从x[3][3]开始时即从字符d开始时输出字符为d
所以最后的答案是
abcdabcdabcdabcdbcdabcdabcdcdabcdd
这个已经在vc上试过了的,绝对经得住考验的~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qazasd520
2011-09-06
知道答主
回答量:43
采纳率:0%
帮助的人:28.8万
展开全部

通过复制了4次字符串

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xixiyua2
2011-09-06 · TA获得超过102个赞
知道答主
回答量:119
采纳率:0%
帮助的人:104万
展开全部
楼主试试这样
#include <string.h>
#include <STDIO.H>
void main()
{char ch[]="abcd",x[4][4];int i;
for(i=0;i<4;i++)
strcpy(x[i],ch);
for(i=0;i<4;i++)
{printf("%c",x[i][i]);
printf("\n");}
}
可以看看字符串结束符\0,和printf中%s与%c,
具体你给出的那个可以这样认为:内存中有4个连续的abcd,分别对应x00,X01,X02……;s表示字符串输出,没有\0是不会停止的 ,而且你的程序中那样用是不安全的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友75ddf79
2011-09-06 · TA获得超过141个赞
知道小有建树答主
回答量:228
采纳率:0%
帮助的人:137万
展开全部
abcdabcdabcdabcdbcdabcdabcdcdabcdd
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式