int a[5],*p=a; A. *&a[5] B. a+2 C. *(p+5) D. *(a+2) (9)若有定义:int (*p)[4]; 则标示符p( )。
A. 是一个指向整型变量的指针 B. 是一个指针数组名
C. 是一个指针,它指向一个含有4个整型元素的一维数组 D. 定义不合法
(10)若有以下定义,则正确的叙述是( )。
Char*b[2]= {\
A. 数组b的两个元素中各存放了字符串\和\的首地址 B. 数组b的两个元素中各存放了含有四个字符的一维数组的首地址 C. b是一个指针,它指向含有2个数组元素的字符型一维数组 D. 数组b的两个元素值分别是\和\(11)关于引用的说明,下列说法错误的是( )。
A. 任何变量都可以被引用
B. 不允许把为一个变量建立的引用重新用作另一变量的别名 C. 引用和其所代表的变量使用同一片存储空间
D. 如果程序需要先指向一个对象,后又指向另一对象,此时应该采用引用 (12)下列程序的运行结果为( )。
#include
p1=a; p2=&p1;
cout<<*(p++)<<'\\t'<<**p2; } A. 4 4 B. 2 4 C. 2 2 D. 4 6 参考答案:
(1)C (2)D (3)D (4)C (5)D (6)C (7)D (8)D (9)C (10)A (11)D (12)C
3.编程题
(1)设有一个整型数组,有10个元素,请用3种不同的方法输出各元素。 (2)假设有一个字符串str1,其内容为“Hello!”,请利用指针将该字符串的内容复制到另一个字符串str2中。
(3)输入10个字符串,将它们排序,然后输出这10个已排好序的字符串。编写3个函数分别用于输入、排序和输出,并在main()函数中调用它们。
(4)编写程序,将输入字符串中的大写字母转换为小写字母,并显示输出。 (5)输入一个字符串,然后将它们逆序输出。例如:输入“abcd”,输出“dcba”。 参考答案:
(1)#include
void main() {
int a[]={1,3,5,6,7,8,9,2,4,1},i,*p;
for(i=0;i<10;i++) cout<
(2)#include
#include } (3)#include \ #include \#define N 10 void in(char *p[N]) //输入函数 { int i; char ch[40]; for(i=0;i } void out(char *p[N]) //输出函数 { int i; for(i=0;i } void sort(char *p[N]) //排序函数 { int i,j,k; char *t=NULL; for(i=0;i } void main() { char *p[N]; cout<<\请输入需要排序的\个字符串:\ in(p); cout<<\输出排序前的\个字符串:\ out(p); sort(p); cout<<\输出排序后的\个字符串:\ out(p); } (4)#include #include while(c!='@') { a[i]=c; i++;n++; c=getchar(); } a[i]='\\0'; for(i=0;i if(a[i]>= 'A'&&a[i]<= 'Z') a[i]=a[i]+32; for(i=0;i (5)#include #include while(c!='@') { a[i]=c; i++;n++; c=getchar(); } a[i]='\\0'; i=0,j=n-1; while(i<=j) { int t; t=a[i]; a[i]=a[j]; a[j]=t; i++; j--; } for(i=0;i 第七章 类与对象 1.填空题 (1)在C++中,类成员有3种访问权限,它们分别是___________、___________和___________。其中_________提供给用户的接口功能;_________用来描述对象的属性。 (2)类中有一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化,这种成员函数是___________。 (3)析构函数的作用是___________。 (4)类是对象的___________,而对象是类的具体___________。 (5)如果在类中没有明确定义析构函数,清除对象的工作仍由___________来完成,原因是___________。 (6)如果想将类的一般成员函数说明为类的常成员函数,则应该使用关键字___________说明成员函数。 (7)当一个类的对象成员函数被调用时,该成员函数的___________指向调用它的对象。 (8)被声明为const的数据成员只允许声明为___________的成员函数访问。 (9)一个类中若包含另一个类的对象,则这种情况称为类的___________,这个对象称为___________。 (10)若外界函数想直接访问类的私有数据成员,则必须把该函数声明为类的___________。 (11)一个类A若声明为另一个类B的友元类,则意味着类A中的所有成员函数都是类B的___________。 (12)将类中的数据成员声明为static的目的是___________。 (13)类的静态数据成员的初始化工作要放在___________。 (14)若有以下程序结构,该程序运行时调用了___________次构造函数,调用了___________次析构函数。 class Box {……}; void main() { Box A,B,C; } (15)下列程序的执行结果是___________。 #include