第一范文网 - 专业文章范例文档资料分享平台

c++数组、指针与字符串xiti答案

来源:用户分享 时间:2025/5/19 17:14:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

1.概念填空题

1.1 数组定义时有3个要素:数组名、数组元素的 类型 和数组元素的 个数 。按元素在数组中的位置进行访问,是通过 下标 进行的,称为 直接 或 索引 访问。

1.2 C++中的多维数组是 嵌套 定义的,即多维数组的基本定义是 数组 构成的数组,三维数组的元素是 二维数组 。

1.3 计算机内存是一维编址的,多维数组在内存中的存储 必须转换为一维方式 ,C++多维数组在内存中的排列是 行 方式,即越 低 的下标变化 快 。设数组a有m行n列,每个元素占内存u个字节,则a[i][j]的首地址为 a[0][0]的地址 + (i*n+j)*u 。

1.4数组名是 整型 常量,数组名赋给同类型的指针后,该指针是指向数组 首元素 的指针。数组名在表达式中被转换为指向 数组首元素 的指针常量。

1.5每个对象都有一个指向自身的指针,称为 this 指针,通过使用它来确定其自身的地址。该指针只能 读 ,不能写。

1.6在C++中,对象访问成员所用的运算符是 . ,通过指针访问对象的成员所用的运算符是 ->。

1.7 当动态分配失败时,系统采用 返回NULL 来表示发生了异常。如果new返回的指针丢失,则所分配的自由存储区空间将无法收回,称为 内存泄漏 。这部分空间必须在 计算机重启 才能找回,这是因为无名对象的生命期 为整个程序 。

1.8 默认复制构造函数只能完成 对象成员的赋值 ,可能会造成 重复释放 ,默认的析构函数可能会产生 内存泄漏 。“=”运算也会产生对象 重复释放 。因此我们需要自定义复制构造函数完成对象的 深复制 。

1.9 在用new运算符建立一个三维数组int 4*5*6,使用了 3 个下标运算符,用delete运算符释放该数组时使用了 1 个下标运算符。new返回的指针类型是 int (*) [5]6] 。

2 简答题

2.1 用一维数组名作函数参数和用一维数组元素函数参数的含义是否相同?为什么 2.2 指针变量与整型量的加减运算代表什么意义?

2.3个指向普通变量的指针进行减运算是否有意义?为什么

2.4什么是浅拷贝?什么是深拷贝?二者有何异同?何时必须自定义复制构造函数、析构函数,何时必须自定义=运算符中在函数, 自定义的复制构造函数、析构函数应该怎样设计? 2.5从右往左解释int *(*(*pf)[5])(double *)中4个*的含义。

2.6 为什么动态建立类对象数组时,类的定义中一定要有默认的构造函数?

3.选择题

3.1以下对一维数组a的正确定义是(C )。 A.int n=5, a[n]; B.int a (5);

C.const int N=5;int a[N]; D.int n; cin>>n; int a[n];

3.2己知int a[10]=={0,1,2,3,4,5,6,7,8,9},*p=a;则不能表示数组a中元素的选项是( C )。 A.*a B.*p C.a D.a[ p-a]

3.3 己知int a[]={0,2,4,6,8,10},*p=a+1;其值等于0的表达式是(D )。 A.*(p++) B.*(++p) C.*(p--) D.*(--p)

3.4已知char *a[]=( \” basic\”c++”;则语句cout<

A.t B.一个地址值 C.java D.javac++ 3.5 下列关于this指针的叙述中,正确的是( D)。

A.任何与类相关的函数都有this指针 B.类的成员函数都有this指针 C.类的友元函数都有this指针

D.类的非静态成员函数才有this指针

3.6对于类型相同的两个指针变量之间,不能进行的运算是( C )。 A.< B.= C.+ D.-

3.7若有语句int a=4,*point=&a;下面均代表地址的一组选项是( D)。 A.a,point,*&a B.&*a,&a,*point

C.*&point,*point,&a D.&a,&*point,point

3.8 已有定义int k=2;int *ptrl,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( B )。

A.k=*ptrl+*ptrl2; B.ptr2=k;

B.ptr1=ptr2 D.k=*ptr1*(*ptr2);

3.9设有语句int array[3][4];,则在下面几种引用下标为i和j的数组元素的方法中,不正确的引用方式是( D )。

A.array[i][j]B.*(*(array+i)+j) C.*(array[i]+j)D.*(array+i*4+j)

3.10 函数原型为fun(int (*p)[3],int),调用形式为fun(a,2),则a的定义应该为( C )。 A.int **aB.int (*a)[ ] C.int a[ ][3]D.int a[3]

3.11 已知p是一个指向类Sample数据成员m的指针,S是类Sample中的一个对象。如果要给m赋值为5,正确的是( C )。

A.S.P=5;B.S->P=5;C.S.*P=5;D.*S.P=5; 3.12下面程序段的运行结果是( D )。

char *p=”abcdefgh”; p+=3;

cout<

3.13 当定义const char *p=”ABC”;时,下列语句正确的是(D ) A.char *q=p;B.p[0]=’B’; C.*p=’\\0’;D.p=NULL; 3.14 s0是一个string类串,定义串sl错误的是(A)。 A.string s1(3,”A”);B.string s1(s0,0,3);

C.string s1(“ABC”,0,3);D.string s1=”ABC”;

4.写出程序运行结果 4.1#include using namespace std; class Location{ int X,Y; public:

Location(int initX,int initY){ init(initX,initY);}

void init (int initX,int initY){X=initX,Y=initY;} int GetX(){return X;}

int GetY(){ return Y; } };

void display(Location& rL){

cout<

int main(){

Location A[5]={Location(0,0),Location(1,1),Location(2,2),Location(3,3),Location(4,4)}; Location *rA=A; A[3].init(5,3); rA->init(7,8);

for(int i=0;i<5;i++) display(*(rA++)); } 78 11 22 53 44

4.2#include using namespace std; int main(){

char w[ ][10]={“ABCD”,”EFGH”,”IJKL”,”MNOP”},k; for(k=1;k<3;k++) cout<

EFGH IJKL

5. 编程题

?s5.1已知求成绩的平均值和均方差公式:ave=

i?1ni?(s,dev=

i?1ni?ave)2n其中n为学生人

n数,si为第i个学生成绩。求某班学生的平均成绩和均方差。 #include #include #include #include //using namespace std; double ave(int *,int);

double dev(int *,double,int); void create(int *,int); const int N=10;

void main(){ int a[N],i; double s,d; srand(time(0)); create(a,N); for(i=0;i

cout<<\d=dev(a,s,N);

cout<<\}

double ave(int *a,int N){ double s=0; int i;

for(i=0;i

double dev(int *a,double s,int N){ int i;

double d=0; for(i=0;i

void create(int *c,int N){ int i;

for(i=0;i

5.2用随机函数产生10个互不相同的两位整数,存放至一维数组中,并输出其中的素数。 #include #include #include #include //using namespace std; void create(int *,int); void prime(int *,int); const int N=10; void main(){ int a[N],i;

srand(time(0));

搜索更多关于: c++数组、指针与字符串xiti答案 的文档
c++数组、指针与字符串xiti答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2nxfs0epna2cg5h8iub8_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top