C课本习题答案15_第1页
C课本习题答案15_第2页
C课本习题答案15_第3页
C课本习题答案15_第4页
C课本习题答案15_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计(C+版)习题答案董正言 本文档中包含书中所有习题的答案,其中的程序都在VC+6.0系统中通过编译,并可以正确运行。第一章1.1 面向对象程序设计方法有哪些基本特征?答:面向对象程序设计方法的基本特征有:抽象、封装、继承、多态。1.2 从着手开始编写一个程序,到形成一个可执行文件,通常需要经过哪几个步骤?答:一个由高级语言编写的程序从开始编码到可以运行需要经过编辑、编译和链接几步。1.3 C+程序的入口点是什么?答:C+程序的入口点是main函数。第二章2.1 在C+程序中,以下C是合法的标识符。 A、Cat.100 B、321day C、_100num D、int2.2 在基

2、于32位系统的VC+6.0编译器中,以下数据类型各占多少个字节? A、char B、int C、float D、long E、double答:在基于32位系统的VC+6.0编译器中,char型数据为1个字节,int型数据为4个字节,float型数据为4个字节,long型数据为4个字节,double型数据为8个字节。2.3 C+系统采用什么编码存储字符数据,该编码的长度是多少?答:C+系统采用ASCII码存储字符数据,该编码的长度是1个字节。2.4 写出定义以下变量的程序语句: 1、ASCII码值为65的字符型变量 2、值为10000的无符号整型变量 3、一个双精度浮点型变量解:1: char

3、ch=65;2: unsigned int i=10000;3: double f;2.5、在程序中经常出现的标识符cout和cin是什么?它们有什么功能?答:cout是C+系统预定义的标准输出流对象,代表标准输出设备-显示器,在控制台应用程序中可以利用它向显示器输出字符串。cin是C+系统预定义的标准输入流对象,代表标准输入设备-键盘,在控制台应用程序中可以利用它从键盘输入数据。2.6 程序中可能出现各种形式的数值常量,请写出以下语句的输出结果: 1、cout<<0144; 2、cout<<0x64; 3、cout<<0xB3L; 4、cout<&l

4、t;1234E-2; 5、cout<<(char)65;解:几条语句的输出结果如下:1、1002、1003、1794、12.345、A2.7 C+中如何定义符号常量,和C语言定义符号常量的方法有什么不同?答:C+使用关键字const定义符号常量,而C语言使用预编译指令#define定义符号常量。由关键字const定义的符号常量具有数据类型,在程序运行期间占据存储空间;而由预编译指令#define定义的符号常量没有数据类型,在程序运行期间也不占据存储空间。2.8 假设var1和var2都是整型写出以下C+表达式的值。 1、11/3 2、11%3 3、var1=(var2=10)+5

5、4、var1=(var2=10)+解:上面表达式的值分别是: 1、3 2、2 3、15 4、102.9 写出下面语句段的输出结果。 int i=5,j=10; i*= -j; cout<<"i="<<i<<endl;解:上面程序段的输出为:i=452.10 假设i,j,k是整型变量,而且i=5,j=10,k=20,写出下列表达式的值。1、 i<j&&j>k2、 i<j|j>k3、 !i>k4、 !(i>j)&&(j>k)解:上面表达式的值分别是: 1、0(或fals

6、e) 2、1(或true) 3、0(或false) 4、0(或false)2.11 假设i和j是整型变量,i的值为10,j的值为3。请写出下列语句的输出结果。1、 cout<<(i & j) ;2、 cout<<(i | j) ;3、 cout<<(i j) ;4、 cout<<(i << j) ;5、 cout<<(i >> j) ;6、 cout<<(i | i) ;解:上面语句的输出分别为: 1、2 2、11 3、9 4、80 5、1 6、-12.12 请写出下列语句的输出结果。 co

7、ut<<"Hello!r"<<"Welcome to C+!n"解:上面语句的输出为:Welcome to C+!2.13 假设i和j是整型变量,执行下列语句后,i的值是多少? i =(j = 10, j * 3) ;解:执行上面的语句后,i的值为30。2.14 假设i和j是整型变量,j的值为10,则执行下列语句后,i的值是多少? i=j<10?1:2 ;解:执行上面的语句后,i的值为2。2.15 下面表达式的结果是什么类型? 1、(10L+20)*0.5 2、(10L+20)*(1/2) 3、static_cast<

8、float>(1.234)*10L 解:上面表达式的结果分别是: 1、15.0 2、0 3、12.34第三章 3.1 编写一段程序,提示用户输入一个英文字母,使用if语句判断用户输入的字母是大写字母还是小写字母,然后输出相关信息。解:程序代码如下:#include<iostream>using namespace std;void main()char ch;cout<<"请输入一个大写或小写的英文字母"<<endl;cin>>ch;if(ch>='A'&&ch<='Z

9、')cout<<"您输入的是大写字母"<<endl;if(ch>='a'&&ch<='z')cout<<"您输入的是小写字母"<<endl;3.2 以下程序段输出若干行字符串“How are you!”,行数由用户的输入的整数决定,如果 用户输入0,则输出一行字符串“Hello!”,请找出下面程序中存在的语法错误。 int n; cout<<"请输入一个整数:" cin>>n; if(n=0)co

10、ut<<"Hello!n" elsefor(int i=0;i<n;i+);cout<<"How are you!n" 解:上面程序段中共有2处语法错误。第一处是语句if(n=0)应改为if(n=0);第二处是循环控制语句for后面不应该有分号。3.3 编写一段程序,连续输入若干个学生的考试成绩,根据成绩判断其所在的等级,并输出相关信息。判断成绩等级的规则如下: 等级=A级 90分数100B级 80分数<90C级 70分数<80D级 60分数<70E级 分数<60 例如,如果第3个学生的成绩为82分,

11、则应输出一行字符串“学生3的成绩为B等”。 要求使用while循环和switch选择语句。解:程序代码如下:#include<iostream>using namespace std;void main()int numbers;float score;cout<<"请输入学生人数"cin>>numbers;for(int i=1;i<=numbers;i+)cout<<"请输入第"<<i<<"个学生的成绩(在0到100之间的实数)"cin>>s

12、core;if(score>=90)cout<<"第"<<i<<"个学生的成绩为A级!"<<endl;else if(score>=80)cout<<"第"<<i<<"个学生的成绩为B级!"<<endl;else if(score>=70)cout<<"第"<<i<<"个学生的成绩为C级!"<<endl;else i

13、f(score>=60)cout<<"第"<<i<<"个学生的成绩为D级!"<<endl;else cout<<"第"<<i<<"个学生的成绩为E级!"<<endl;3.4 编写程序,输出下面的由星号组成的倒三角形。* * * * *解:程序代码如下:#include<iostream>using namespace std;void main()for(int i=1;i<=5;i+)for(i

14、nt j=0; j<10+i; j+)cout<<' 'for(int k=1;k<=(10-(2*i-1);k+)cout<<'*'cout<<endl;3.5 请举例说明break语句和continue语句各自的用法和区别。答:break语句用在switch语句或循环语句之中,作用是使程序的控制流立即跳出包含它的switch语句体或包含它的最内层循环语句体,接着执行后面的语句。而continue语句只能用在循环语句中,其作用是使程序不在执行本次循环位于continue语句之后的循环体内的语句,但并不跳出循环体,

15、而是跳转到循环开始处并判断是否应进行下一次循环。请同学自行举例验证。第四章4.1 编写程序,声明并初始化一个包含10个元素的整型数组,找出其中的最大值。解:程序代码如下:#include<iostream>using namespace std;void main()int array10=9,51,33,7,48,76,51,64,25,17;int max=0,maxindex;for(int i=0;i<10;i+)if(max<arrayi)max=arrayi;maxindex=i;cout<<"数组中第"<<max

16、index+1<<"个元素最大,它的值为"<<max<<endl;4.2 编写程序,声明并初始化一个4行3列的二维单精度浮点型数组,找出其中的最大值。解:程序代码如下:#include<iostream>using namespace std;void main()float array43=52.4f,23.9f,123.6f,81.5f,247.2f,77.0f,52.5f,187.0f,225.4f,78.4f,63.2f,111.5f;float max=0.0;int rindex,lindex;for(int i=

17、0;i<4;i+)for(int j=0;j<3;j+)if(max<arrayij)max=arrayij;rindex=i;lindex=j;cout<<"二维数组中第"<<rindex+1<<"行第"<<lindex+1<<"列的元素最大,它的值为"<<max<<endl;4.3 编写程序,将一个有序数组按逆序存放,例如:若原数组为1、2、4、5、8、10,则逆序后的数组为10、8、5、4、2、1。解:程序代码如下:#inclu

18、de<iostream>using namespace std;void main()int array6=1,2,4,5,8,10;int i=0,j=5;while(i<j)int temp=arrayi;arrayi=arrayj;arrayj=temp;i+;j-;for(i=0;i<6;i+)cout<<"array"<<i<<"="<<arrayi<<endl;4.4 编写程序,定义一个字符数组,用来接收用户从键盘输入的字符串,首先去掉其中的非字母字符,然后将

19、其中所有的大写英文字母转换成与其相应的小写字母,并将转换后的结果输出。解:程序代码如下:#include<iostream>using namespace std;void main()char array50;cout<<"请输入一行字符串(要求少于50个字符):"cin>>array;int i=0;while(arrayi)if(arrayi<'A'|(arrayi>'z'&&arrayi<'a')|arrayi>'z')int

20、k=i,j=i+1;while(arrayj) arrayk+=arrayj+;arrayk='0'else i+;i=0;while(arrayi)if(arrayi>='A'&&arrayi<='Z')arrayi='a'+(arrayi-'A');i+;cout<<array<<endl;4.5 请找出下面程序段中存在的错误。 int *p; *p=100; cout<<*p<<endl;解:在上面的程序段中,定义了指针变量p后,应该

21、使它指向某个确定的变量,然后才能使用该指针操作它所指向的变量。否则,指针变量中是一个随机地址,如果直接使用它,容易引发实时错误。所以上面的程序应该改为:int i, *p;p=&i; *p=100; cout<<*p<<endl;4.6 编写程序,首先定义并初始化一个一维整型无序数组,然后对该数组排序。要求排序过程中使用指针来操作数组。解:程序代码为:#include<iostream>using namespace std;void main()int array10=12,3,34,64,9,56,21,76,5,1;int *ptr;for(i

22、nt i=9;i>0;i-) ptr=array;for(int j=1;j<=i;j+)if(*ptr>*(ptr+1)int temp=*ptr;*ptr=*(ptr+1);*(ptr+1)=temp;ptr+;ptr=array;for(int k=0;k<10;k+)cout<<*ptr+<<" "cout<<endl;4.7 编写程序,首先定义并初始化一个整型二维数组用来表示一个4行×4列的矩阵,然后将上三角矩阵中的元素和与其相应的下三角阵中的元素相交换,并输出交换后的矩阵。要求使用指针操作数组

23、元素。解:程序代码如下:#include<iostream>using namespace std;void main()int array44=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;int (*ptr)4;ptr=array;for(int i=0;i<4;i+)for(int j=0;j<4;j+)if(*(*(ptr+i)+j)<10) cout<<' 'cout<<*(*(ptr+i)+j)<<' 'cout<<endl;for( i=0;

24、i<4;i+)for(int j=0;j<4;j+)if(i<j)int temp=*(*(ptr+i)+j);*(*(ptr+i)+j)=*(*(ptr+j)+i);*(*(ptr+j)+i)=temp; for(i=0;i<4;i+)for(int j=0;j<4;j+)if(*(*(ptr+i)+j)<10) cout<<' 'cout<<*(*(ptr+i)+j)<<' 'cout<<endl;4.8 找出下面程序段中存在的错误,并进行修改。 char *chptr; c

25、in>>chptr; cout<<chptr<<endl;解:此题程序段之中的错误同4.5题程序段中的错误类型相同,即定义了指针之后,必须使该指针指向一个确定的变量或数组(确定的内存地址)之后,才能使用该指针操作它所指向的变量或数组。否则,该指针中存放的是一个随机地址,直接使用它会引发严重的实时错误,造成严重的后果。所以,上面的程序段应该改为: char str50;char *chptr;chptr=str  cin>>chptr; cout<<chptr<<endl;4.9 编写程序,首先从键盘输入两个字符串

26、,然后比较两个字符串的大小。要求使用指针操作字符串。解:程序代码如下:#include<iostream>using namespace std;void main()char str150,str250;char *sp1,*sp2;sp1=str1;sp2=str2;cout<<"请输入第一个字符串:"cin>>sp1;cout<<"请输入第二个字符串:"cin>>sp2;while(*sp1&&*sp2)if(*sp1>*sp2)cout<<"字

27、符串"<<str1<<"大于"<<str2<<endl;break;else if(*sp1<*sp2)cout<<"字符串"<<str1<<"小于"<<str2<<endl;break;elsesp1+;sp2+;if(!*sp1)cout<<"字符串"<<str1<<"小于"<<str2<<endl;else

28、if(!*sp2)cout<<"字符串"<<str1<<"大于"<<str2<<endl; 4.10 请写出下面程序段的输出结果。 int i;int &j=i;j=100;cout<<i;解:上面程序段的输出为:1004.11 编写程序,动态创建一个一维字符数组,数组的长度由用户输入,从键盘输入一行字符串存放到该数组中,并判断是否是回文字符串。回文字符串是指从左向右度读和从右向左读字符串的内容相同。例如,字符串qWeRReWq就是一个回文字符串。解:程序代码如下:#incl

29、ude<iostream>#include<string.h>using namespace std;void main()int len;cout<<"请输入一个整数,作为字符数组的长度:"cin>>len;char *start,*sp1,*sp2;sp1=new charlen;start=sp1;cout<<"请输入一个字符串(要求字符个数少于"<<len<<"个):"cin>>sp1;int aclen=strlen(sp1);s

30、p2=sp1+aclen-1;while(sp1<sp2)if(*sp1!=*sp2) break;sp1+;sp2-;if(sp1<sp2)cout<<start<<"不是回文字符串!"<<endl;elsecout<<start<<"是回文字符串!"<<endl;4.12 编写程序,声明一个表示颜色的枚举(enum)类型Color,包含白(White)、红(Red)、黄(Yellow)、蓝(Blue)、绿(Green)五种颜色。定义一个Color类型的变量col,在屏

31、幕上输出字符串“请输入大写字母选择您最喜欢的颜色:W(白)、R(红)、Y(黄)、B(蓝)、G(绿)”,然后根据用户输入的字母,给变量col赋值,再根据col的值输出相关信息。例如,如果用户输入大写字母R,则col的值应为Red,并输出字符串“您最喜欢红色!谢谢!”;若用户输入的大写字母不在上面的集合中,则输出字符串“对不起,这里没有您喜欢的颜色!”。解:程序代码如下:#include<iostream>using namespace std;enum Color White,Red,Yellow,Blue,Green;void main()enum Color col;char c

32、h;cout<<"请输入大写字母选择您最喜欢的颜色:nW(白)、R(红)、Y(黄)、B(蓝)、G(绿):"cin>>ch;switch(ch)case 'W': col=White;break;case 'R':col=Red;break;case 'Y':col=Yellow;break;case 'B':col=Blue;break;case 'G':col=Green;break;default:cout<<"对不起,这里没有您喜欢的颜色!&q

33、uot;<<endl;switch(col)case White:cout<<"您最喜欢白色!谢谢!"<<endl;break;case Red:cout<<"您最喜欢红色!谢谢!"<<endl;break;case Yellow:cout<<"您最喜欢黄色!谢谢!"<<endl;break;case Blue:cout<<"您最喜欢蓝色!谢谢!"<<endl;break;case Green:cout<

34、;<"您最喜欢绿色!谢谢!"<<endl;break;4.13 编写程序,首先定义一个表示公司雇员的结构(struct)类型employee,包含5个成员,分别是:字符数组name20用来存放雇员的姓名,int型变量empNo用来存放雇员的员工号,float型变量salary用来存放雇员的月薪,float型变量hourlyPay用来存放每小时工作的酬金,整型变量workHours用来存放雇员每月工作的总时间(以小时为单位)。其中salary=hourlyPay×workHours 。创建一个employee类型的数组表示若干个公司员工,分别从键盘

35、输入每个员工的姓名和月工作时数,员工的工号根据输入的顺序自动生成,并假设员工每小时工作的酬金数为50元,根据上面的公式计算出每个员工的月薪。最后分别输出每个员工的月薪总额。例如“第001号员工李强的月薪为2000元”。解:程序代码如下:#include<iostream>using namespace std;struct employeechar name20;int empNo;float salary;float hourlyPay;int workHours;void main()int nums;cout<<"请输入员工的人数:"cin&g

36、t;>nums;struct employee *emp;emp=new employeenums;for(int i=0;i<nums;i+)cout<<"请输入第"<<i+1<<"个员工的姓名: "cin>>; cout<<"请输入第"<<i+1<<"个员工本月的工作时数: "cin>>empi.workHours;empi.empNo=1001+i;empi.hourlyPay=50.

37、0;empi.salary=empi.hourlyPay*empi.workHours; for(i=0;i<nums;i+)cout<<empi.empNo<<"号员工"<<<<"的月薪为:"<<empi.salary<<"元。"<<endl;第五章5.1 程序设计中使用函数的主要作用是什么?答:使用函数的主要作用包括以下几点:1 可以避免在编程时重复输入代码,提高了编程效率;2 避免大段相同的代码在程序中多次重复出现,使程序

38、的体积变小,节省了存储空间;3 符合软件工程的模块化编程原理,使程序易于修改和维护。例如,如果要修改某个函数,则只要函数的原型保持不变,就可以使函数的调用形式保持不变,那么程序的其他部分(包括调用了该函数的部分)就可以不做任何改动。即使是修改了函数原型,在程序的其他部分,也只需简单地修改函数的调用语句,较之不使用函数,修改的效率也会大幅提高。5.2 什么是形式参数?什么是实际参数?它们有什么联系?答:调用一个函数时,可以通过向它传递参数来把函数运行所需的数据传递到函数内部。出现在函数定义中的参数(或者说函数内部使用的参数)称为形式参数。而调用函数时作为参数向函数传递的数据称为实际参数。发生函数

39、调用时,实际参数的值或引用被传递给函数中的形式参数。5.3 函数的返回值有什么作用?怎样声明没有返回值的函数?答:函数返回值的作用是,当函数运行结束后,把函数的执行结果传递给调用它的程序。C+使用关键字void来声明没有返回值的函数。5.4 什么是主调函数?什么是被调函数?它们有什么联系?答:如果在函数A中调用了函数B,则称函数A为主调函数,而称函数B为被调函数,它们之间的关系是相对而言的,即一个被调函数中也可能调用其他函数甚至调用它自身,对于被它调用的函数而言,它就是主调函数。反之亦然。另外主调函数可以通过参数向被调函数传递数据,而被调函数也可以通过返回值向主调函数传递数据。5.5 什么是函

40、数原型?为什么要使用函数原型?答:函数原型是对函数的声明,在一个源程序文件中,如果函数的定义出现在函数调用语句之后,则在函数调用语句之前应该使用函数原型来声明该函数;C+的源程序是多文件结构的,如果一个源程序文件中调用了在另一个源文件中定义的函数,则在调用语句之前也需要用函数原型声明该函数。函数原型的作用是告诉编译器被调函数的调用形式,以便编译器在函数调用时进行参数类型检查。5.6 声明一个函数add,实现两个整数相加,并返回它们的和。解:函数代码如下:int add(int num1,int num2)return num1+num2;5.7 编写程序,在main函数中从键盘输入两个整数,调

41、用上题中编写的add函数计算并返回两个数的和。解:程序代码如下:#include<iostream>using namespace std;int add(int num1,int num2)return num1+num2;void main()int i1,i2;cout<<"请输入两个整数:"cin>>i1>>i2;cout<<i1<<" + "<<i2<<" = "<<add(i1,i2)<<endl;5.8

42、 编写一个没有返回值的函数,该函数有一个字符型的形式参数,该函数使用这个形参字符绘制一个倒三角形。例如,如果形参字符为a,则输出的图形如下: aaaaaaaaa aaaaaaa aaaaa aaa a解:函数代码如下:void ptriangle(char ch)for(int i=1;i<=5;i+)for(int j=0;j<i;j+)cout<<' 'for(int k=0;k<10-(2*i-1);k+)cout<<ch;cout<<endl;5.9 编写程序,在main函数中分别从键盘输入3个字符,并以它们为实参分

43、别调用上题中编写的函数,绘制3个倒三角形。解:程序代码如下:#include<iostream>using namespace std;void ptriangle(char ch)for(int i=1;i<=5;i+)for(int j=0;j<i;j+)cout<<' 'for(int k=0;k<10-(2*i-1);k+)cout<<ch;cout<<endl;void main()char ch;for(int i=0;i<3;i+)cout<<"请输入字符:"c

44、in>>ch; ptriangle(ch);5.10 编写一个函数,用来计算并返回矩形的面积。该函数有两个float型的形参,分别表示矩形的长和宽。解:函数代码如下:float area(float wid,float hei) return wid*hei;5.11 编写一个函数intfrac,该函数的功能是将一个float型形参切分成整数部分和小数部分。在main函数中从键盘输入一个float型变量var,以var为实参调用intfrac函数,函数调用结束返回到main函数后,再分别输出变量var的整数部分和小数部分。解:程序代码为:#include<iostream&g

45、t;using namespace std;int intfrac(float &varin)int inti=varin;varin=varin-inti;return inti;void main()float var;int inti;cout<<"请输入一个实数:"cin>>var;inti=intfrac(var);cout<<"整数部分为:"<<inti<<endl;cout<<"小数部分为:"<<var<<endl;5

46、.12 声明一个存储学生信息的结构体类型Student,其中包含表示学生姓名、学号、性别、年龄的成员name、num、sex和age。编写一个函数InFromKeyB,用来从键盘向结构体Student型的变量输入一个学生的信息。在main函数中定义一个包含10个元素的Student型数组,并分别以每个数组元素为参数调用函数InFromKeyB输入学生的信息。最后在main函数中输出学生的信息,检查输入是否正确。解:程序代码如下:#include<iostream>#include<iomanip>using namespace std;struct Studentcha

47、r name20;int num;char sex;int age;void InFromKeyB(Student &one)cout<<"请输入学生姓名:"cin>>;cout<<"请输入该学生的学号:"cin>>one.num;cout<<"请输入学生的性别('m'代表男性,'f'代表女性):"cin>>one.sex;cout<<"请输入学生的年龄:"cin>>

48、;one.age;void main()Student stu10;for(int i=0;i<10;i+)InFromKeyB(stui);cout<<" 姓名"<<" 学号"<<" 性别"<<" 年龄"<<endl;for(i=0;i<10;i+)cout<<setw(7)<<<<setw(7)<<stui.num<<setw(6)<<(stui.se

49、x='m'?"男":"女")<<setw(6)<<stui.age<<endl;5.13 怎样声明内联函数?内联函数和非内联函数的区别是什么?答:C+使用关键字inline来声明内联函数。内联函数和非内联函数的区别是:当发生函数调用时,系统的处理方式不同,处理内联函数时,编译器并不对函数进行实际的调用,而是把函数内部的指令嵌入到主调函数中发生函数调用的地方,以取代函数调用语句。对于那些体积非常小而又被经常调用的函数而言,这样做可以避免函数调用时所付出的时间和空间代价,且不会使程序的体积显著增大。5.14

50、 编写一个递归函数,将一个任意位数的整数的各位按逆序输出。例如输入整数1234,应输出字符串“4321”。解:程序代码如下:#include<iostream>using namespace std;void outbackform(int n)if(n!=0)cout<<n%10; outbackform(n/10);void main()int num;cout<<"请输入一个大于10的整数:"cin>>num;outbackform(num);cout<<endl;5.15 编写一个递归函数Gcd,返回整数X

51、和Y的最大公约数。Gcd函数的递归定义如下:Gcd(X,,Y)=Gcd(Y,,X%Y)(如果Y等于0)(如果Y不等于0)X 解:程序代码如下:#include<iostream>using namespace std;int Gcd(int x,int y)if(y=0)return x;elsereturn Gcd(y,x%y);void main()int i,j;cout<<"请输入两个正整数:"cin>>i>>j;if(i>=j) cout<<"整数"<<i<&l

52、t;"和"<<j<<"的最大公约数为:"<<Gcd(i,j)<<endl;elsecout<<"整数"<<i<<"和"<<j<<"的最大公约数为:"<<Gcd(j,i)<<endl;5.16 编写一个函数strcon。函数的原型如下: void strcon(char *sp1, char *sp2); 该函数将字符串sp2连接到字符串sp1之后,连接后的字符串存放

53、在sp1中。要求在 main函数中输入和输出字符串。解:程序代码如下:#include<iostream>#include<string.h>using namespace std;void strcon(char *sp1, char *sp2)int len=strlen(sp1);char *spt=sp1+len;while(*sp2)*spt=*sp2;spt+;sp2+;*spt='0'void main()char str180,str230;cout<<"请输入字符串:"cin>>str1;co

54、ut<<"请输入字符串:"cin>>str2;strcon(str1,str2);cout<<"两个字符串连接后的结果为:"<<str1<<endl;5.17 编写一个函数strbac。函数原型如下: void strbac(char *sp); 该函数将字符串sp逆序排列。要求在main函数中输入和输出字符串。解:程序代码如下:#include<iostream>#include<string.h>using namespace std;void strbac(char

55、 *sp)char tech,*sp1;int len;len=strlen(sp);sp1=sp+len-1;while(sp<sp1)tech=*sp;*sp=*sp1;*sp1=tech;sp+;sp1-;void main()char str50;cout<<"请输入一个字符串:"cin>>str;cout<<str<<"的逆序字符串为:"strbac(str);cout<<str<<endl;5.18 以下声明的函数原型是否正确?为什么? void fun(int v1=1,float v2,float v3=2.0);答:不正确。因为必须按照从右向左的顺序为函数的参数声明默认值。5.19 找出下面函数中的错误,并进行修改。 int*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论