目录: 标题| 题干| 答案| 搜索| 相关
问题

有以下程序main(){ char a[]={ ’a’, ’b’, ’c’,


有以下程序main(){ char a[]={ ’a’, ’b’, ’c’, ’d’, ’e’, ’f’, ’g’, ’h’, ’\0’}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d\b",i,j);}程序运行后的输出结果是A.9,9 B.8,9 C.1,8 D.9,8

  • A9,9
  • B8,9
  • C1,8
  • D9,8
参考答案
参考解析:

在本题中,程序首先定义一个字符数组,并对其进行了初始化,在初始化的最后添加了一个字符串结束标志,表示前面的各字符可以被当做一个字符串操作。从这个初始化的操作我们也可以看出数组的长度为9。然后定义两个整型变量,分别用于保存计算结果,sizeof(a)是计算数组a所占的存储空间字节数,由于数组a是大小为9的字符型数组,那么占用的存储空间是1´9=9个字节,将结果保存至变量i中。strlen(a)是计算数组a中字符的个数,虽然数组a中有9个字符,但结合上面的分析我们可以知道,其中’\0’是字符串结束标志符,不能作为字符串中的字符,因此返回的结果是8,并将该结果保存至变量j中。最后,程序执行输出语句,分别输出变量i和j的值,从上面的分析我们可以知道,输出的结果是9,8,因此本题正确答案是D。

分类:其他