1、C 程序设计案例教程习题答案C+程序设计案例教程部分习题答案习题一1运行结果:enter i j:9 8 (从键盘输入9和8)i=9,j=8i+j=17i-j=1i*j=722运行结果:56 34(从键盘输入)max(56,34)=563错误:(1)没有包含头文件;(2)main()函数没有返回值4错误:(1)缺少语句:using namespace std; (2) main()函数没有返回值;(3)变量a没有声明;(4)语句:coutb=bendl;严格来说应该为:coutb=bendl;5错误:(1)缺少语句:using namespace std; (2) main()函数应该包含re
2、turn语句;(3)COUT不应该大写;(4)变量j没有初始化6运行结果:您好!在哪儿呢?在沈阳.一会儿见!习题二一、程序阅读1运行结果:Enter a b:15 8(从键盘输入15和8)d=-72运行结果:A=8CH+2=mD-5.8=2.73运行结果:0,11,0注意此题书中有错误:将最后一行语句改为:return 0;4运行结果:325运行结果:3,746运行结果:13898$7运行结果:9878运行结果:79111315ok!9运行结果:7531-110.运行结果: 10二、编程题1程序如下: #includeusing namespace std;int main() double
3、a,b,c,d,e,sum,avg; cinabcde; sum=a+b+c+d+e; avg=sum/5; coutsum=sumendl; coutavg=avgendl; return 0;2程序如下:#includeusing namespace std;int main() int a,b,x,y; cinab; x=(a+b)*(a+b); y=a*a+2*a*b+b*b; if (x=y) coutyesendl; else coutnoendl; return 0;3程序如下:#include using namespace std;int main() char a100,
4、*p; couta; cout= a; -p) putchar(*p); coutendl; return 0;4程序如下:#includeusing namespace std;int main() int n,sum=0; for (n=1;n=100;n=n+2) sum=sum+n; coutsum=sumendl; return 0;5程序如下:#includeusing namespace std;int main() int a,b,num1,num2,temp; coutplease input two numbersnum1num2; if (num1) temp=num1;
5、 num1=num2; num2=temp; a=num1; b=num2; while (b!=0) temp=a%b; a=b; b=temp; cout最大公约数=aendl; cout最小公倍数=num1*num2/aendl; return 0;6程序如下:#include using namespace std;int main() int n,a; int result = 0; coutn; for (int i = n; i = 1; i-) a=0; for (int j=1;j=i;j+) a+=j; result += a; cout最终结果为: resultendl;
6、 return 0; 7程序如下:#includeusing namespace std;int main() int n,t,number=15; double a=2,b=1,s=0; for (n=1;n=number;n+) s=s+a/b; t=a; a=a+b; b=t; coutsum is:sendl; return 0;8程序如下:#include using namespace std;int main() double e=1; double jc=1; int i=1; while(1/jc=1e-6) e=e+1/jc; i+; jc=jc*i; coute=eend
7、l; return 0; 习题三一、填空题1x2p=new int(10)310、194new、delete5b9、b1二、选择题1D 2. D 3. B 4. B 5. B 6A三、程序阅读1运行结果: 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 12运行结果:intone:5 rsomeref:5 intone:7 rsomeref:73运行结果: BCDEFGHIJKLMNOPQRST DEFGHIJKLMNOPQRST T T R RST P PQRST N NOPQRST4运行结果:
8、9 19 19 3 0 1 2 3 15 16 17 18 19 19 18 17 16 155运行结果: 2四、编程题1程序如下:#include using namespace std;int main() int array10; int i,max,min; for(i=0;iarrayi; max=array0;min=array0; for(i=1;imax) max=arrayi; if(arrayimin) min=arrayi; coutThe largest number is maxendl; coutThe smallest number is minendl; ret
9、urn 0;2程序如下:#include using namespace std; int main() int a35=0; int b54=0;int c34=0;int i,j,k; cout请输入一个3行5列的矩阵:endl; for(i=0;i3;i+) for(j=0;jaij; cout请输入一个5行4列的矩阵:endl; for(i=0;i5;i+) for(j=0;jbij;for(i=0;i3;i+)for(j=0;j4;j+)cij=0;for(k=0;k5;k+)cij+=ajk*bkj;cout矩阵的乘积:endl; for(i=0;i3;i+) for(j=0;j4
10、;j+) coutcij ; coutendl; return 0; 3程序如下:#include using namespace std;void alter(float &x,float &y) float m,n; m=x;n=y; x=m*n; y=m+n;int main() float a,b; coutPlease input two numbers:ab; alter(a,b); coutAfter changed:endl; couta,bendl; return 0;习题四一、填空题1参数传递、执行函数体、返回调用位置2常量、const3Fun(5,100)4inline5
11、程序域、文件域、函数域和块域二、选择题1. A 2. D 3. C 4. C 5. D 6. A 7. A 8. A 9.D 10.A三、程序阅读1运行结果: a=3 b=22运行结果: x=50,y=303运行结果: b=16.0988 input a=2 (从键盘输入2) F(a)=-0.14运行结果: Sum of 4powers of integers from 1 to 6=22755运行结果: 6,6,66运行结果: 107运行结果: In Mainx=5,y=1,n=1 In Funx=6,y=14,n=4 In Mainx=5,y=1,n=4四、编程题1程序如下:#includ
12、eusing namespace std;int main() int idec; int ibase; char strdr20, t; int i, idr, p=0; cout请输入一个进制数及要转换的进制数:idecibase; while(idec!=0) idr=idec % ibase; if(idr=10) strdrp+=idr-10+65; else strdrp+=idr+48; idec/=ibase; for(i=0; ip/2; i+) t=strdri; strdri=strdrp-i-1; strdrp-i-1=t; strdrp=0; coutstrdrend
13、l; return 0;2程序如下:#includeusing namespace std;int main() int num,i=0,temp,flag=0; cinnum; while(1) temp=num%10; if(temp%2=0) flag+;break; num/=10; if(num=0) break; if(flag) coutNOendl; else coutYESendl; return 0;3程序如下:#include #include using namespace std;int main() int n,i; double sum=0; coutPlease
14、 input a number(1,2,3,4 or 5):n; for(i=1;i=20;i+) sum+=pow(n,i); coutsumendl; return 0;4程序如下:#include using namespace std;int main() int num,digit; coutnum; cout整数 num 的逆序数为: ; do digit=num%10; coutdigit; num/=10; while(num); coutendl; return 0;5程序如下:#includeusing namespace std;#include int main()co
15、nst int N=5;char aN100=0;char t100=0;int i,j;for(i=0;iai;for(i=0;ii;j-)if(strcmp(aj,aj-1)0)strcpy(t,aj);strcpy(aj,aj-1);strcpy(aj-1,t);for(i=0;iN;i+)coutaiendl;return 0;习题五一、填空题1数据成员、成员函数2private、protected、public3private、public4自动、创建并初始化对象5构造函数6析构函数7友元函数8堆对象9this、正在被成员函数操作的对象1010、10二、选择题1D 2. C 3. D
16、 4. A 5.C 6. C 7. C 8. C 9A 10. C 11. B 12. B 13. C 14. A 15. D三、程序阅读1有四处错误: (1)int i=0;数据成员在类的定义中不能直接初始化 (2)void Sample();构造函数没有返回值类型; (3)Sample(int value);析构函数无参数; (4)析构函数不能重载。2有四处错误: (1)Sample(int a=0,b=1);参数b没有说明类型; (2)disp();没有给出返回值类型; (3)void Sample(int a);析构函数不能有返回值类型,也不能有参数; (4)Sample:Sample
17、(int a=0,int b=1)默认值重复定义,只需在函数说明中给出即可。3有二处错误: (1)Sample(int a)X=a;常数据成员只能用初始化列表的形式进行初始化; (2)a.Print();常对象只能调用常成员函数。4无错误,运行结果如下: Const:X=10 X=205运行结果: 2,5 10,206运行结果: 22347运行结果: 38运行结果: E2-C16-四、编程题1程序如下:#include using namespace std;class Datepublic: void SetDate(int y,int m,int d) year=y; month=m; d
18、ay=d; int AddDay() return day+; void Display() coutday/month/yearendl; private: int year,month,day;int main() Date today,tomorrow; today.SetDate(2010,7,20); today.AddDay(); tomorrow=today; tomorrow.Display(); return 0;2程序如下:#include using namespace std;class Rectanglepublic: Rectangle(double a=1,dou
19、ble b=1) length=a; width=b; void SetValue(double m,double n) length=m; width=n; double Perimeter() return 2*(length+width); double Area() return length*width; private: double length,width;int main() Rectangle r; r.SetValue(10,20); coutr.Perimeter()endl; coutr.Area()endl; return 0;3程序如下:#include usin
20、g namespace std;class Timepublic: Time(); Time(int h,int m); void SetTime(int h1,int m1) hour=h1; minute=m1; friend void GetTime12(Time & t); friend void GetTime24(Time & t);private: int hour,minute;Time:Time() hour=0; minute=0;Time:Time(int h,int m) hour=h; minute=m;void GetTime12(Time & t) bool pm
21、; int hours; if(t.hour12) hours=t.hour-12; pm=true; else hours=t.hour; pm=false; if (pm) coutTime is hours:t.minutePMendl; else coutTime is hours:t.minuteAMendl;void GetTime24(Time & t) coutTime is t.hour:t.minuteendl;int main() Time t1,t2; t2.SetTime(16,20); GetTime12(t1); GetTime24(t1); GetTime12(
22、t2); GetTime24(t2); return 0;4程序如下:#include #include using namespace std;class Studentpublic: Student(); void GetName(string n); void GetGender(char g); void GetAge(int a); void Display() coutName:nameendl; coutGender:genderendl; coutAge:ageendl; private: string name; char gender; int age;void Stude
23、nt:GetName(string n) name=n;void Student:GetGender(char g) gender=g;void Student:GetAge(int a) age=a;int main() Student s; string sname; char sgender; int sage; coutPlease input name:sname; s.GetName(sname); coutPlease input gender:sgender; s.GetGender(sgender); coutPlease input age:sage; s.GetAge(s
24、age); s.Display(); return 0;5程序如下:#include using namespace std;class Studentpublic: Student() score=0; Student(double s) score=s; totalscore+=score; count+; static double TotalSum() return totalscore; static double Average() return totalscore/count; private: double score; static double totalscore; stat
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1