using namespace std; void main(void) { string s1,s2; int n1,n2,i;
cout<<\ cin>>s1>>s2; n1=s1.length();
n2=s2.length(); for(i=0;i
{
cout<<\二,则输出结果,跳出循环
break; }
else if(s1[i] { cout<<\ break; } } if (i==n1||i==n2) 相等,则比较字符串长度 { if (n1==n2) cout<<\相等 else if(n1>n2) cout<<\ else cout<<\ } //计算字符串长度 //若字符串一大于字符串 //若字符串一小于字符串 //两字符串前面部分均 //两者长度相同则字符串 //长度长的字符串比较大 } 20、 fabcdef efabcde defabcd 第4章 指 针 思考与练习题 1、什么叫内存单元的地址?什么叫指针? 答:在计算机内部的存储器(简称内存)中,每一个字节单元,都有一个编号,称为地址。内存单元的编号,称为内存单元的地址。 在C++语言中,内存单元的地址称为指针。 2、什么叫指针变量?什么叫指针的目标? 答:专门用来存放地址的变量,称为指针变量(pointer variable)。指针指向的内存区域中的数据称为指针的目标。 3、什么叫空指针?其作用是什么? 答:所谓空指针就是指针变量的内容为零的状态。 4、指针运算的实质是什么? 答:指针运算是以指针变量所存放的地址量作为运算量而进行的运算。因此,指针运算的实质就是地址的计算。 5、指针有哪些运算?请枚举这些计算。 答:指针运算的种类是有限的,它只能进行算术运算、关系运算和赋值运算。 6、什么叫数组的指针?什么叫指针数组的指针? 答:在C++语言中,数组的指针是指数组在内存中的起始地址。 指针变量数组和普通的一般变量数组一样,编译系统在处理指针数组说明时, 按照指定的存储类型为它在内存中分配一定的连续存储空间,这时指针数组名就表示该指针数组的存储首地址,即指针数组的指针。 7、什么叫二级指针变量?什么叫多级指针变量? 答:对于指向处理数据的指针变量称为一级指针变量,简称一级指针。而把指向一级指针变量的指针变量称为二级指针变量,简称二级指针。我们把一个指向指针变量的指针变量,称为多级指针变量。 8、new运算符的作用是什么?delete运算符的作用是什么? 答:运算符new主要用于分配内存,并获得分配到的内存的首地址,通常需要将其赋给相应数据类型的指针。如果程序中不再需要由new分配的内存空间时,用运算符delete释放这些空间。 9、什么叫引用? 答:所谓引用是指给一个变量或一个数组起一个别名。使用引用进行运算的实质是操作原来的变量或数组本身的另一个使用名称。 10、const型指针有几种形式?其作用是什么? 答:const型指针主要有下面三种形式: ( a ) 常量化指针目标表达式 :常量化指针目标是限制通过指针改变其目标的数值。 ( b ) 常量化指针变量 :常量化指针变量,使得<指针变量>的地址值不能修改。但可以通过*<指针变量名称>可以修改指针所指向变量的数值。 ( c ) 常量化指针变量及其目标表达式:常量化指针变量及其目标表达式,使得既不可以修改<指针变量>的地址,也不可以通过*<指针变量名称>修改指针所指向变量的值。 11、什么叫void型指针?其作用是什么? void型的指针变量是一种不确定数据类型的指针变量,它可以通过强制类型转换让该变量指向任何数据类型的变量或数组。 12、如说明 int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *pa=a; 请给出访问第i+1个元数即a[i]的几种等价表达形式。 答:a[i],*(pa+i),*(a+i),pa[i] 13、请给出下列问题的计算结果: (1)若int x=8, y(10), *p=&x ; 则经过 y += x+2, *p=++x+y- - ; 的运算之后, cout< (2)若int x(1), y=2, z(3), *pw=&z ; 则经过语句y+=*pw+1, x+=++y, *pw += x -y; 的运算, 则 x, y, z 的结果值各是什么? 答:8 7 4 (3)若int a[4]={1,2 ,3,4}; 则a[2]=a[0]+*(a+3)+a[1]++ 运算之后,a的各元素存放的是什么? 答:a[4]={1, 3, 7, 4} (4)若说明int a[8]={7,6,5,4,3,2,1,0}, *p=&a[7]; 则经过表达式 *(p-1) += ( *p+=1, *(p - = 6) +=3, *(p+4) += 1 ); 运算后,则数组a各元素的值是什么? 答:10 9 5 4 3 3 1 1 (5)若说明int x, data[8]={1,2 ,3,4,5,6,7,8}; 则x=*(data+1)+*(&data[5]-2)之后, x存放的数是什么? 答:6 (6)若说明int a=16; int &ra = a; 经过语句 a += 2; ra +=2 ; 执行之后, 表达式 ra+1 的结果是多少? 答:21 (7) 若说明int a[3]={8, 18, 28}; int (&ra)[3] = a; 经过语句 ra[0] +=12; a[1] +=2 ; 执行之后,则数组a各元素的值是什么? 答:20 20 28 (8) 若说明 int x=16 ; const int *px =&x; 经过语句 x=26; 则表达式 *px+4 的结果是多少? 答:30 (9) 若说明 int a=82 , b(28) ; const int * pa = &a; 则表达式 *px+2 的结果是多少? 答:30 (10) 若说明 int x=99; int * const px =&x ; 则表达式 *px 的结果是多少? 答: 100 经过语句 x += 1; 经过语句 pa = &b; 第5章 函数与宏 1、 请给出函数概念的基本描述。 答:函数就是一个完成特定功能的代码模块,其程序代码独立,通常要求有返回值,也可以是空值。 2、 什么叫函数原型? 答:函数原型是指由函数定义中抽取出来的能代表函数应用特征的部分,包括函数 的数据类型、函数名称、形式参数说明。 3、 什么叫函数的实参?什么叫函数的形参? 答:实参是在调用函数过程中传递给被调用函数的参数;形参是被调用函数接受调用函数传递过来的数据的参数。 4、 请说出函数参数为一般变量的复制传递方式、地址传递方式和引用方式的异同点。 答:复制传递方式是实参的数据拷贝给了形参变量,实参和形参是具有相同数据类型但存储空间是不同的两组空间。在复制传递方式下,被调用函数里对形参的操作不能改变实参的内容。 地址传递方式和复制传递方式正好相反,用函数的参数本身传给被调用函数。被调用函数中对形参的操作将直接改变实参的值。调用函数将实参的地址传送给被调用函数,被调用函数对该地址的目标操作即对实参本身的操作。按地址传递,实参为变量的地址,而形参为同类型的指针。 引用方式和地址传递方式的效果一样,但引用更直接、更方便。按引用传递,实参为变量,形参为同类型的引用。采用引用方式实参和形参使用的是相同的内存空间,只是名称不同而已。 5、 数组在函数间传递形式有哪些?并给以比较和解释。 答:数组在函数间的传递形式有复制传递方式、地址传递方式、引用方式和全局数组传递方式。 函数与函数之间数组的复制传递方式是调用函数将实参数组传递给被调用函数形参,形参接收是实参的地址。 函数与函数之间数组的地址传递方式是将调用函数中的实参数组的起始地址传递给被调用函数的指针变量形参。被调用函数中对形参地址的目标操作,相当于对实参本身的操作,将直接改变实参数组的值。地址传递方式,实参应该为数组的指针,而形参应为同类型的指针变量。另外,数组的地址传递方式不仅要把实参数组的指针作为参数传递给函数,同时还需要传递数组的长度。与引用方式不同的是被调用函数的形参应声明为数组同类型的指针变量。 函数与函数之间数组的引用传递方式需将被调用函数的形参说明为数组的引用形式。在被调用函数中,对形参进行操作就是对实参数组的直接操作。数组的引用方式和地址传递方式的作用效果基本一样,但引用更直接、更方便。按引用方式传递数组,形参为实参同类型的数组引用。但引用数组名不是指针变量,不能作为左值。 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++第一至第八章课后习题答案(5)在线全文阅读。
相关推荐: