哪位高手帮看一下,这道C语言题目可否帮解释详细点?结果是多少呢?
以下程序运行后的输出结果是_____.#include<string.h>main(){charch[]="abc",x[3][4];inti;for(i=0;i<3;i...
以下程序运行后的输出结果是_____.
#include <string.h>
main()
{char ch[]="abc",x[3][4];int i;
for(i=0;i<3;i++) strcpy(x[i],ch);
for(i=0;i<3;i++) printf("%s",&x[i][i]);
printf("\n");
}
尤其好解释strcpy(x[i],ch);和printf("%s",&x[i][i]);结果的输出 展开
#include <string.h>
main()
{char ch[]="abc",x[3][4];int i;
for(i=0;i<3;i++) strcpy(x[i],ch);
for(i=0;i<3;i++) printf("%s",&x[i][i]);
printf("\n");
}
尤其好解释strcpy(x[i],ch);和printf("%s",&x[i][i]);结果的输出 展开
展开全部
源文件就有问题.
最后结果是abcbcc
程序改为如下,在VS2005下可以运行
#include <string.h>
//包含string,所以就可以用strcpy这个字符串复制函数
#include <stdio.h>
//包含stdio.h,这样就可以用printf
void main()
{
char ch[]="abc",x[3][4];
//建立字符串一惟数组ch,和二唯的x,字符串ch已经被定义了大小,是ch[4],最后是字符串结束标志"\0",自动加上的。
int i; //循环用的i
for(i=0;i<3;i++)
strcpy(x[i],ch);//把ch里的内容,给x[i]
//最后x中的内容就是x[0]="abc\0",x[1]="abc\o",x[2]="abc\o"
for(i=0;i<3;i++)
printf("%s",&x[i][i]); //输出的时候就不一样了,因为里面是%s,所以从x[i][i]开始输出,直到输出到"\0"的时候,就停止
printf("\n"); //换个行
getchar();//等个按键,方便咱们看最后结果。
}
最后结果是abcbcc
程序改为如下,在VS2005下可以运行
#include <string.h>
//包含string,所以就可以用strcpy这个字符串复制函数
#include <stdio.h>
//包含stdio.h,这样就可以用printf
void main()
{
char ch[]="abc",x[3][4];
//建立字符串一惟数组ch,和二唯的x,字符串ch已经被定义了大小,是ch[4],最后是字符串结束标志"\0",自动加上的。
int i; //循环用的i
for(i=0;i<3;i++)
strcpy(x[i],ch);//把ch里的内容,给x[i]
//最后x中的内容就是x[0]="abc\0",x[1]="abc\o",x[2]="abc\o"
for(i=0;i<3;i++)
printf("%s",&x[i][i]); //输出的时候就不一样了,因为里面是%s,所以从x[i][i]开始输出,直到输出到"\0"的时候,就停止
printf("\n"); //换个行
getchar();//等个按键,方便咱们看最后结果。
}
展开全部
#include <string.h> /*头文件 调用strcpy字符串复制系统函数*/
main() /*主函数*/
{char ch[]="abc",x[3][4];int i; /*定义ch数组 二维数组X 并赋初始值*/
for(i=0;i<3;i++) strcpy(x[i],ch); /*一共循环3次 每次循环把CH数组的值复制到X数组的横列中 循环后X[0]=abc,x[1]=abc,x[2]=abc*/
for(i=0;i<3;i++) printf("%s",&x[i][i]);/*这里有点问题!",x[i][i]这里是不是你发错了!按理应该是为x[i]才对 因为输出里的符号是%S!要不%C还能理解 !你想看看吧!有问题在留言*/
printf("\n"); /*每次输出一次字符串后结尾加回车换行符 主要是为了区分每条字符串用的!*/
}
我觉的原文件大体没什么问题!!给个 旗子吧 !!嘿嘿
main() /*主函数*/
{char ch[]="abc",x[3][4];int i; /*定义ch数组 二维数组X 并赋初始值*/
for(i=0;i<3;i++) strcpy(x[i],ch); /*一共循环3次 每次循环把CH数组的值复制到X数组的横列中 循环后X[0]=abc,x[1]=abc,x[2]=abc*/
for(i=0;i<3;i++) printf("%s",&x[i][i]);/*这里有点问题!",x[i][i]这里是不是你发错了!按理应该是为x[i]才对 因为输出里的符号是%S!要不%C还能理解 !你想看看吧!有问题在留言*/
printf("\n"); /*每次输出一次字符串后结尾加回车换行符 主要是为了区分每条字符串用的!*/
}
我觉的原文件大体没什么问题!!给个 旗子吧 !!嘿嘿
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
strcpy(x[i],ch) //把ch复制给x的第i行结里为abcabcabc
printf("%s",&x[i][i]); //这里取地址符"&"做什么用? 这句话表示把x[i][i]的地址(整型)转化成字符串
没有"&"结果为abc
printf("%s",&x[i][i]); //这里取地址符"&"做什么用? 这句话表示把x[i][i]的地址(整型)转化成字符串
没有"&"结果为abc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询