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

有以下程序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。

分类:其他
相关推荐

1、有以下程序: #include<stdio.h> main() { char

有以下程序: #include<stdio.h> main() { char c[6]; int i=0; for(j<6;c[i]=getchar(),i++); for(i=0,i<6;i++)putchar(c[i]); printf(" "); } 如果从键盘上输...

2、有以下程序: main() { char str[][10]={"China

有以下程序: main() { char str[][10]={"China","Beijing"),*P=str; printf("%s ",p+10); } 程序运行后的输出结果是 ______。AChinaBBeijingCngDing

3、有以下程序: #include<stdio.h> main(){ char

有以下程序: #include<stdio.h> main(){ char c[6]; int i=0; for(;i<6;c[i]=getchar(),i++); for(i=0;i<6; i++)putchar(c[i]); printf(" "); } 如果从键...

4、以下程序的输出结果是( )。main{int x=0.5;char z=a;

以下程序的输出结果是( )。main{int x=0.5;char z=a;printf("%d\n",(x&1)&&(z<2));}A0B1C2D3

5、有下列程序:main{ char p[]={a,h,c},q[]="

有下列程序:main{ char p[]={a,h,c},q[]="a";printf("%d%d\n".sizeof(P),sizeof(q));}程序运行后的输出结果是( )。A4 4B3 3C3 4D4 3

6、有以下程序 main() { int a=666,b=888; Printf

有以下程序 main() { int a=666,b=888; Printf("%d ",a,b) ; } 程序运行后的输出结果是A错误信息B666C888D666,888