设有如下的程序段:char str[ ]="This a book";char *ptr;ptr=str;执行上面的程序段后,*(ptr+2)的值为()。
A.'s'
B.'i'
C.'h'的地址
D.'h'
A.'s'
B.'i'
C.'h'的地址
D.'h'
如下程序段输出是:()
char str[][10]={"Hello","Google"};
char *p=str[0];
count<<strlen(p+10);
a、0 b、5 c、6 d、10
下列程序在32位linux或unix中的结果是什么?
func(char *str)
{
printf(" %d",sizeof(str));
printf(" %d",strlen(str));
}
main()
{
char a[]="123456789";
printf(" %d",sizeof(a));
printf(" %d",strlen(a));
func(a);
}
已知String类定义如下:
class String
{
public:
String(const char *str = NULL); // 通用构造函数
String(const String &another); // 拷贝构造函数
~ String(); // 析构函数
String & perater =(const String &rhs); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
尝试写出类的成员函数实现。
试题2:以下为Windows NT 下的32 位C++
程序,请计算sizeof的值
void Func (char str[100] )
{
sizeof(str ) = ?
}
void *p = malloc(100 );
sizeof (p ) = ?
请指出下列程序中的错误并且修改
void GetMemory(char *p){
p=(char *)malloc(100);
}
void Test(void){
char *str=NULL;
GetMemory=(str);
strcpy(str,"hello world");
printf(str);
}
A:错误--参数的值改变后,不会传回
GetMemory并不能传递动态内存,Test函数中的str
一直都是NULL。
strcpy(str, "hello world");将使程序崩溃。
写出程序结果:
void Func(char str[100])
{
printf("%d\n", sizeof(str));
}
分析下面的程序:
void GetMemory(char **p,int num)
{
*p=(char *)malloc(num);
}
int main()
{
char *str=NULL;
GetMemory(&str,100);
strcpy(str,"hello");
free(str);
if(str!=NULL)
{
strcpy(str,"world");
}
printf("\n str is %s",str);
getchar();
}
问输出结果是什么?希望大家能说说原因,先谢谢了
A.输出---
B.输出100行---
C.死循环
D.该for循环一次也不执行