(以下程序代码假设都在32位机器上运行)
1. int i=3, j=5, k;
k = (++i) + (i++) + (j++);
i= j= k=
2. 计算sizeof 的值.
char str[] = “flower”
char *p = str ;
int n = 10;
sizeof (str ) = (1)
sizeof ( p ) = (2)
sizeof ( n ) = (3)
void Foo ( char str[100])
{
sizeof( str ) = (4)
}
void *p = malloc( 100 );
sizeof ( p ) = (5)
3. char c2[10]={'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'};
int *p1 = (int *)c2;
char *p2 = (char *)(p1+2);
*p2 = ;
4. 请看下面的代码是否有问题,如果有问题,请准确简要的说明。
class A
{
public:
A(){ init(); }
virtual ~A(){}
virtual void init();
virtual void method();
};
class B : public A
{
public:
B(): A(){}
~B(){ ~A(); }
void init(){}
void method();
};
5、下面的代码输出什么?
#include "stdio.h"
class Base
{
public:
Base(){ printf("Base Construct\n");}
~Base(){ printf("Base Destruct\n");}
void func1(void) { printf("Base func1\n"); }
virtual void func2(void) { printf("Base func2\n"); }
};
class Second :public Base
{
public:
Second(){printf("Second Construct\n");}
~Second(){printf("Second Destruct\n");}
void func1(void) { printf("Second func1\n"); }
virtual void func2(void) { printf("Second func2\n"); }
};
void main(int argc,char *argv)
{
Base ba;
Second se;
Base *pba = &se;
Second *pse = &se;
pba->func1();
pba->func2();
pse->func1();
pse->func2();
}
6. 下面代码是否有问题,如果有问题,该如何修改?
#include
void main(int argc,char *argv)
{
std::vector
for(int i=0; i<10; ++i)
Data.push_back(i);
std::vector
for(it=Data.begin(); it!=Data.end(); ++it)
Data.erase(it);
}
7.下列哪些初始化是合法的为什么
(a) int i = -1;
(b) const int ic = i;
(c) const int *pic =
(d) int *const cpi =
(e) const int *const cpic =
8. 以下代码中的两个sizeof用法有问题吗?
void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母
{
for( size_t i=0; i if( 'a'<=str[i] && str[i]<='z' ) str[i] -= ('a'-'A' ); } char str[] = "aBcDe"; cout << "str字符长度为: " << sizeof(str)/sizeof(str[0]) << endl; UpperCase( str ); cout << str << endl; { P = (char *)malloc(100); } void Test(void) { char *str = NULL; GetMemory(str); strcpy(str,"hello world"); printf(str); } 请问运行Test函数会有什么样的结果?为什么? 1. 请说明strcpy、strncpy和memcpy的区别。 2. const int giNumber = 100; (1) #define iNumber 100 (2) (1)和(2)定义的常数,有什么不同之处,哪种更好一些? 3. 断言(ASSERT)和异常(EXCEPTION)的区别是什么,使用的场合有什么区别? 4.struct 和 class 有什么区别? 5. 在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明? 6. 如果一个类会被其它类继承,那么这个类是否一定需要虚析构函数,请简要的说明原因? 7. static 修饰函数、函数内变量;类的属性、类的函数,各起什么作用?? 1. 编写类String的构造函数、析构函数和赋值函数。 已知类String的原型为: class String { public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & operate=(const String &other); // 赋值函数 private: char *m_data; // 用于保存字符串 }; 请编写String的上述4个函数。 2.写代码。有一个作图程序,需要在界面上画出几种图形,包括:方形、三角形、圆形。现在想把通过一次循环调用就把所有形状都画出来。你试着写出这些代码。(不用写具体的类实现代码,写出大致框架代码即可。)回答问题
编写程序