云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 《C%2B%2B数组与指针习题》

《C%2B%2B数组与指针习题》

  • 62 次阅读
  • 3 次下载
  • 2025/6/8 4:42:55

数组与指针习题 1

数组与指针习题

一、.基本概念与基础知识自测题

1 填充题

1.1 数组定义时有三个要素:数组名,数组元素的 (1) 和数组元素的 (2) 。按元素

在数组中的位置进行访问,是通过 (3) 进行的,称为 (4) 或 (5) 访问。为了使数组声明中数组的大小修改更为方便,总是将 (6) 用于声明数组长度。 答案:(1)类型

(2)数量

(3)下标运算符 (4)下标 (5)索引 (6)常变量

1.2 C/C++中的多维数组用的是一个 (1) 的定义,即多维数组的基本定义是 (2) 构成的数组,三维数组的元素是 (3) 。 答案:(1)嵌套

(2)以数组作为元素 (3)二维数组

1.3 计算机内存是一维编址的,多维数组在内存中的存储 (1) ,C/C++多维在内存中的

排列是 (2) 方式,即越 (3) 的下标变化 (4) 。设数组a有m行n列,每个元素占内存u个字节,则a[i][j]的首地址为 (5) + (6) 。 答案:(1)必须要转化为一维方式,

(2)按行方式 (3)右 (4)越快 (5)i*n*u (6)j*u

1.4 对于多维数组, (1) 的大小是确定的,所谓“不检查数组边界”只是不检查 (2)

的边界,而 (3) 的边界是在控制之中的,所以多维数组名作为函数的参数只可以 (4) 缺省。 答案:(1)较低各维的

(2)最高维(第一维) (3)较低各维 (4)最高维

1.5 指针变量包含另一变量的 (1)值,不可以任意给指针变量赋一个地址值,只能赋给它 (2) 和 (3) 的地址。使用变量名来访问变量,是按 (4) 来直接存取变量称为 (5) 方式;而借助指针变量取得另一变量的地址,访问该变量称为 (6) 方式。 答案:(1)地址

(2)NULL

(3)已经分配了内存的变量的地址 (4)按变量的地址 (5)直接访问

数组与指针习题 2

(6)间接访问

1.6 固定指向一个对象的指针,称为 (1) ,即 (2) ,定义时const放在 (3) 。而指向“常量”的指针称为 (4) ,指针本身可以指向别的对象,但 (5) ,定义时const放在 (6) 。 答案:(1)指针常量

(2)指针本身是常量

(3)const放在类型说明之后,变量名之前 (4)常量指针

(5)不能通过该指针修改对象 (6)const放在类型说明之前

1.7 数组名在表达式中被自动转换为 (1) 指针常量,数组名是地址,但数组名中放的地址是 (2) ,所以数组名 (3) 。这样数组名可以由 (4) 来代替,C++这样做使用时十分方便,但丢失了数组的另一要素 (5) ,数组名是指向 (6) 的指针,而不是指向 (7)的。编译器按数组定义的大小分配内存,但运行时 (8) ,这会带来无法预知的严重错误。 答案:(1)数组第一个元素的

(2)不可改变的 (3)称指针常量 (4)指针

(5)数组元素的数量 (6)数组元素 (7)数组整体

(8)对数组的边界不加检测 1.8 有一个三维数组:

int z3d[2][3][4];

给出指向三维数组第i行第j列第k页元素的指针的三种表达方式 (1) , (2) , (3) 。再给出这些元素的三种表达方式 (4) , (5) , (6) 。 答案:(1)z3d[i][j]+k或&z3d[i][j][k]

(2)*(z3d[i]+j)+k (3)*(*(z3d+i)+j)+k

(4)z3d[i][j][k]或*(z3d[i][j]+k) (5)*(*(z3d[i]+j)+k) (6)*(*(*(z3d+i)+j)+k)

二、编程与综合练习题

5.3 打印杨辉三角形(10行)。使用二维数组并利用每个系数等于其肩上两系数之和。 #include void main(){

int a[10][11]={0,1},i,j;//初始化时写好第1行,其余各行全0

for(i=1;i<10;i++)//为了全部算法无特例,共用11列,第1列全0,方便计算 for(j=1;j<=i+1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i<10;i++){

for(j=1;j<=i+1;j++) cout<

数组与指针习题 3

5.4 将[例5.5]改用一维数组,附加行、列参数,实现通用算法。 解:用一维数组,附加行、列参数,实现通用算法难度大。 #include #include void inverse(int [], int [],int,int);//注意数组最高维可缺省,例6.9因初学未省,6.9_1已考虑

void multi(int [], int [], int [],int,int,int); void output(int [],int,int); void main(){

int middle[6*3], result[6*4];//注意写作6*3等可清楚看出矩阵的行列 int matrix1[3*6]={8,10,12,23,1,3,5,7,9,2,4,6,34,45,56,2,4,6}; int matrix2[3*4]={3,2,1,0,-1,-2,9,8,7,6,5,4}; output(matrix1,3,6);

inverse(matrix1,middle,3,6); output(middle,6,3); output(matrix2,3,4);

multi(middle,matrix2,result,6,3,4); output(result,6,4); return; }

void inverse(int matrix1_1[],int middle_1[],int a,int b){ int i,j;

for (i=0;i

middle_1[i+j*a]=matrix1_1[i*b+j]; return; }

void multi(int middle_1[],int matrix2_1[],int result_1[],int a,int b,int c){ int i,j,k;

for (i=0;i

result_1[i*c+j]+=middle_1[i*b+k]*matrix2_1[k*c+j]; } }

return; }

void output(int max_1[],int a,int b){ for (int i=0;i

cout <

数组与指针习题 4

}

cout<

5.5 编写函数int atoi(char s[ ]),将字符串s转化为整型数返回。注意负数处理方法。 #include int atoi(const char*s){ int temp=0,f=1; const char *tp=s;

while(*tp!='-'&&(*tp<'0'||*tp>'9')) tp++;//去除串前部无效字符 if(*tp=='-'){//读负号 f=-1; tp++; }

if(*tp<'0'||*tp>'9') cout<<\串非法时,输出提示,返回0 while(*tp>='0'&&*tp<='9'){//转换数字串 temp=temp*10+*tp-48; tp++; }

return f*temp; }

void main(){

char num[20];

cin.getline(num,19); cout<

5.6 有如下定义:

int ival=60021; int *ip; double *dp;

下面哪些赋值非法或可能带来错误,并加以讨论。 ival=*ip; ival=ip; *ip=ival; ip=ival; *ip=&ival; ip=&ival; dp=ip; dp=*ip; *dp=*ip;

解:ival=*ip; 错,未确定指针ip初值,用随机内存地址中的数据给ival赋值是危险的。但

语法对。

ival=ip; 错,赋值类型错,指针型不能赋给整型。

*ip=ival; 错,未确定指针ip初值,用ival给随机内存赋值是危险的。但语法对。 ip=ival; 错,赋值类型错,整型不能赋给指针型。

*ip=&ival; 错,赋值类型错,地址(指针型)不能赋给整型。 ip=&ival; 对,地址赋给指针型。

dp=ip; 错,整型指针不能赋给双精度指针。

搜索更多关于: 《C%2B%2B数组与指针习题》 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

数组与指针习题 1 数组与指针习题 一、.基本概念与基础知识自测题 1 填充题 1.1 数组定义时有三个要素:数组名,数组元素的 (1) 和数组元素的 (2) 。按元素在数组中的位置进行访问,是通过 (3) 进行的,称为 (4) 或 (5) 访问。为了使数组声明中数组的大小修改更为方便,总是将 (6) 用于声明数组长度。 答案:(1)类型 (2)数量 (3)下标运算符 (4)下标 (5)索引 (6)常变量 1.2 C/C++中的多维数组用的是一个 (1) 的定义,即多维数组的基本定义是 (2) 构成的数组,三维数组的元素是 (3) 。 答案:(1)嵌套 (2)以数组作为元素 (3)二维数组 1.3 计算机内存是一维编址的,多维

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com