计算机二级

下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A.67 B.0 C.字符’C’的地址 D.字符’C’

题目

下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A.67 B.0 C.字符’C’的地址 D.字符’C’

参考答案和解析
正确答案:B
在本题中,程序段首先定义了一个字符型数组str,并将其初始化为“ABC”,然后定义一个字符型的指针变量p,使其指向数组str的首地址。然后程序运行输出语句,从输出语句的输出格式可以看出,要求输出的是一个十进制数值,而输出列表中的*(p+3)表示输出的是数组str中的第四个元素,从数组的初始化我们可以看出,其中只有三个字符元素,而输出语句则要求输出第四个元素。
这里需要我们了解字符串在字符数组中的存储方式,字符串在字符数组中存储后,系统会自动给其添加一个结束标志’\0’,即0值。因此,在用字符数组存储字符串时,字符数组申请的空间应该是字符串的字符个数加1。
根据上面的分析,我们可以知道输出的第四个元素是’\0’字符,它对应的十进制值是0,因此本题的正确答案是B。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

6、下面程序段的运行结果是()。 char str[]="ABC",*p=str; printf("%d\n",*(p+3));

A.67

B.0

C.字符'C'的地址

D.字符'C'


abc

第2题:

下面程序段的输出结果是( )。 char str[]="ABC",*p=str; Printf("%d\n",*(p+3));

A.67

B.0

C.字符'C'的地址

D.字符'C'


正确答案:B
解析:本题考查指向字符串的指针变量。指针变量p指向的应该是该字符串中的首地址,p+3指向的是字符串结束标志"\0"的地址,因而*(p+3)的值为0。

第3题:

下列程序段的运行结果是()。includevoid main(){ char str[]="ABC",*p=str;printf("%d\

下列程序段的运行结果是( )。#include<stdio.h>void main(){ char str[]="ABC",*p=str; printf("%d\n",*(p+3));}

A.67

B.0

C.字符'C'的地址

D.字符'C'


正确答案:B
解析:先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\0',所以*(p+3)=0。

第4题:

下列程序段的运行结果是()。 include void main() {char str[]="ABC",*p=str; printf("

下列程序段的运行结果是( )。

#include<stdio.h>

void main()

{ char str[]="ABC",*p=str;

printf("%d\n",*(p+3) );

}

A.67

B.0

C.字符'C'的地址

D.字符'C'


正确答案:B
解析:先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\0',所以*(p+3)=0。

第5题:

下列程序段的运行结果是()。includevoid main(){char str[]="ABC",*p=str;printf("%d\n

下列程序段的运行结果是( )。 #include<stdio.h> void main() { char str[]="ABC",*p=str; printf("%d\n",*(p+3)); }

A.67

B.0

C.字符'C'的地址

D.字符'C'


正确答案:B
解析: 先定义了一个指向字符型数组str的指针p,指针p旨向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\0',所以*(p+3)=0。

第6题:

下面程序段的运行结果是 char str[]="ABC",*p=str; printf("%d\n",*(p+3));

A.67

B.0

C.字符'C'的地址

D.字符'C'


正确答案:B
解析:考查指向字符串的指针变量。在该题中,指针变量p指向的应该是该字符串中的首地址,p+3指向的是字符串结束标志'\0'的地址,因而。(p+3)的值为0。

第7题:

下面程序段的运行结果是

char str[]="ABC",*p=str;

printf("%d\n",*(p+3));

A.67

B.0

C.字符′C′的地址

D.字符′C′


正确答案:B

第8题:

下面程序段的运行结果是()。includevoid main(){char str[]="ABC",*p=str;pfintf("%d\n

下面程序段的运行结果是( )。 #include<stdio.h> void main() {char str[]="ABC",*p=str; pfintf("%d\n",*(p+3)); }

A.67

B.0

C.字符'C'的地址

D.字符'C'


正确答案:B
解析:先定义了一个指向字符型数组str的指针P,指针P指向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\0',所以*(p+3)=0。

第9题:

下面程序段的运行结果是

char str[]="ABC",*p=str;

printf("%d\n",*(p+3));

A.67

B.0

C.字符′C′的地址

D.字符′C′


正确答案:B
解析:考查指向字符串的指针变量。在该题中,指针变量p指向的应该是该字符串中的首地址,p+3指向的是字符串结束标志'\0'的地址,因而*(p+3)的值为0。