面向对象程序设计作业4:类和对象的基础
1-1结构体变量可以作数组元素。
T
1-2结构体成员的类型必须是基本数据类型。
1-3结构体类型本身不占用内存空间,结构体变量占用内存空间。
T
1-4结构体成员的类型必须是基本数据类型。
1-5在定义嵌套的结构类型时,必须先定义成员的结构类型,再定义主结构类型。
1-6对于结构数组
s,既可以引用数组的元素s[i],也可以引用s[i]中的结构成员。1-7假设结构指针
p已定义并正确赋值,其指向的结构变量有一个成员是int型的num,则语句 *p.num = 100; 是正确的。由于“ . ”的优先级大于“ * ”
故(*p).num 等价于 p->num,题目错误。
1-8 C++程序中,类的构造函数名与类名相同。
1-10 C++程序中,一个类的构造函数可以被重载。
1-11 C++程序中,一个类的析构函数可以被重载。
1-12析构函数的作用主要是释放对象占用的资源。
1-13如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加上const关键字。
1-14在类的成员函数说明后可以加const关键字,则该成员函数成为常成员函数。
1-15对象数组的元素可以是不同类的对象。
1-16在生成对象数组时,将针对每个数组元素按其下标的排列顺序依次调用一次构造函数,调用的次数等于数组元素的个数。
1-17在定义对象数组时,可以直接进行初始化,也可以通过赋值语句实现赋值。
1-18程序执行结束前,调用析构函数将数组中各个对象元素释放,释放顺序与创建对象的顺序相反。
1-19 point (*p)[3];point是类名,p为对象指针数组。
1-20 point *p[3];point是类名,p为定义指向对象数组的指针 。
2-1对于以下结构定义,
++p->str中的++加在____。struct {
int len;
char *str;
} *p;
A.指针str上
2-2以下
scanf函数调用语句中不正确的是__。struct pupil { char name[20]; int age; int sex;} pup[5], *p=pup;
scanf("%s", pup[0].name);scanf("%d", &pup[0].age);scanf("%d", p->age);scanf("%d", &(p->sex));2-3 For the following declarations of structure and variables, the correct description of the expression
*p->str++; is __.struct {
int no;
char *str;
} a={1,"abc"}, *p=&a;
* acts on the pointer p++ acts on the pointer str++ acts on the object pointed to by pointer str2-4 For the following declarations, assignment expression __ is not correct.
struct Student {
long num;
char name[20];
} st1, st2={101, "Tom"}, *p=&st1;
st1 = st2p->name = st2.namep->num = st2.num*p=st22-5 For definition:
struct { int n; char *str;} *p;,the operator ++ will act on __ in the expression ++p->str。strpstr points to2-6有如下定义:
struct Student{ char name[10];
int age;
char gender;
}std[3], *p=std;
则以下各输入语句中错误的是:
scanf("%d",&(*p).age);scanf("%c",&std[0].gender);scanf("%c",&(p->gender));scanf("%s",&std.name);2-8下列函数中,( )不能重载。
2-9下列对重载函数的描述中,( )是错误的。
2-11有关类和对象的说法下列不正确的有( )。
2-12在下面类声明中,关于生成对象不正确的是( )。
class point
{ public:
int x;
int y;
point(int a,int b) {x=a;y=b;}
};

浙公网安备 33010602011771号