设有如下程序段:char str[]="World":char*ptr=str;执行上面的程序段后,*(ptr+5)的值为 ______。A.

题目

设有如下程序段: char str[]="World": char*ptr=str; 执行上面的程序段后,*(ptr+5)的值为 ______。

A.‘0’

B.‘\0’

C.不确定的值

D.‘o’的地址

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下正确的程序段是

A.cgar str[20]; scanf(“%s",&str);

B.char *p; scanf("%s",p);

C.cha str[20]; scanf("%s",&str[2])

D.char str[20],*p=str; scanf("%s",p[2]);


正确答案:C

第2题:

●执行下面的一段C程序后,变量ret的值为(61)。

char str[20];

int ret= strlen(strcpy(str,"Hello_World\0"));

(61) A.0

B.11

C.12

D.20


正确答案:B

第3题:

以下正确的程序段是 ()。

A.char str[2]; scanf("%s",&str);

B. char *p; scanf("%s",p);

C. char str[20]; scnaf("%s",&str[2]);

D. char str[20],*p=str; scanf("%s",p[2]);


参考答案:B

第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题:

设有下列程序段: char str[]="HelloWorld": char* plr; ptr=str: 执行上面的程序段后,*(ptr+10)的值为( )。

A. \0

B.0

C.不确定的值

D.0的地址


正确答案:A
本题主要考查字符数组和指针,在c语言中,字符型数组在存放字符串时会自动在末尾加上\0,所以数组str有11个元素;ptr指向数组str的首地址,ptr+10是指向str[10],*(ptr+10)是引用str[10]的值。

第6题:

下面程序段的运行结果是()。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。

第7题:

执行下列程序的结果是( )。 include void main() { char *str; str

执行下列程序的结果是( )。 #include<iostream.h> void main() { char *str; str="test!"; cout<<str[5]; }

A.test!

B.test

C.空字符

D.异常


正确答案:C
解析:字符指针str值为“test!”,它们的下标由0开始,并且具有一个尾符,输出str[5]的位置为尾符标识,指针字符指向的尾符为空。所以答案为空字符。

第8题:

以下正确的程序段是

A.char str1[ ]="12345", str2[ ]="abcdef";

B.char str[10],*st="abcde";strcat(str,st);

C.char str[10]=" "。*st="abcde";strcat(str,st);

D.char *st1="12345", *st2="abcde";strcat(st1, st2);


正确答案:C
解析:本题考查了一维字符数组的定义和初始化。选项C中str[10]初始化为空,可以不必进行类似""的空赋值,字符数组若没有进行初始化赋值,默认的字符为空,并且定义完str数组后,应该用","分隔而不是"。",所以选项C错误。

第9题:

以下C程序段的输出结果是(30)。 include void abc(char *str){ int a, b;

以下C程序段的输出结果是(30)。 #include <stdio. h> void abc(char *str){ int a, b; for(a=b=0;str[a]!='\O';a++)if(str[a]!='c') str[b++]=str[a]; str[b]='\O'; } void main(){ char str[]="abcdef"; abc(str); printf("str[]=%s",str); }

A.str[]=a

B.str[]=ab

C.str[]=abdef

D.str[]=abcdef


正确答案:C
解析:本试题核心在于子函数的for循环。For循环将整个字符串中的字符处理一遍,每次处理时,函数的基本工作是将除字母c之外的字符重新赋值,然后a++,b++,继续处理下一个字符。对于字母c不赋值,且只有a++而b不变。可见for循环的目的只是将字母c剔除。

第10题:

请读程序段: char str[]="ABCD",*p=str; printf("%d\n",*(p+4)); 程序段的输出结果,是_______。

A.68

B.0

C.字符'D'的地址

D.不确定的值


正确答案:B
解析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“/0”,故指向字符数组的指针p的*(p+4)的值为“\0”。由于“\0”的编码值就是0,所以本题输出为0。

更多相关问题