C程序设计教程修订版设计思想与实现习题解答钱能

合集下载

C程序设计教程修订版设计思想与实现习题解答钱能

C程序设计教程修订版设计思想与实现习题解答钱能

二2.1#include <iostream.h>void main(){ //本题原考虑在 16 位机器上实验目前多为 32 位机器故已过时。

int a = 42486; cout <<oct <<a <<endl <<hex <<a <<endl; unsigned b = 42486;cout << dec <<(signed)b <<endl;}2.2#include<iostream.h>#include<iomanip.h>const double pi =3.1415926; voidmain(){double radius1, radius2;cout <<"please input twonumbers:\n";cin >>radius1 >>radius2;cout <<setw(10) <<pi <<setw(10)<<radius1 <<setw(10)<<(pi*radius1*radius1) <<endl<<setw(10) <<pi <<setw(10)<<radius2<<setw(10) <<(pi*radius2*radius2) <<endl; }2.3#include<iostream.h>#include<iomanip.h> constdouble e =2.718281828; voidmain(){cout <<setprecision(10) <<e <<endl<<setiosflags(ios::fixed) <<setprecision(8) <<e <<endl<<setiosflags(ios::scientific) <<e <<endl;}2.4#include <iostream.h>void main(){cout <<"\"How many students here?\"\n"<<"\"500\"\n";}2.5#include <iostream.h>void main(){cout <<"size of char " <<sizeof(char) <<"byte\n" <<"size of unsigned char "<<sizeof(unsigned char) <<" byte\n"<<"size of signed char " <<sizeof(signedchar) <<" byte\n" <<"size of int "<<sizeof(int) <<" byte\n"<<"size of unsigned " <<sizeof(unsigned)<<" byte\n" <<"size of signed "<<sizeof(signed) <<" byte\n" <<"size of short " <<sizeof(short) <<" byte\n"<<"size of unsigned short "<<sizeof(unsigned short) <<" byte\n"<<"size of long " <<sizeof(long) <<" byte\n"<<"size of signed long " <<sizeof(signedlong) <<" byte\n"<<"size of unsigned long "<<sizeof(unsigned long) <<" byte\n" <<"sizeof float " <<sizeof(float) <<" byte\n"<<"size of double " <<sizeof(double) <<"byte\n"<<"size of long double " <<sizeof(longdouble) <<" byte\n";}2.6 1) please input 3sides of one triangle:6,6,8a= 6.00,b= 6.00,c= 8.00area of triangle is 17.888542)该程序计算三角形的面积前后分为三部分输入处理输出。

(完整版)《C语言程序设计》课后习题答案(第四版)谭浩强(可编辑修改word版)

(完整版)《C语言程序设计》课后习题答案(第四版)谭浩强(可编辑修改word版)

// 一次存 5 年期 // 先存 2 年期,到期后将本息再存 3 年期 // 先存 3 年期,到期后将本息再存 2 年期 // 存 1 年期,到期后将本息存再存 1 年期,连续存 5 次 // 存活期存款。活期利息每一季度结算一次
// 输出按第 1 方案得到的本息和 // 输出按第 2 方案得到的本息和 // 输出按第 3 方案得到的本息和 // 输出按第 4 方案得到的本息和 // 输出按第 5 方案得到的本息和
s=r*r*pi; sq=4*pi*r*r; vq=3.0/4.0*pi*r*r*r; vz=pi*r*r*h; printf("圆周长为: printf("圆面积为: printf("圆球表面积为: printf("圆球体积为: printf("圆柱体积为: return 0; }
//计算圆面积 s //计算圆球表面积 sq //计算圆球体积 vq //计算圆柱体积 vz l=%6.2f\n",l); s=%6.2f\n",s); sq=%6.2f\n",sq); v=%6.2f\n",vq); vz=%6.2f\n",vz);
3-2-2 #include <stdio.h> #include <math.h> int main() {double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072;
3-8 #include <stdio.h> int main() { char c1,c2; printf("请输入两个字符 c1,c2:"); c1=getchar(); c2=getchar(); printf("用 putchar 语句输出结果为:"); putchar(c1); putchar(c2); printf("\n"); printf("用 printf 语句输出结果为:"); ห้องสมุดไป่ตู้rintf("%c %c\n",c1,c2); return 0; }

c课后题答案 钱能第二版

c课后题答案 钱能第二版

学习资料收集于网络,仅供参考1-1#include<iostream>using namespace std;void main(){cout<<I'm a student<<endl;}1-2#include<iostream>using namespace std;int i,j;void main(){for(i=1;i<=4;i++){for(j=1;j<=4-i;j++){cout<< ;}for(j=1;j<=2*i-1;j++){cout<<*;}cout<<endl<<endl; }for(i=1;i<=3;i++){for(j=1;j<=i;j++){cout<< ;学习资料.学习资料收集于网络,仅供参考for(j=1;j<=(7-2*i);j++){cout<<*;}cout<<endl<<endl; }}2-13#include<iostream>using namespace std;int i,j;void main(){for(i=1;i<=9;i++)cout<<i<<\ ;for(i=1;i<=9;i++)cout<<-<<\ ;cout<<endl<<endl;for(i=1;i<=9;i++) // 下三角形式{for(j=1;j<=i;j++)//{cout<<i*j<<\ ;//}cout<<endl;}cout<<endl<<endl;学习资料.学习资料收集于网络,仅供参考for(i=1;i<=9;i++) //shang三角形式cout<<\ <<i;for(i=0;i<9;i++)cout<<\ <<-;cout<<endl<<endl;for (i=1;i<=9;i++){for(j=1;j<=i;j++)cout<<\ ;for(j=i;j<=9;j++)//{cout<<i*j<<\ ;//}cout<<endl; }}3-3#include<iostream>#include<vector>#include<cmath>using namespace std;void main(){int a[11]={6,3,7,1,4,8,2,9,11,5};vector<int> ve(a,a+10);int he=0;int sum=0;学习资料.学习资料收集于网络,仅供参考float average;float s;for(int i=0;i<ve.size();i++){sum+=ve[i];}average=sum/ve.size();for( i=0;i<ve.size();i++){he+=(ve[i]-average)*(ve[i]-average);}s=sqrt(he/ve.size());cout<<s=<<s<<endl;}4-6#include<iostream>#include<fstream>#include<sstream>using namespace std;void main(){int a=0;ifstream in(D:\\aaa.txt);for(string s;getline(in,s);)for(istringstream sin(s);sin>>a;){if((a%3==0)&&(a%5==0)&&(a%7==0))挠畯?愼?能同时被3 5 7整除<<endl;else if((a%3==0)&&(a%5)&&(a%7)) 学习资料.学习资料收集于网络,仅供参考挠畯?愼?能被3整除不能被5整除也不能被7整除<<endl; else if((a%3)&&(a%5==0)&&(a%7))挠畯?愼?能被5整除不能被3整除也不能被7整除<<endl;else if((a%3)&&(a%5)&&(a%7==0))?挠畯?愼?能被7整除不能被3整除也不能被5整除<<endl;else if((a%3)&&(a%5)&&(a%7))??潣瑵??尼不能被3 5 7 任意一个整除<<endl;}}4-8#include<iostream>using namespace std;void transform(int );int n;void main() //十进制数转换为二进制数{潣瑵?输入要转换的十进制整数:<<endl;int num;cin>>num;transform(num);}void transform(int n){if (n<2)cout<<n;else if(n>=2){学习资料.学习资料收集于网络,仅供参考transform(n/2);cout<<n%2;}5-5#include<iostream>#include<fstream>#include<sstream>#include<vector>#include<algorithm>using namespace std;typedef vector<vector<int> > vii;//---------------------------------------------------------------vector<int> read(){vector<int>a;ifstream in(D:\\aaa.txt);for(string s;getline(in,s);){int c;for(istringstream sin(s);sin>>c;)a.push_back (c);}if(a.empty())cout<<NO ELement!<<endl;else<<endl; 从磁盘中读取数据输出结果是:潣瑵?for(int i=0;i<a.size();i++) 学习资料.学习资料收集于网络,仅供参考cout<<a[i]<< ; //输出读取的数据cout<<endl<<endl;return a;}//---------------------------------------------------------------int bit_twice_sum(int a){int sum=0;for(int x=a;x;x/=10)sum+=(x_x0010_)*(x_x0010_);return sum;}//-----------------------------------------------------------------------bool compare(int sum1,int sum2){return bit_twice_sum(sum1)<bit_twice_sum(sum2);}//----------------------------------------------------------------------- void insert_cout(vector<int>ve){<<endl; 请输入你想插入的数:?潣瑵? int num;cin>>num;ve.push_back(num);sort(ve.begin(),ve.end(),compare);挠畯?攼摮?尼插入数之后,再按各位数字平方之和的大小输出:<<endl;for(int i=0;i<ve.size();i++)cout<<ve[i]<< ;学习资料.学习资料收集于网络,仅供参考cout<<endl;}//-----------------------------------------------------------------------void main(){vector<int>v0=read();sort(v0.begin(),v0.end(),compare);挠畯?攼摮?尼按各位数字平方之和的大小输出:<<endl;for(int i=0;i<v0.size();i++)cout<<v0[i]<< ;cout<<endl;insert_cout(v0);//----------------------------------------------------------------------- 8-1#include<iostream>#include<cmath>using namespace std;//------------------------------------class Point{protected:double x,y; //x y 轴分量public:void set(double ix,double iy)// 设置坐标{x=ix;y=iy;}学习资料.学习资料收集于网络,仅供参考//------------------------------------------double xoffset()//取y轴坐标分量{return x;}//------------------------------------------轴坐标分量double yoffset()//取x{return y;}//----------------------------------------@ 取点的极坐标double angle()//{return (180/3.14159)*atan2(y,x);}//--------------------------------------double radius()//取点的极坐标半径{return sqrt(x*x+y*y);void Point:: add(){x+=5;y+=6;潣瑵?硜尽??攼摮?尼??礼?湥汤※}};void main(){Point p;double x,y;学习资料.学习资料收集于网络,仅供参考cout<<Enter x and y:<<endl;cin>>x>>y;p.set(x,y);潣瑵?慜杮敬尽??湡汧??攼摮?尼慲楤獵尽??慲楤獵?湥汤?硜offset=<<p.xoffset()<<endl<<y offset=<<p.yoffset()<<endl; p.add();}8-3#include<iostream>#include<iomanip>using namespace std;class Date{private:int year,month,day;public:void set(int d,int m,int y);void add();void print();};void Date::set(int d,int m,int y){year=y;month=m;day=d;void Date::add(){day=day+1;<<day<<endl; ??潣瑵?加一天之后日期是:学习资料.学习资料收集于网络,仅供参考}void Date::print(){cout<<setfill('0');cout<<setw(2)<<day<<'/'<<setw(2)<<month<<'/'<<setw(4)<<year<<en dl;//cout<<setfill(' ');}void main(){Date d1,d2;d1.set(10,4,2012);d1.print();d2.set(10,4,2012);d2.add();d2.print();}8-4/**多文件结构*///Time.cpp#includeTime.hvoid Time::set(int h,int m,int s){hour=h;minite=m;学习资料.学习资料收集于网络,仅供参考second=s;}void Time::print(){setfill('0');cout<<setw(2)<<hour<<':'<<setw(2)<<minite<<':'<<setw(2)<<second<<endl; }#includeTime.h//主函数void main(){Time t;t.set(14,47,39);t.print();}9-1#include<iostream>using namespace std;class MyClass{int number;public:MyClass();MyClass(int);~MyClass();void Display();};//--------------------------------------------------MyClass::MyClass(){cout<<Constructing normally.\n;}学习资料.学习资料收集于网络,仅供参考//------------------------------------------------------MyClass::MyClass(int m):number(m){cout<<Constructing with a number:<<number<<endl;}//-----------------------------------------------------void MyClass::Display(){cout<<Display s number:<<number<<endl;}//-----------------------------------------------------------------MyClass ::~MyClass(){cout<<Destructing.\n;}//---------------------------------------------------void main(){MyClass obj1;MyClass obj2(20);obj1.Display();obj2.Display();}//--------------------------------------------------------------- 9-3#include<iostream>using namespace std;//----------------------------class CAT{int *itsAge;public:CAT():itsAge(new int(5)){}~CAT(){delete itsAge;}学习资料.学习资料收集于网络,仅供参考int GetAge() const {return *itsAge;}void SetAge(int age){*itsAge=age;}};//-------------------------------------------void main(){CAT friskey;cout<<\n; cout<<Setting friskey to 6……friskey.SetAge(6);cout<<Creating boots from friskey\n;CAT boot(friskey);cout<<cout<<oot's age: <<boot.GetAge()<<endl; \n; cout<<setting friskey to 7……friskey.SetAge(7);cout<<cout<<oot's age: <<boot.GetAge()<<endl; }学习资料.。

《C 程序设计教程》课后习题答案

《C  程序设计教程》课后习题答案

第1章C++及其开发环境概述一、问答题1.结构化程序设计主要有哪些劣势?【答案】(1)程序的开发效率低下(2)程序的可重用性差(3)程序的维护成本高(4)无法适应信息的快速膨胀和多样化2.面向对象的程序设计有哪些优点?【答案】(1)程序的开发效率高(2)程序代码的可重用性高(3)程序易于维护3.C++的发展经历了哪些阶段?【答案】C++语言起源于C语言。

1980年初期,美国贝尔实验室的Bjarne Stroustrup博士及其同事在C语言的基础上,从Simula67中引入面向对象的特征,开发出一种过程性与对象性相结合的程序设计语言,最初称为“带类的C”,1983年正式取名为C++。

后来,Stroustrup和他的同事陆续将运算符重载、继承、虚函数等特性引入C++,1989年后推出AT&T C++ 2.0版,并经过多次改进和完善,发展成为现在的C++。

4.C++主要有哪些特点?【答案】(1)C++可以被看成C语言的一个超集,是对C的增强和扩展。

因此,许多C代码可以不经修改即可为C++所用。

自然,也可以利用C++开发环境来开发C程序。

(2)C++几乎支持所有面向对象的程序设计特征,因此,利用C++不仅可以进行传统的结构化程序设计,而且可以较好地进行面向对象的程序开发。

(3)C++很好地保持了C的简洁、高效、灵活和接近汇编语言的特点,因此,C++程序的执行效率也很高。

5.一个C++程序一般由哪几部分构成?【答案】①预处理命令。

C++提供了三种预处理命令,即宏定义命令、文件包含命令和条件编译命令。

②全局声明部分。

此部分内容通常会给出用户自定义的数据类型声明,以及程序中所涉及变量的定义,例如类的声明。

数据结构③函数。

一个程序中可包含一个或多个函数,它们是执行用户指定操作的主要部分。

6.使用Visual C++ 开发C++程序时一般要经过哪几个步骤?每个步骤的作用是什么?相应地产生哪些文件?【答案】(1)编写程序C++是一种高级语言,所以用其编写的程序称为“源程序”,以.cpp做为后缀。

C 程序设计习题与实验教程参考答案(习题部分)解读

C  程序设计习题与实验教程参考答案(习题部分)解读
二、填空题
1.①3②24
2.首地址
3.①i②i+j③i/7④i%7⑤i*7+j
4.①7②8③7④50
5.①字符(char)型②cin.getline(str,80);
6.123456
7.FMBS
勘误:
“for(int i=0;i<4;i++,p++)cout<<*p[i];”改为“for(int i=0;i<4;i++)cout<<*s[i];”
14.①s2+31②n③t%2+'0'④!strcmp(s1,p2)
15.①num[i++]②s=0③flag=1④j<=k
16.①i<len1②j>=len2③b[k]=b[k-1]④++i%5==0
17.①pa>=a&&pb>=b②j+k+carry③ps++④p<ps
18.①t[n++]②continue③t[k+1]=t[k]④n++
}
2.求三角形面积
#include <iostream.h>
#include <math.h>
void main (void)
{
inta,b,c;
doubles,area;
cout<<"输入三角形三边长a,b,c:"<<endl;
cin>>a>>b>>c;
s=(a+b+c)/2.0;

C++程序设计教程课后习题答案【钱能】清华版

C++程序设计教程课后习题答案【钱能】清华版

1)please input 3 sides of one triangle:6,6,8a= 6.00,b= 6.00,c= 8.00area of triangle is 17.888542)该程序计算三角形的面积前后分为三部分:输入,处理,输出。

2.7In main():Enter two numbers:3 8Calling add():In add(),received 3 and 8and return 11Back in main():c was set to 11Exiting...3.1(1)sqrt(pow(sin(x),2.5))(2)(a*x+(a+x)/(4*a))/2(3)pow(c,x*x)/sqrt(2*M_PI) //M_PI为BC中math.h中的圆周率常数3.213.72.593.3(1)a1=1 a2=1(2)1.1(3)(4)205.4Main--x=5,y=1,n=1Func--x=6,y=21,n=11Main--x=5,y=1,n=11Func--x=8,y=31,n=215.6double poly(int n, double){if(n==0)return 1;if(n==0)return x;return ((2*n-1)*x*poly(n-1,x)-(n-1)*poly(n-2,x))/n;}6.1//6_1(1)//file1.cppint x=1;int func(){//...}//file2.cppextern int x;int func();void g(){x=func();}//file3.cppextern int x=2; //error: extern int变量若有赋值,则成定义int g(); //error: 函数声明与前面不一致void main(){x=g();}(2)//file1.cppint x=5;int y=8;extern int z;//file2.cppint x; //error: int x;重复定义extern double y; //error: y同一名字不同类型定义extern int z; //error: z只有声明,却无定义6.22510.4//10_4(1)见10_4_1.cpp(2)data? 3data? 5data? 7data? 6data? 4data? 8data? -3357648(3)见10_4_312.1Constructing normally.Constructing with a number: 20Display a number: 1Display a number: 20Destructing.12.2//12_2//见employee.h// employee.cpp 12.3//12_3.txt//见employ.h// employ.cpp//13_1.txt物质有机物生物动物哺乳动物人类猿类猫科类...卵生动物植物非生物无机物//13_2Ignore//14_1Multi[0] is:0Multi[1] is:1Multi[2] is:4Multi[3] is:9Multi[4] is:16 Multi[5] is:25 Multi[6] is:36 Multi[7] is:49 Multi[8] is:64 Multi[9] is:81 Destroying..9 Destroying..8Destroying..6Destroying..5Destroying..4Destroying..3Destroying..2Destroying..1Destroying..0//14_2//运行结果为:12345678910//增加拷贝构造函数后的运行结果为:149162536496481//14_3//运行结果为:create a X object with 1create a X object with 2 //创建临时对象call a func with para X objectcreate a X object from other X objecterase a object //析构临时对象create a X object from other X objectcall a func with para X objectcreate a X object from other X objecterase a objecterase a objecterase a objecterase a object17.1class A{public:int GetpA(){ return pA; }void SetpA(int a){ pA=a; }private:int pA;};class B :public A{public:void OnB(){}};class C :virtual public A, virtual public B{ public:Sc(){ /*use GetpA() and SetpA()... */ }};19.5Dill Arnson 8869533 139****1080 Welch Shammas 6695482 130****9001 Portel Braumbel 5937221 139****2991。

C程序设计教程——设计思想与实现习题解答钱能

C程序设计教程——设计思想与实现习题解答钱能

二#include <>void main(){ .#include <> #include <> doubleCylinder(double r, double h); voidmain(){double radius, height;cout <<"请输入圆柱体的半径和高:\n";cin >>radius >>height;double volume = Cylinder(radius, height);cout <<"该圆柱体的体积为" <<volume <<endl;}double Cylinder(double r, double h){return r*r*M_PI*h;}三(1) sqrt(pow(sin(x),)(2) (a*x+(a+x)/(4*a))/2pow(c,x*x)/sqrt(2*M_PI) n"; break; case 1: cout <<"只能被 7 整除.\n"; break; case 2: cout <<"只能被 5 整除.\n"; break; case 3: cout <<"可以被 5,7 整除.\n";break; case 4: cout <<"只能被 3 整除.\n"; break; case 5: cout <<"可以被 3,7 整除.\n"; break; case 6: cout <<"可以被 3,5 整除.\n"; break;case 7: cout <<"可以被3,5,7整除.\n"; break; }}#include <>void main(){int grade; cout <<"please input a number:\n"; cin >>grade; if(grade>100||grade<0)cout <<"错误的成绩.\n";else if(grade>=90)cout <<"A.\n"; elseif(grade>=80) cout<<"B.\n"; elseif(grade>=70) cout<<"C.\n"; elseif(grade>=60) cout<<"D.\n"; elsecout <<"E.\n";}四1#include <> #include <>void main(){double sum=1, t=-1, x; int i=1; cout<<"please input a value:\n"; cin >>x;do{ t*=(-1)*x/i; sum+=t;i++; }while(fabs(t)>1e-8);cout <<"sum=" <<sum<<endl;}2#include <>#include <> void main(){double sum=1, t=-1, x; cout<<"please input a value:\n"; cin >>x;int i=1; while(fabs(t)>1e-8){ t*=(-1)*x/i; sum+=t; i++; } cout<<"sum=" <<sum<<endl;3#include <> #include <>void main(){double sum=1, t=-1, x; cout<<"please input a value:\n"; cin >>x;for(int i=1; fabs(t)>1e-8; i++){t*=(-1)*x/i; sum+=t; } cout<<"sum=" <<sum<<endl;}#include <>void main(){long sum=0, t=1; for(int i=1;i<=15; i++){ t*=i; sum+=t; }cout <<"sum=" <<sum <<endl;}#include <>void main(){for(int i=1; i<=9; i++) for(int j=0; j<=9; j++) for(int k=0; k<=9; k++) if(i*i*i+j*j*j+k*k*k == 100*i+10*j+k)cout <<(100*i+10*j+k) <<"是水仙花数.\n";}#include <>void main(){for(int i=1; i<1000; i++){ int sum=0; for(int j=1; j<=i/2; j++) if(i%j==0) sum+=j;if(sum==i) cout <<i<<"是完数.\n";}#include <>void main(){float s=100,h=100;for(int i=1; i<10;i++){ s+=h; h/=2;}cout <<"共经过" <<s <<"米第 10 次反弹" <<h <<"米高.\n"; }#include <> void main(){ int peachs=1;for(int i=1;i<10; i++)peachs=(peachs+1)*2;cout <<"第一天共摘下" <<peachs <<"个桃子.\n"; }#include <> #include <>void main(){double x, a; cout <<"please input avalue:\n"; cin >>a; x = a/2;while(fabs((x-a/x)/2)>1e-7)x=(x+a/x)/2;cout <<a <<"的平方根是" <<x <<endl;}1#include <>void main(){for(int i=1; i<=10;i++){ for(int j=1; j<=10-i; j++)cout <<" "; for(int j=1; j<=2*i-1; j++) cout <<"#"; cout<<endl;}}2#include <>void main(){ for(int i=1; i<=8; i++){ for(intj=1; j<=i; j++) cout <<" ";for(int j=1; j<=18-i; j++)cout <<"#"; cout <<endl;}}1#include <> #include <>void main(){cout <<" *"; for(inti=1; i<=9; i++) cout<<setw(4) <<i;cout <<"\n-----------------------------------------\n"; for(int i=1; i<=9; i++){ cout <<setw(3) <<i; for(int j=1; j<=9; j++) cout <<setw(4) <<i*j; cout <<endl;}}2#include <> #include <>void main(){cout <<" *"; for(inti=1; i<=9; i++) cout<<setw(4) <<i;cout <<"\n-----------------------------------------\n"; for(int i=1; i<=9; i++){ cout <<setw(3) <<i; for(int j=1; j<=i; j++) cout <<setw(4) <<i*j; cout <<endl;}}3#include <> #include <>void main(){ cout <<" *";for(int i=1;i<=9; i++)cout <<setw(4)<<i;cout <<"\n-----------------------------------------\n";for(int i=1; i<=9; i++){ cout <<setw(3) <<i;if(i!=1)cout <<setw(4*i-4) <<" ";for(int j=i; j<=9; j++) cout<<setw(4) <<i*j; cout <<endl;}}#include <>void main(){ int n; long a=1, b=1, c=1, temp;cout <<"please input a value:\n";cin >>n; for(int i=4; i<=n;i++){ temp=a+c; a=b; b=c; c=temp;} cout << c <<endl;}五#include <> #include <>#include <> boolisprime(long n);void main(){.}.}(2) <<a[i] <<" boy has won.\n"; <<a[i] <<" boy has won.\n"; n";cout <<"please select following operation:\n"; cout <<"\t\tstop at once! ----- 1\n"; cout<<"\t\tinput again. ------- 2\n"; cout <<"\t\tas default values -- 3\n\n"; int sele=0; cin >>sele; switch(sele){ case 1: return false; case 2: sign=false; break; case 3: num=10; interval=3; return true;}(3)#include <> const size=10; voidfindmax(int* a, int n, int& pk); voidmain(){ int a[size];int n=0;cout <<"please input " <<size <<"datas:\n";for(int i=0; i<size; i++) cin >>a[i]; findmax(a,size,n); cout <<"the maximum is "<<a[n] <<endl<<"It's index is " <<n <<endl;}void findmax(int* a,int n,int& pk){ for(int i=1; i<n; i++)if(a[i]>a[pk])pk=i;}9_2#include <> #include <>int& put(int n); .put(9)=30;cout <<get(0) <<endl; cout<<get(1) <<endl;cout <<get(9) <<endl; put(12)=1; .}int& put(int n){if(n>=10){ cerr <<"range error in putvalue!\n";exit(1); }return vals[n];}int get(int n){if(n>=10){ cerr <<"range error in getvalue!\n"; exit(1); } return vals[n];}#include <>void Swap(char*& str1, char*& str2);void main(){char* ap="hello"; char* bp="howare you?"; cout <<ap <<endl <<bp<<endl; Swap(ap, bp); cout <<"交换以后:\n"; cout <<ap <<endl<<bp <<endl;}void Swap(char*& str1, char*& str2){ char* temp=str1;str1=str2;str2=temp;}一○#include <> structStudent{ intmathmidterm;int mathfinal;};void main(){Student s;cout <<"please input midterm and final math\n" <<"grade of a student:\n"; cin >> >>;cout <<"the average grade of midterm and final math is " << + / <<endl;}10_2#include <> #include<> struct Node{ charstr[20]; Node* next;};void Insert(Node*& head); voidmain(){Node* p;Node* x=new Node;strncpy(x->str,"hello",20);x->next = NULL; p =x; x=newNode;strncpy(x->str,"jone",20);x->next = p; p=x;x=new Node;strncpy(x->str,"good",20);x->next = p; p=x;x=new Node;strncpy(x->str,"better",20); x->next =p; p=x; cout <<"\n 插入之前:\n";for(Node* pT=p; pT; pT=pT->next) cout <<pT->str <<"->"; cout <<"0\n"; Insert(p);cout <<"\n 插入之后:\n"; for(Node*pT=p; pT; pT=pT->next) cout <<pT->str <<"->";cout <<"0\n";}void Insert(Node*& head){Node* p=new Node;strncpy(p->str,"marit",20);head->str[19]='\0';if(!head){ head = p;p->next = NULL; return; }if(!strcmp(head->str,"jone")){ p->next = head; head= p; return; } Node* sp;for(sp=head; sp->next&& strcmp(sp->next->str,"jone"); sp=sp->next); p->next = sp->next;sp->next = p;}10_3#include <> struct Node{char c;Node* next;};Node* reverse(Node* head);void main(){Node x[4]; for(int i=0; i<4;i++){ x[i].c='A'+i; cout <<x[i].c <<"->";x[i].next = &x[i+1]; } cout <<"NULL"<<endl; x[3].next = NULL; Node* head =reverse(x); for(Node* pH=head; pH;pH=pH->next) cout <<pH->c <<"->"; cout<<"NULL" <<endl;}Node* reverse(Node* head){Node* newHead=NULL; for(Node*pT=head; pT;pT=head){ head=head->next;pT->next = newHead; newHead = pT; }return newHead;}10_4 (1) #include <>struct Lnode{double data; Lnode*next;};void ShowList(Lnode* head){ for(Lnode* p=head; p; p=p->next) cout <<p->data <<endl;}void AddToEnd(Lnode* pnew, Lnode*& head) {if(!head)head=pnew; else{Lnode* p; for(p=head; p->next;p=p->next); p->next = pnew;}pnew->next=NULL;}Lnode* GetNode(){Lnode* item = new Lnode;if(item){ item->next=NULL;item->data=; }else cout<<"Nothing allocated\n"; return item;}void main(){Lnode* head=NULL; Lnode* temp; double d; cout <<"data? "; cin >>d; while(d>0&&(temp=GetNode())){ temp->data=d; AddToEnd(temp, head); cout <<"data? "; cin >>d; }ShowList(head);}(2) data?3 data? 5data? 7data? 6data? 4data? 8data? -3357648(3)#include <>struct Lnode{double data; Lnode*next;};void ShowList(Lnode* head); void AddToEnd(Lnode* pnew, Lnode*& head); Lnode* GetNode(); void DeleteList(Lnode* head); void main(){Lnode* head=NULL; Lnode* temp;double d; cout <<"data? "; cin >>d;while(d>0&&(temp=GetNode())){ temp->data=d; AddToEnd(temp, head);cout <<"data? "; cin >>d; }ShowList(head);DeleteList(head);}void ShowList(Lnode* head){ if(head){cout<<head->data<<endl;if(head->next)ShowList(head->next);n";();}11_3#ifndef DATE#define DATE #include<> class Date{ public:void Display(); void AddOneDay(); void SetDay(inty,int m,int d); protected: boolLegal(int y, int m, int d); boolIsLeapYear(int y); int year; intmonth; int day;};void Date::Display(){cout <<day <<"/" <<month <<"/" <<year <<endl;}void Date::AddOneDay(){if(Legal(year,month,day+1)) day++;else if(Legal(year,month+1,1))month++,day=1;else if(Legal(year+1,1,1))day=1,month=1,year++;}void Date::SetDay(int y, int m, int d){if(Legal(y,m,d))day=d, month=m, year=y;}bool Date::Legal(int y, int m, int d){if(y>9999||y<1||d<1||m<1||m>12)return false; int dayLimit=31;switch(m) case 4: case 6: case 9: case 11: dayLimit--; if(m==2) dayLimit = IsLeapYear(y) ? 29 : 28;return (d>dayLimit)? false : true;}bool Date::IsLeapYear(int y){return !(y%4)&&(y%100)||!(y%400);}#endif11_4 #include ""void main(){Time a;(3,32,48);();}11_5#include <> #include ""void main(){Stack sta;(10); (12); (14); cout<<() <<endl; cout <<()<<endl;}n";}n"; exit(1); } int result = head->a; Node* p = head; head = head->next; delete p; return result;}Constructing with a number: 20Display a number: 1Display a number: 20Destructing. Destructing.12_2 ,"Revere","CA","12290"); ();("Richard Voss"); ();}物质一三13_1生物有机物动物哺乳人动物类猿类猫科类...卵生动物植物非生物无机物13_2Ignore一四14_1Multi[0] is:0Multi[1] is:1 Multi[2]is:4 Multi[3] is:9Multi[4] is:16 Multi[5]is:25 Multi[6] is:36Multi[7] is:49 Multi[8]is:64Multi[9] is:81 Destroying..9Destroying..8Destroying..7Destroying..6 Destroying..5 Destroying..4 Destroying..3 Destroying..2 Destroying..1 Destroying..014_2#include <> #include <> class Vector{ public: Vector(ints=100); Vector(const Vector& v); int& Elem(int ndx); void Display(); voidSet(); ~Vector(); protected:int size; int* buffer;};Vector::Vector(int s){buffer=new int[size=s]; for(inti=0; i<size; i++)buffer[i]=i*i;}Vector::Vector(const Vector& v):size {buffer = new int[size]; for(inti=0; i<size; i++)buffer[i] = [i];}int& Vector::Elem(int ndx){if(ndx<0||ndx>=size){ cout<<"error in index" <<endl;exit(1);} return buffer[ndx];}void Vector::Display(){ for(int j=0; j<size; j++)cout <<buffer[j] <<endl;}void Vector::Set(){ for(int j=0; j<size; j++)buffer[j]=j+1;}Vector::~Vector(){ delete[]buffer; }void main(){Vector a(10); Vectorb(a); ();();}14_2.\n"; (6);cout <<"Creating boots from frisky\n"; CATboots(frisky);cout <<"frisky's age:" <<() <<endl; cout<<"boots'age:" <<() <<endl; cout <<"setting frisky to 7...\n"; (7);cout <<"frisky's age:" <<() <<endl;cout <<"boots'age:" <<() <<endl;}一五15_1 (1)Return\n"<<"1. Savings business\n"<<"2. Checking business\n\n"<<"select : "; cin >>sele;if(sele==1||sele==2) DoAccess(sele);if(sele==0) break; } Return\n"<<"1. Fetching\n"<<"2. Saving\n\n"<<"select : "; cin >>sele;if(sele==1||sele==2)if(s==1) DoSavings(sele);elseDoChecking(sele);if(sele==0) break; }Return\n"<<"1. Savings business\n"<<"2. Checking business\n"<<"3. Credit business\n\n"<<"select : "; cin >>sele;if(sele>=1 && sele <=3) DoAccess(sele); }Account* p=Account::First(); Return\n"<<"1. Fetching\n"<<"2. Saving\n\n" <<"select : ";cin >>sele; if(sele!=1 && sele!=2)continue; switch(type){ case1: DoSavings(sele); break; case 2:DoChecking(sele); break;case 3: DoCredit(sele); break;}}}void DoSavings(int access){unsigned aN; float val; if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}void DoChecking(int access){unsigned aN; floatval;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}void DoCredit(int access){unsigned aN; floatval;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}16_5#include <>#include "i:\c++答案\ch16\" #include "i:\c++答案\ch16\"#include "i:\c++答案\ch16\"#include "i:\c++答案\ch16\16_4\"#include ""void DoSavings(int access);void DoChecking(int access);void DoAccess(int type); voidDoCredit(int access);void DoFixed(int access);void main(){ int sele=1;while(sele){cout <<"\nbank management\n\n" <<"0. Return\n"<<"1. Savings business\n"<<"2. Checking business\n"<<"3. Credit business\n"<<"4. Fixed business\n\n"<<"select : ";cin >>sele;if(sele>=1 && sele <=4) DoAccess(sele);}Account* p=Account::First(); Return\n"<<"1. Fetching\n"<<"2. Saving\n\n"<<"select : "; cin >>sele;if(sele!=1 && sele!=2) continue;switch(type){case 1: DoSavings(sele); break; case 2: DoChecking(sele); break; case 3: DoCredit(sele); break; case 4: DoFixed(sele);}}}void DoSavings(int access){unsigned aN; float val; if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}void DoChecking(int access){unsigned aN; floatval;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}void DoCredit(int access){unsigned aN; floatval;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}void DoFixed(int access){unsigned aN; floatval;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n";cin >>aN >>val;}}}一七classA{ public:int GetpA(){ return pA; }void SetpA(int a){ pA=a; }private: int pA;};class B :public A{ public:void OnB(){}};class C :virtual public A, virtual public B{ public:Sc(){ /*use GetpA() and SetpA()... */ }};#include <>#include <>class Father{ public:Father(){ cout <<"father is created.\n"; }v oid DoWork(){ DriveACar(); } voidDoMannulWork(){ RepairTV(); }void DriveACar() { cout <<&typeid(*this).name()[6] <<" Drive a car.\n"; } protected:void RepairTV() { cout <<&typeid(*this).name()[6] <<" Repair a TV set.\n"; }};class Mother{ public:Mother(){ cout <<"mother is created.\n"; }void SingASong() { cout <<&typeid(*this).name()[6] <<" Sing a song.\n"; }void DoWork(){ SingASong(); } ame()[6] <<" Do mannul work.\n"; } n"; } void RepairTV(){ cout <<"boy "; Father::RepairTV(); } voidSingASong(){ cout <<"boy "; Mother::SingASong(); }void PlayPingPong() { cout <<&typeid(*this).name()[6] <<" Play pingpong.\n"; };};void main(){Father father;Mother mother;Boy boy;(); ();();(); ();();();();}n";return *this;}yuan-=( (jf< ?1:0); jf=(jf+%100;return *this;}RMB RMB::operator*(double d)const{double temp=(yuan+jf/*d; unsigned y= long(temp); unsigned j = ((temp-y)*1000+5)/10;return RMB(y,j);}RMB operator*(double d, const RMB& r){ return r * d; }void main(){RMB d1(1, 60);RMB d2(2, 50);RMB d3(0, 0); d3= d1 + d2; d1+= d3; d3 -= d2;();();}一九#include <> #include <>void main(){char str[128]; intcount=0; ifstreamfin(""); (str,sizeof(str));while(!()){ count++;(str,sizeof(str));}cout <<"the amount of lines of file is " <<count <<endl; }19_2#include <> #include<> class RMB{ public:RMB(double v =:yuan(v){ jf =(v-yuan)*100+; }operator double(){ return yuan+jf/; } voiddisplay(ostream& out){int n=1; .for(int x=yuan; x/10; x/=10) n++;if(n>5){ out <<"*******.**"; return; }double t=yuan+jf/;out <<setw(7-n) <<"" <<setiosflags(ios::fixed)<<setprecision(2) <<setw(n+3) <<t;}protected:unsigned int yuan;unsigned int jf;};ostream& operator <<(ostream& oo, RMB& d){(oo);return oo;}void main(){RMB rmb;cout <<"Initially rmb = " <<rmb <<"\n"; rmb=*rmb;cout <<"then rmb = " <<rmb <<"\n";}19_3#include <> #include <>void main(){ int n;char string[]="1 2 3 4 5 6 7 8 9"; istrstreams(string);while(!()){ s >>n;cout <<n<<" ";}cout <<endl;}19_4#include <> #include <>void main(){cout <<setiosflags(ios::uppercase); for(charch='A'; ch<='Z'; ch++){ cout <<ch <<" " <<hex<<(int)ch <<", "; if(ch=='I'||ch=='R') cout<<endl;} cout<<endl;}19_5#include <> #include <>#include <>#include <>class AddressBook{ public:AddressBook(char* n, char* p, char* h);virtual void Display(ostream& out);protected: char name[20]; char phone[10];char handp[15];};AddressBook::AddressBook(char* n, char* p, char* h) {strncpy(name, n, 19); name[19]=0; strncpy(phone, p,9); phone[9]=0;strncpy(handp, h, 14); handp[14]=0;}void AddressBook::Display(ostream& out){out <<setiosflags(ios::left) <<setw(20) <<name <<setw(10) <<phone <<setw(15) <<handp <<endl; }ostream& operator<<(ostream& out, AddressBook& a){(out);return out;}void main(){AddressBook a1("Dill Arnson", "8869533", ""); AddressBook a2("WelchShammas", "6695482", ""); AddressBook a3("Portel Braumbel", "5937221","");cout <<a1; cout<<a2; cout <<a3;}Dill Arnson 8869533Welch Shammas 6695482 Portel Braumbel 5937221二○20_1#include <> #include <>template<class T> Tmin(T& a, T& b){return a>b?b:a;}char* min(char* a, char* b){return (strcmp(a, b)>0 ? b: a);}void main(){cout <<min("Hello", "Good") <<endl; cout <<min(3,8) <<endl;}20_2 #include <>template<class T> classStack{ public: Stack();~Stack(){ delete[] stack; }void Push(T& n); T Pop(); private: static const int SIZE;T* stack; int tos;};template<class T>const int Stack<T>::SIZE = 100;template<class T> Stack<T>::Stack() :tos(0){stack = new T[SIZE];}template<class T> voidStack<T>::Push(T& n){if(tos==100) return;stack[tos++] = n;}template<class T> TStack<T>::Pop(){if(tos==0) return T(0);return stack[--tos];}void main(){Stack<int> ai; Stack<char>ac;Stack<float> af;int i[3]={3,5,7};(i[0]); (i[1]);(i[2]);char c[3]={'2','5','9'}; (c[0]);(c[1]); (c[2]);float f[2]={,}; (f[0]); (f[1]);cout <<() <<" "; cout <<()<<" "; cout <<() <<endl;cout <<() <<" "; cout <<()<<" "; cout <<() <<endl;cout <<() <<" ";cout <<() <<" " <<endl;}二一ch21_1 #include <>#include <>class String{ public: String(char*, int); i nt Length(){ return len; } class Range{ n";}n\n";}void main(){n";}#include <> classA{ public:class Error{};A(){n = new int;i nit();}private: int*n; void init(){. throw Error();}};void main(){try{ A a; } catch(A::Error&){ cout <<"error when initialize.\n";}}。

C程序设计第1-7章部分习题参考答案

C程序设计第1-7章部分习题参考答案

课后习题解答(第1-7章)第一章1_1.1_1_2判断正误:即使两个整型数据未超出该数据的取值范围,它们的和也可能会超出该数据取值范围。

正确。

1_1_4判断正误:一个C程序可以有多个函数,其中主函数必须在程序的最开头。

错误。

其它函数如果要在主函数中使用的话,必须先在主函数之前定义或者声明。

1_1_6判断正误:若有定义“float x=1.3;”,则表达式(int)x的值为1,因此可以说x中存放的值就是1。

错误。

(int)x表达式的值与x的值是不一样的,前者是对x取整后的数值,而取整运算对x 自身的值不会产生影响。

1_1_8判断正误:若有命令行“#define N 1000”,则N++是不合法的表达式。

正确。

N为符号常量,不能对符号常量进行修改。

1_1_10 C程序是由函数构成的,一个C程序必须有一个主函数。

1_1_12以下变量中不合法的是②、④、⑥,合法的是①、③、⑤、⑦、⑧。

①name ②double ③Int ④if ⑤for_1 ⑥2k ⑦a12345678 ⑧_a1_1_14下面程序段的输出结果是1,1.000000int a; double b;a=b=123/100%2;printf("%d,%f", a, b);1_1_16 a*a*a*b*b/(c-d)1_1_20假设圆柱体的底面半径为r(=2.5),高为h(=3.5),请按下面给定的步骤编写求体积(体积=底面积X高)的程序。

①定义变量r,h,v(存放体积值),注意变量的数据类型。

②给变量r,h赋值。

③计算体积,并将结果存放在v中。

④输出r,h,v的值。

程序如下:#include <stdio.h>#define PI 3.1415926main(){float r, h, v;r=2.5;h=3.5;v=PI*r*r*h;printf("r=%f, h=%f, v=%f\n", r, h, v);}1_1_22编写输出以下图形的程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C程序设计教程修订版设计思想与实现习题解答钱能Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#二#include <>void main(){ .#include <> #include <>double Cylinder(double r,double h); void main(){double radius, height;cout <<"请输入圆柱体的半径和高:\n";cin >>radius >>height;double volume = Cylinder(radius, height); cout <<"该圆柱体的体积为" <<volume <<endl;}double Cylinder(double r, double h){return r*r*M_PI*h;}三(1)sqrt(pow(sin(x),)(2)(a*x+(a+x)/(4*a))/2pow(c,x*x)/sqrt(2*M_PI) n"; break; case 1: cout <<"只能被7 整除.\n"; break; case 2: cout <<"只能被5 整除.\n"; break; case 3: cout <<"可以被5,7 整除.\n"; break; case 4: cout <<"只能被3 整除.\n"; break; case 5: cout <<"可以被3,7 整除.\n"; break; case 6: cout <<"可以被3,5 整除.\n"; break;case 7: cout <<"可以被3,5,7 整除.\n";break; } }#include <>void main(){int grade; cout<<"please input a number:\n";cin >>grade;if(grade>100||grade<0)cout <<"错误的成绩.\n";elseif(grade>=90)cout <<"A.\n";elseif(grade>=80)cout <<"B.\n";elseif(grade>=70)cout <<"C.\n";elseif(grade>=60)cout <<"D.\n";else cout<<"E.\n";}四1#include <> #include <>void main(){double sum=1, t=-1, x; int i=1; cout <<"please input a value:\n"; cin >>x; do{ t*=(-1)*x/i; sum+=t; i++; }while(fabs(t)>1e-8);cout <<"sum=" <<sum<<endl;}2#include <>#include <> voidmain(){double sum=1, t=-1, x; cout <<"please input a value:\n"; cin >>x; int i=1; while(fabs(t)>1e-8){ t*=(-1)*x/i; sum+=t; i++; } cout <<"sum=" <<sum<<endl;}3#include <>#include <> voidmain(){double sum=1, t=-1, x; cout <<"please input a value:\n"; cin >>x; for(int i=1; fabs(t)>1e-8; i++){t*=(-1)*x/i;sum+=t; } cout<<"sum=" <<sum<<endl;}#include <>void main(){long sum=0, t=1;for(int i=1; i<=15;i++){ t*=i;sum+=t; } cout<<"sum=" <<sum <<endl;}#include <>void main(){for(int i=1; i<=9; i++)for(int j=0; j<=9; j++)for(int k=0; k<=9; k++)if(i*i*i+j*j*j+k*k*k ==100*i+10*j+k)cout <<(100*i+10*j+k) <<"是水仙花数.\n"; }#include <>void main(){for(int i=1; i<1000;i++){ int sum=0;for(int j=1; j<=i/2;j++) if(i%j==0) sum+=j; if(sum==i) cout <<i<<"是完数.\n";}}#include <>void main(){float s=100,h=100;for(int i=1;i<10;i++){ s+=h;h/=2;}cout <<"共经过" <<s <<"米第10 次反弹" <<h <<"米高.\n"; }#include <> voidmain(){ intpeachs=1;for(inti=1; i<10;i++)peachs=(peachs+1)*2;cout <<"第一天共摘下" <<peachs <<"个桃子.\n"; }#include <> #include <>void main(){double x, a; cout<<"please input avalue:\n"; cin >>a; x= a/2; while(fabs((x-a/x)/2)>1e-7)x=(x+a/x)/2;cout <<a <<"的平方根是" <<x <<endl;}1#include <>void main(){for(int i=1; i<=10;i++){ for(int j=1;j<=10-i; j++)cout <<" ";for(int j=1; j<=2*i-1;j++) cout <<"#"; cout <<endl;}}2#include <>void main(){ for(int i=1; i<=8;i++){ for(int j=1;j<=i; j++) cout<<" "; for(int j=1;j<=18-i; j++)cout <<"#"; cout<<endl;}}1#include <> #include <>void main(){cout <<" *";for(int i=1; i<=9;i++) cout<<setw(4) <<i;cout <<"\n-----------------------------------------\n"; for(inti=1; i<=9; i++){ cout <<setw(3)<<i; for(int j=1; j<=9; j++) cout <<setw(4) <<i*j; cout<<endl;}}2#include <> #include <>void main(){cout <<" *";for(int i=1; i<=9;i++) cout<<setw(4) <<i;cout <<"\n-----------------------------------------\n"; for(inti=1; i<=9; i++){ cout <<setw(3)<<i; for(int j=1; j<=i; j++) cout <<setw(4) <<i*j; cout<<endl;}}3#include <>#include <> voidmain(){ cout <<"*";for(inti=1; i<=9;i++)cout<<setw(4)<<i;cout <<"\n-----------------------------------------\n"; for(int i=1; i<=9; i++){ cout <<setw(3) <<i; if(i!=1)cout <<setw(4*i-4)<<" "; for(int j=i;j<=9; j++) cout<<setw(4) <<i*j;cout <<endl;}}#include <>void main(){ int n; long a=1, b=1,c=1, temp; cout<<"please input avalue:\n"; cin >>n;for(int i=4; i<=n;i++){ temp=a+c; a=b;b=c; c=temp;} cout <<c <<endl;}五#include <>#include <>#include <> boolisprime(long n);void main(){.}.}(2) <<a[i] <<" boy has won.\n"; <<a[i] <<"boy has won.\n"; n";cout <<"please select followingoperation:\n";cout <<"\t\tstop at once! -----1\n"; cout <<"\t\tinput again.------- 2\n"; cout <<"\t\tasdefault values -- 3\n\n"; intsele=0; cin >>sele;switch(sele){ case 1: return false; case 2: sign=false; break; case 3: num=10; interval=3; return true;}(3)#include <> const size=10;void findmax(int* a, int n,int& pk); void main(){ inta[size];int n=0;cout <<"please input " <<size<<"datas:\n"; for(int i=0;i<size; i++) cin >>a[i]; findmax(a,size,n); cout <<"the maximum is " <<a[n] <<endl<<"It's index is " <<n <<endl; }void findmax(int* a,int n,int& pk){ for(int i=1;i<n; i++)if(a[i]>a[pk])pk=i;}9_2#include <> #include <>int& put(int n); .put(9)=30;cout <<get(0)<<endl; cout<<get(1) <<endl;cout <<get(9) <<endl; put(12)=1; . }int& put(int n){if(n>=10){ cerr <<"rangeerror in put value!\n";exit(1); }returnvals[n];}int get(int n){if(n>=10){ cerr <<"range error in get value!\n"; exit(1); } return vals[n];}#include <>void Swap(char*& str1, char*& str2); void main(){char* ap="hello";char* bp="how are you";cout <<ap <<endl <<bp<<endl; Swap(ap, bp);cout <<"交换以后:\n"; cout<<ap <<endl <<bp <<endl;}void Swap(char*& str1, char*& str2) { char*temp=str1;str1=str2;str2=temp;}一○#include <>structStudent{ intmathmidterm;int mathfinal;};void main(){Student s;cout <<"please input midterm andfinal math\n" <<"grade of astudent:\n"; cin >> >>;cout <<"the average grade of midterm and final math is "<< + / <<endl;10_2#include <>#include <>structNode{ charstr[20]; Node*next;};void Insert(Node*& head); void main(){Node* p;Node* x=new Node; strncpy(x->str,"hello",20);x->next = NULL; p =x; x=new Node; strncpy(x->str,"jone",20); x->next = p; p=x;x=new Node;strncpy(x->str,"good",20); x->next = p; p=x;x=new Node;strncpy(x->str,"better",20); x->next = p; p=x; cout <<"\n 插入之前:\n"; for(Node* pT=p; pT; pT=pT->next) cout <<pT->str <<"->"; cout <<"0\n"; Insert(p);cout <<"\n 插入之后:\n";for(Node* pT=p; pT; pT=pT->next) cout <<pT->str<<"->";cout <<"0\n";}void Insert(Node*& head){Node* p=new Node;strncpy(p->str,"marit",20);head->str[19]='\0';if(!head){ head =p; p->next = NULL;return; }if(!strcmp(head->str,"jone")){ p->next =head; head = p;return; } Node* sp;for(sp=head; sp->next&& strcmp(sp->next->str,"jone"); sp=sp->next); p->next = sp->next;sp->next = p;}10_3#include <> structNode{char c;Node* next;};Node* reverse(Node* head);void main(){Node x[4]; for(int i=0; i<4;i++){ x[i].c='A'+i;cout <<x[i].c <<"->";x[i].next = &x[i+1]; } cout<<"NULL" <<endl; x[3].next = NULL; Node* head = reverse(x); for(Node* pH=head; pH; pH=pH->next) cout <<pH->c <<"->"; cout <<"NULL" <<endl;}Node* reverse(Node* head){Node* newHead=NULL; for(Node* pT=head; pT; pT=head){ head=head->next; pT->next = newHead; newHead = pT; } return newHead;}10_4 (1)#include <>struct Lnode{double data;Lnode* next;};void ShowList(Lnode* head){ for(Lnode* p=head; p;p=p->next) cout <<p->data <<endl;}void AddToEnd(Lnode* pnew, Lnode*& head) {if(!head)head=pnew;else{Lnode* p; for(p=head;p->next; p=p->next); p->next = pnew;}pnew->next=NULL;}Lnode* GetNode()Lnode* item = new Lnode;if(item){ item->next=NULL; item->data=; }else cout<<"Nothing allocated\n"; return item;}void main(){Lnode* head=NULL; Lnode* temp; double d; cout <<"data "; cin >>d; while(d>0&&(temp=GetNode())){ temp->data=d; AddToEnd(temp, head); cout <<"data "; cin >>d; }ShowList(head);(2)data 3data 5data 7data 6data 4data 8data -3 357648(3)#include <>struct Lnode{double data;Lnode* next;};void ShowList(Lnode* head); void AddToEnd(Lnode* pnew, Lnode*& head); Lnode* GetNode(); void DeleteList(Lnode* head); void main() {Lnode* head=NULL;Lnode* temp; double d;cout <<"data "; cin >>d;while(d>0&&(temp=GetNode())){ temp->data=d; AddToEnd(temp, head);cout <<"data ";cin >>d; }ShowList(head);DeleteList(head);}void ShowList(Lnode* head) { if(head){cout<<head->data<<endl;if(head->next)ShowList(head->next);n";();}11_3#ifndef DATE#define DATE#include <>classDate{ public:void Display();void AddOneDay();void SetDay(int y,intm,int d); protected:bool Legal(int y, int m,int d); boolIsLeapYear(int y);int year; int month;int day;};void Date::Display(){cout <<day <<"/" <<month <<"/" <<year <<endl; }void Date::AddOneDay(){if(Legal(year,month,day+1))day++;else if(Legal(year,month+1,1))month++,day=1;else if(Legal(year+1,1,1))day=1,month=1,year++;}void Date::SetDay(int y, int m, int d) {if(Legal(y,m,d))day=d, month=m, year=y;}bool Date::Legal(int y, int m, int d){if(y>9999||y<1||d<1||m<1||m>12) return false;int dayLimit=31;switch(m) case 4: case 6: case 9: case 11: dayLimit--; if(m==2) dayLimit = IsLeapYear(y) 29 : 28;return (d>dayLimit) false : true;}bool Date::IsLeapYear(int y){return !(y%4)&&(y%100)||!(y%400);}#endif11_4 #include ""void main(){Time a;(3,32,48);();}11_5#include <> #include "" void main(){Stack sta;(10); (12);(14); cout <<()<<endl; cout <<()<<endl;}n";}n"; exit(1); } int result = head->a; Node* p = head; head = head->next; delete p; return result;}Constructing with a number: 20 Display a number:1 Display a number:20 Destructing.Destructing.12_2 ,"Revere","CA","12290"); ();("Richard Voss"); ();}物质一三13_1有机物生物动物哺乳动物人类猿类猫科类...卵生动物植物非生物无机物13_2Ignore一四14_1Multi[0] is:0Multi[1] is:1Multi[2] is:4Multi[3] is:9Multi[4] is:16Multi[5] is:25Multi[6] is:36Multi[7] is:49Multi[8] is:64Multi[9] is:81 Destroying..9 Destroying..8 Destroying..7 Destroying..6 Destroying..5 Destroying..4 Destroying..3 Destroying..2 Destroying..1 Destroying..014_2#include <> #include <> class Vector{ public: Vector(int s=100); Vector(const Vector& v); int& Elem(int ndx); void Display(); voidSet(); ~Vector();protected: intsize; int* buffer;};Vector::Vector(int s){buffer=new int[size=s];for(int i=0; i<size; i++)buffer[i]=i*i;}Vector::Vector(const Vector& v):size {buffer = newint[size]; for(inti=0; i<size; i++)buffer[i] = [i];}int& Vector::Elem(int ndx) {if(ndx<0||ndx>=size){ c out <<"error in index"<<endl;exit(1);} returnbuffer[ndx];}void Vector::Display(){ for(int j=0;j<size; j++)cout <<buffer[j] <<endl; }void Vector::Set(){ for(int j=0;j<size; j++)buffer[j]=j+1;}Vector::~Vector(){ delete[]buffer; } void main(){Vector a(10);Vector b(a);();();}14_2.\n"; (6);cout <<"Creating boots fromfrisky\n"; CAT boots(frisky);cout <<"frisky's age:" <<() <<endl; cout <<"boots'age:" <<() <<endl;cout <<"setting frisky to 7...\n"; (7);cout <<"frisky's age:" <<() <<endl; cout <<"boots'age:" <<() <<endl;}一五15_1 (1)Return\n"<<"1. Savings business\n"<<"2. Checkingbusiness\n\n"<<"select : "; cin >>sele;if(sele==1||sele==2)DoAccess(sele); if(sele==0) break; } Return\n"<<"1.Fetching\n"<<"2. Saving\n\n"<<"select : ";cin >>sele;if(sele==1||sele==2)if(s==1)DoSavings(sele);elseDoChecking(sele);if(sele==0)break; }Return\n"<<"1. Savings business\n"<<"2. Checking business\n" <<"3. Credit business\n\n"<<"select : "; cin >>sele;if(sele>=1 && sele <=3) DoAccess(sele); }Account* p=Account::First(); Return\n"<<"1. Fetching\n"<<"2. Saving\n\n" <<"select : "; cin >>sele; if(sele!=1 && sele!=2)continue; switch(type){ case 1: DoSavings(sele); break;case 2: DoChecking(sele); break;case 3: DoCredit(sele); break;}}}void DoSavings(int access){unsigned aN; float val; if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val;}}}void DoChecking(int access){unsigned aN;float val;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val;}}}void DoCredit(int access){unsigned aN;float val;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val;}}}16_5#include <>#include "i:\c++答案\ch16\" #include"i:\c++答案\ch16\"#include "i:\c++答案\ch16\"#include "i:\c++答案\ch16\16_4\"#include ""void DoSavings(intaccess); voidDoChecking(intaccess); voidDoAccess(int type);void DoCredit(intaccess);void DoFixed(int access);void main(){ intsele=1;while(sele){cout <<"\nbank management\n\n" <<"0. Return\n"<<"1. Savings business\n"<<"2. Checking business\n"<<"3. Credit business\n"<<"4. Fixed business\n\n"<<"select : ";cin >>sele;if(sele>=1 && sele <=4) DoAccess(sele); }Account* p=Account::First();Return\n"<<"1. Fetching\n"<<"2.Saving\n\n"<<"select : ";cin >>sele;if(sele!=1 && sele!=2) continue;switch(type){case 1: DoSavings(sele);break; case 2:DoChecking(sele); break;。

相关文档
最新文档