題目要求
運行下列程序,輸出結果是 。
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;
}
查看結果