有以下程序,程序运行的输出结果是
# include <string.h>
# include <stadio.h>
main( )
{ char p〔20〕={'E','F','G','H'},
q〔〕="EFGH",r〔〕="EFGHI";
strcat (p,r); strcpy (p+strlen(q), q);
printf("%d\n",strlen(p) );
}
A 9
B 11
C 6
D 8
正确答案:D。
这个题综合考察了字符数组、字符串的概念以及strcat、strcpy、strlen三个函数的应用。
没有特别的解题技巧,除了掌握上述知识外,要训练阅读代码的能力。
从第一行开始,一行行读,根据数据流向,记录数据状态。
p[]:EFGH‘\0’……'\0'
q[]:EFGH‘\0’
r[]:EFGHI‘\0’
strcat(p,r):p[]:EFGHEFGHI‘\0’
strcpy (p+strlen(q), q);:p[]: EFGHEFGH‘\0’
printf("%d\n",strlen(p) );:strlen统计‘\0’之前的字符,所以输出为8。
平时多练习,才能熟悉这些函数。可以用调试器看内存情况。