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

admin2022-10-25  43

问题 有下列程序:
     #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的第1个元素efg;“**(v+3)”等价于“*(*(v+3)+0)”,输出的是数组v的第4个元素的第1个字符h;“v[4]”表示数组v的第5个元素,“v[4]+2”表示输出从下标2开始的所有字符,即z;“v[2]”表示数组v的第3个元素,“*(v[2]+4)”表示数组v的第3个元素的下标为4的字符,即q;“v[1]+1”表示数组v的第2个元素从下标1开始的子字符串,即bcd。所以程序输出:efg,h,z,q,bcd。本题答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/wGd0FFFM
0

最新回复(0)