郑莉版c语言第六章课后习题答案

这篇博客详细解答了C语言第六章关于数组、指针与字符串的相关问题,包括数组元素计算、指针运算符、数组与指针的关系、字符串结束符、指针内存分配、引用与指针的区别、动态内存管理、函数指针、字符串处理及数组操作等。通过实例展示了如何定义、初始化和操作数组、指针以及字符串,帮助读者深入理解这些概念。
摘要由CSDN通过智能技术生成
 

第 六 章           数组、指针与字符串

 

 

6-1 数组A[10][5][15]一共有多少个元素?

 

 

解:

10×5×15 = 750 个元素

1-2 在数组A[20]中第一个元素和最后一个元素是哪一个?

解:

第一个元素是A[0],最后一个元素是A[19]。

 

 

6-3 用一条语句定义一个有五个元素的整型数组,并依次赋予1~5的初值。

 

 

解:

源程序:

int IntegerArray[5] = { 1, 2, 3, 4, 5 };

或:int IntegerArray[] = { 1, 2, 3, 4, 5 };

 

 

6-4 已知有一个数组名叫oneArray,用一条语句求出其元素的个数。

 

 

解:

源程序:

nArrayLength = sizeof(oneArray) / sizeof(oneArray[0]);

 

 

6-5 用一条语句定义一个有5×3个元素的二维整型数组,并依次赋予1~15的初值。

 

 

解:

源程序:

int theArray[5][3] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };

或:int theArray[5][3] = { {1,2,3}, {4,5,6}, {7,8,9}, {10,11,12},{13,14,15} };

 

 

6-6 运算符*和&的作用是什么?

 

 

解:

*称为指针运算符,是一个一元操作符,表示指针所指向的对象的值;&称为取地址运算符,也是一个一元操作符,是用来得到一个对象的地址。

 

6-7 什么叫做指针?指针中储存的地址和这个地址中的值有何区别?

 

 

解:

指针是一种数据类型,具有指针类型的变量称为指针变量。指针变量存放的是另外一个对象的地址,这个地址中的值就是另一个对象的内容。

 

 

6-8 定义一个整型指针,用new语句为其分配包含10个整型元素的地址空间。

 

 

解:

源程序:

int *pInteger = new int[10];

 

 

6-9 在字符串”Hello,world!”中结束符是什么?

 

 

解:

是NULL字符。

 

 

6-10 定义一个有五个元素的整型数组,在程序中提示用户输入元素值,最后再在屏幕上显示出来。

 

 

解:

源程序:

#include <iostream.h>

 

int main()

{

int myArray[5];

int i;

for ( i=0; i<5; i++)

{

cout << "Value for myArray[" << i << "]: ";

cin >> myArray[i];

}

for (i = 0; i<5; i++)

cout << i << ": " << myArray[i] << "\n";

return 0;

}

程序运行输出:

Value for myArray[0]: 2

Value for myArray[1]: 5

Value for myArray[2]: 7

Value for myArray[3]: 8

Value for myArray[4]: 3

0: 2

1: 5

2: 7

3: 8

4: 3

 

 

6-11 引用和指针有何区别?何时只能使用指针而不能使用引用?

 

 

解:

引用是一个别名,不能为NULL值,不能被重新分配;指针是一个存放地址的变量。当需要对变量重新赋以另外的地址或赋值为NULL时只能使用指针。

 

 

6-12 声明下列指针:float类型变量的指针pFloat,char类型的指针pString和struct customer型的指针prec。

 

 

解:

float *pfloat;

char *pString;

struct customer *prec;

 

 

6-13 给定float类型的指针fp,写出显示fp所指向的值的输出流语句。

 

 

解:

cout << "Value == " << *fp;

 

 

6-14 程序中定义一个double类型变量的指针。分别显示指针占了多少字节和指针所指的变量占了多少字节。

 

 

解:

double *counter;

cout << "\nSize of pointer == "sizeof(counter);

cout << '\nSize of addressed value == "<<sizeof(*counter);

 

 

6-15 const int * p1 和 int * const p2的区别是什么?

 

 

解:

const int * p1 声明了一个指向整型常量的指针p1,因此不能通过指针p1来改变它所指向的整型值;int * const p2声明了一个指针型常量,用于存放整型变量的地址,这个指针一旦初始化后,就不能被重新赋值了。

 

 

6-16 定义一个整型变量a,一个整型指针p,一个引用r,通过p把a的值改为10,通过r把a的值改为5

 

 

解:

void main()

{

int a;

int *p = &a;

int &r = a;

*p = 10;

r = 5;

}

 

 

6-17 下列程序有何问题,请仔细体会使用指针时应避免出现这个的问题。

#include <iostream.h>

int main()

{

int *p;

*pInt = 9;

cout << "The

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值