题目要求
运行下列程序,输出结果是 。
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<stdio.h>
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<stdio.h>
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;
}
查看结果