有下列程序  #include<stdio.h>  main()  {   char v[5][10]={"efg","abcd","snopq","hijkl","xyz"};   printf("%s,%c,%s,%c,%s",*v,**(v+3)

admin2022-04-02  23

问题 有下列程序
 #include<stdio.h>
 main()
 {
   char v[5][10]={"efg","abcd","snopq","hijkl","xyz"};
   printf("%s,%c,%s,%c,%s",*v,**(v+3),v[4]+2,*(v[2]+4),v[1]+1);
 }
 程序执行后的输出结果是(          )。

选项 A、efg,h,z,q,bcd
B、efg,d,zyz,w,bbcd
C、efgabcdsnopqhijklxyz,h,z,q,bcd
D、efgabcdsnopqhijklxyz,d,zyz,w,bbcd

答案A

解析 程序定义一个二维字符数组v,使用5个字符串初始化。对于表达式“*v”等价于“*(v+0)”,输出的是数组v的第一个元素:efg;“**(v+3)”等价于“*(*(v+3)+0)”,输出的是数组v的第四个元素的第一个字符:h;“v[4]”表示数组v的第五个元素,v[4]+2表示输出从下标2开始的所有字符:z;“v[2]”表示数组v的第三个元素,*(v[2]+4)表示数组v的第三个元素的下标为4的字符:q;“v[1]+1”表示数组v的第二个元素从下标1开始的子字符串,即:bcd,本题输出:efg,h,z,q,bcd。本题答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/Fhkp777K
0

最新回复(0)