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

题目

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

A.'o'

B.'\0'

C.不确定的值

D.'o'的地址

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

第1题:

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

A.‘0’

B.‘\0’

C.不确定的值

D.‘o’的地址


正确答案:B

第2题:

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

A.‘o’

B.‘0’

C.不确定的值

D.‘o’的地址


正确答案:B

第3题:

设有下列程序段:

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]的值。

第4题:

设有下列的程序段: char str[]="HelloWorld"; char*ptr; 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]的值。

第5题:

下面的程序各自独立,请问执行下面的四个TestMemory 函数各有什么样的结果?

①void GetMemory(char * p)

{

p = (char * )malloc(100);

}

void TestMemory (void)

{

char *str = NULL;

GetMemory (str);

strcpy(str, "hello world");

prinff(str);

}

② char * GetMemory (void)

{

char p[ ] = "hello world";

return p;

}

void TestMemory (void)

{

char * str = NULL;

str = GetMemory( );

printf(str);

}

③void GetMemory(char * * p, int num)

{

* p = (char * )malloc(num);

}

void TestMemory (void)

{

char * str = NULL;

GetMemory(&str, 100);

strcpy( str, "hello" );

printf(sir);

}

④void TestMemory (void)

{

char *str = (char * )malloe(100);

strepy (str, "hello" );

free ( str );

if(str ! = NULL)

{

strepy( str, "world" );

printf(str);

}

}


正确答案:程序1程序崩溃。因为GetMemory并不能传递动态内存TestMemory函数中的str一直都是 NULL。strcpy(str “hello world”);将使程序崩溃。 程序2可能是乱码。因为GetMemory返回的是指向“栈内存”的指针该指针的地址不是 NULL但其原来的内容已经被清除新内容不可知。 程序3能够输出hello但是会发生内存泄漏。 程序4篡改动态内存区的内容后果难以预料非常危险。因为free(str);之后str成为野指针if(str!=NULL)语句不起作用。
程序1程序崩溃。因为GetMemory并不能传递动态内存,TestMemory函数中的str一直都是 NULL。strcpy(str, “hello world”);将使程序崩溃。 程序2可能是乱码。因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原来的内容已经被清除,新内容不可知。 程序3能够输出hello,但是会发生内存泄漏。 程序4篡改动态内存区的内容,后果难以预料,非常危险。因为free(str);之后,str成为野指针,if(str!=NULL)语句不起作用。

第6题:

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

A.'\0'

B.'0'

C.不确定的值

D.'0'的地址


正确答案:A
解析:本题涉及字符数组和指针两个知识点:①在C语言中,字符数组在存放字符串时会自动在末尾加上'\0',所以题中数组str有11个元素;②ptr指向数组str的首地址,ptr+10是指向str[10],*(ptt+10)是引用str[10]的值(即结束符'\0')。

第7题:

设有下列的程序段:

char str[]="HelloWorld";

char*ptr;

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]的值。

第8题:

设有下列的程序段: char str[]="Hello World"; char*ptr; 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]的值。

第9题:

设有下列程序段: 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]的值。