编程小白C语言 结构体数组2

题目要求

运行下列程序,输出结果是             

struct  contry

{

  int  num;

  char  name[20];

}x[5]={1,"China",2,"USA",3,"France",4,"England",5,"Spanish"};

int main()

{

  int i;

  for  (i=3;i<5;i++)

      printf("%d%c",x[i].num,x[i].name[0]);

}

 思路分析

 咋一看没什么难度,这不是和之前一题一样的么,画个表一下子就知道了

x 0 1 2 3 4
  China USA France England Spanish

然后加一个for循环,i=3,接着i=4,             

i=5不符合,退出for循环

但是!!!!!注意注意注意!!!!

慢点看一眼,最后输出的是 %c,x[i].name[0],惊不惊喜?意不意外?  这个是选择题,然后填4England5Spanish,就错了

%c是打印一个字符,x[i].name[0]是取第一个字母,也就是England的E,Spanish的S

最后输出应该是 4E5S

代码演示 

#include
struct  contry
{
	int  num;
	char  name[20];
}x[5]={1,"China",2,"USA",3,"France",4,"England",5,"Spanish"};
int main()
{
	int i;
	for  (i=3;i<5;i++)
	printf("%d%c",x[i].num,x[i].name[0]);
	return 0;
}

查看结果


输出结果 为4England5Spanish  是什么代码呢

#include
struct  contry
{
	int  num;
	char  name[20];
}x[5]={1,"China",2,"USA",3,"France",4,"England",5,"Spanish"};
int main()
{
	int i;
	for  (i=3;i<5;i++)
	printf("%d%s",x[i].num,x[i].name); //就只要改成%s,删除name[0]中的[0] 
	return 0;
}

查看结果

 

你可能感兴趣的:(C语言)