程序c++作业
c程序设计作业-(5)【范本模板】

1、分析下面程序:# include 〈stdio.h>int main(){char c1,c2;c1=97;c2=98;printf("c1=%c,c2=%c\n”c1,c2);printf(”c1=%d,c2=%d\n",c1,c2);return 0;}(1)运行时会输出什么信息?为什么?(2)如果将程序第4,5行改为c1=197;c2=198;运行时会输出什么信息?为什么?(3)如果将程序第3行改为int c1,c2;运行时会输出什么信息?为什么?答:(1)程序运行不了,因为程序存在错误。
正确的程序为:#include <stdio。
h〉I822834 5932 夲.29616 73B0 现o"int main(){char c1,c2;c1=97;c2=98;printf("c1=%c,c2=%c\n”,c1,c2);printf("c1=%d,c2=%d\n”,c1,c2);return 0;}(2)如果将程序第4,5行改为c1=197;c2=198;运行时会输出:(3)如果将程序第3行改为int c1,c2;运行时会输出:因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=982、用下面的scanf函数输入数据,使a=3,b=7,x=8。
5,y=71。
82,c1=’A’,c2='a’。
29532 735C 獜21217 52E1 勡36845 8FED 迭I33719 83B7 获 a问在键盘上如何输入?#include <stdio.h>int main(){int a,b;float x,y;char c1,c2;scanf("a=%db=%d",&a,&b);scanf(”%f%e”,&a,&y);scanf(”%c%c”,&c1,&c2);return 0;}答:输入如图:输出如图:。
第6周C程序设计作业

第三章练习题之运算符和表达式一、选择题:1、以下运算符中,优先级最高的运算符是()A. =B. !=C. *(乘号)D. ()2、若有以下定义,则能使值为3的表达式是()int k=7, x=12;A. x%=(k%=5)B. x%=(k-k%5)C. x%=k-k%5D. (x%=k)-(k%=5)3、设在tc2.0中有整型变量x,y,z均为3,表达式(x++)+(y++)+(z++)的值是 ( )A. 6B. 7C. 8D. 94、有以下程序运行后的输出结果是:()main(){ char a='A',b;print("%c,",++a);printf("%c\n",b=a++);}A. B,BB. B,CC. A,BD. A,C5、有以下程序运行后的输出结果是:()main(){ char a='a';printf ("%c,",++a);printf("%c\n",a++);}A)b,b B)b,c C)a,b D)a,c6、设a=6,b=4,则表达式b*=a+3的值为:()A)3 B)18 C)27 D)367、有如下程序段,其输出结果是: ( )int a=3;float b=15.6,f=1.5;printf(“%d”,a+(int)b/2+(int)f%3);A)10 B)11 C)12 D)138、以下程序的输出结果是:()main( ){int a=3 ;printf ( "%d %d\n " , a , a++) ; }A. 4 3B. 4 4C. 5 3D. 5 49、以下程序的输出结果是()。
main( ){int a=10;printf ( "%d %d\n " , a , a++) ; }(A)11 10 (B)11 11 (C)12 20 (D)12 1110、若有定义:int a=8,b=5,c;执行语句c=a / b+0.4 ; 后c的值为()。
C语言程序设计期末作业

C语言程序设计期末作业题目:设计一模拟游戏程序,使其具有以下功能1:把名字的拼音加密后输出,让别人解密后输入。
如果输入==加密前,输出Yes,否则,输出No。
(加密规则:a x y z 不变,其他字母变为其ASCII码顺序后3位的字母.)2:输入一个号码,存入到数组中,对每个数字设置四个选项。
选中指定选项,则输出对应数字,否则输出其它的数字。
用N来统计正确个数,如果N=号码数字个数,输出YES,否则,输出NO。
程序:#include<stdio.h>#include<string.h>#include<math.h>#define MAXLINE 50#define name 50#define copy 50void encrypt (char *);int main(){char line[MAXLINE];printf(“Input the name:”);gets(line);char line1[copy];strcpy(linr1,line);encrypt(line);printf(“After been encrypted:%s\n”,line);char line2[name];printf(“What is my name:”);gets(line2);if (strcmp(line1,line2)==0)printf(“Yes!\n”);elseprintf(“No!\n”);printf(“进入下一关……\n”);int a[13],i,n=0,choice[13],b;printf("Enter b:\n");scanf(“%d”,&b);printf("Enter %d numbers:\n",b);for(i=0;i<b;i++)scanf("%d",&a[i]);printf("Please choose your answer:\n1\n2\n3\n4\n");scanf("%d",&choice[0]);switch(choice[0]){case 1:printf("%d",a[0]);n++;break;case 2:printf("1");break;case 3:printf("3");break;case 4:printf("4");break;}printf("Please choose your answer:\n1\n2\n3\n4\n");scanf("%d",&choice[1]);switch(choice[1]){case 1:printf("5");break;case 2:printf("8");break;case 3:printf("%d",a[1]);n++;break;case 4:printf("6");break;}printf("Please choose your answer:\n1\n2\n3\n4\n");scanf("%d",&choice[2]);switch(choice[2]){case 1:printf("5");break;case 2:printf("8");break;case 3:printf("%d",a[2]);n++;break;case 4:printf("6");break;}printf("Please choose your answer:\n1\n2\n3\n4\n");scanf("%d",&choice[3]);switch(choice[3]){case 1:printf("5");break;case 2:printf("8");break;case 3:printf("9");break;case 4:printf("%d",a[3]);n++;break;}printf("Please choose your answer:\n1\n2\n3\n4\n");scanf("%d",&choice[4]);switch(choice[4]){case 1:printf("5");break;case 2:printf("8");break;case 3:printf("9");break;case 4:printf("%d",a[4]);n++;break;}printf("Please choose your answer:\n1\n2\n3\n4\n");scanf("%d",&choice[5]);switch(choice[5]){case 1:printf("%d",a[5]);n++;break;case 2:printf("8");break;case 3:printf("9");break;case 4:printf("5");break;}printf("Please choose your answer:\n1\n2\n3\n4\n");scanf("%d",&choice[6]);switch(choice[6]){case 1:printf("%d",a[6]);n++;break;case 2:printf("8");break;case 3:printf("9");break;case 4:printf("5");break;}printf("Please choose your answer:\n1\n2\n3\n4\n");scanf("%d",&choice[7]);switch(choice[7]){case 1:printf("%d",a[7]);n++;break;case 2:printf("8");break;case 3:printf("9");break;case 4:printf("5");break;}printf("Please choose your answer:\n1\n2\n3\n4\n");scanf("%d",&choice[8]);switch(choice[8]){case 1:printf("4");break;case 3:printf("9");break;case 2:printf("8");break;case 4:printf("%d",a[8]);n++;break;}printf("Please choose your answer:\n1\n2\n3\n4\n");scanf("%d",&choice[9]);switch(choice[9]){case 1:printf("4");break;case 2:printf("9");break;case 3:printf("8");break;case 4:printf("%d",a[9]);n++;break;}printf("Please choose your answer:\n1\n2\n3\n4\n");scanf("%d",&choice[10]);switch(choice[10]){case 1:printf("4");break;case 3:printf("%d",a[10]);n++;break;case 2:printf("8");break;case 4:printf("0");break;}if(n==b)printf("Yes!");elseprintf("No!");return 0;}void encrypt (char *s){for(;*s!=’\0’;*s++)if(*s==’a’) *s=’a’;elseif(*s==’z’) *s=’z’;elseif(*s==’x’) *s=’x’;elseif(*s==’y’) *s=’y’;else*s=*s+3;}Game over……What to try it again?......Come on!!!。
c程序设计作业(5)[修改版]
![c程序设计作业(5)[修改版]](https://img.taocdn.com/s3/m/738d45ed650e52ea541898c4.png)
第一篇:c程序设计作业(5)1、分析下面程序:# include int main() { char c1,c2;c1=97;c2=98;printf("c1=%c,c2=%c\n"c1,c2);printf("c1=%d,c2=%d\n",c1,c2);return 0; } (1)运行时会输出什么信息?为什么?(2)如果将程序第4,5行改为c1=197; c2=198; 运行时会输出什么信息?为什么?(3)如果将程序第3行改为int c1,c2; 运行时会输出什么信息?为什么?答:(1)程序运行不了,因为程序存在错误。
正确的程序为:#include int main() {char c1,c2;c1=97;c2=98;printf("c1=%c,c2=%c\n",c1,c2);printf("c1=%d,c2=%d\n",c1,c2);return 0; }(2)如果将程序第4,5行改为c1=197; c2=198;运行时会输出:(3)如果将程序第3行改为int c1,c2; 运行时会输出:因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=982、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
问在键盘上如何输入?#include int main() {int a,b;float x,y;char c1,c2;scanf("a=%db=%d",&a,&b);scanf("%f%e",&a,&y);scanf("%c%c",&c1,&c2);return 0; } 答:输入如图:输出如图:第二篇:C程序设计课程作业(4分)C语言是解释性语言纠错得分:0知识点:C语言概述收起解析答案错误解析C语言程序设计/C语言概述(4分)C语言程序中,一个文件中的函数可以引用另一个文件中的函数和变量纠错知识点:文件收起解析答案正确解析C语言程序设计/文件(4分)下面是对s的初始化,其中不正确的是( ) A. char s[5]={'abc'} B. char s[5]={'a','b','c'} C. char s[5]=''D. char s[5]='abcde'纠错得分:0知识点:数组收起解析答案D解析C语言程序设计/数组/字符数组初始化(4分)函数ftell的作用是( ) A. 取得当前文件指针的位置,该位置为相对于文件开头的位移量表示B. 取得当前文件指针的位置,该位置为相对于文件末尾的位移量表示C. 出错时返回值为0D. 以上叙述都不正确纠错得分:0知识点:文件收起解析答案A解析C语言程序设计/文件/文件的定位(4分)表达式a A. &,纠错知识点:位运算收起解析答案D解析C语言程序设计/位运算/位运算符优先级(4分)若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( ) A. scanf('%d%lx,%le',&x,&y,&z) B. scanf('%2d*%d%lf',&x,&y,&z) C. scanf('%x%*d%o',&x,&y)D. scanf('%x%o%6.2f',&x,&y,&z)纠错得分:0知识点:顺序程序设计收起解析答案D解析C语言程序设计/顺序程序设计/整型和实型数据的格式输入(4分)写出下面程序的输出结果( )main(){intx;x=-3+4*5-6;printf('%d',x);x=3+4%5-6;printf('%d',x);x=-3*4%6/5;printf('%d',x);x=(7+6)%5/2;printf('%d',x);}A. 11 1 0 1B. 11 -3 2 1C. 12 -3 2 1D. 11 1 2 1纠错得分:0知识点:顺序程序设计收起解析答案A解析C语言程序设计/顺序程序设计/整型变量的输出格式综合(4分)C语言中while和do while循环的主要区别是( ) A. do-while的循环至少无条件执行一次B. while循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转入到循环体内D. do-while的循环体不能是复合语句纠错得分:0知识点:循环程序设计收起解析答案A解析C语言程序设计/循环程序设计/while语句与do-while语句(4分)C语言规定,函数返回值的类型是由( )所决定。
经典c程序100例

经典c程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main( ){int i,j,k;printf("\n”);for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j〈5;j++)for (k=1;k〈5;k++){if (i!=k&&i!=j&&j!=k)/*确保i、j、k三位互不相同*/printf(”%d,%d,%d\n”,i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7。
5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2。
程序源代码:main( ){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf(”%ld",&i);bonus1=100000*0。
1;bonus2=bonus1+100000*0。
75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0。
3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0。
《C程序设计》作业内容

《C程序设计》作业内容C程序设计作业内容作为一门计算机科学基础课程,C程序设计在培养学生编程思维和解决问题能力方面具有重要作用。
下面将介绍C程序设计作业的一般内容,包括实验项目、算法设计和编码实现等。
一、实验项目1. 实验一:C语言基础本实验要求学生掌握C语言的基础语法和编程风格,包括变量定义、基本数据类型、运算符、选择结构和循环结构等。
学生需要编写简单的程序来实现特定的功能,例如计算两个数的和、判断一个数的正负等。
2. 实验二:数组和字符串在这个实验中,学生将学习如何使用数组和字符串,包括数组的定义、初始化、遍历和排序,以及字符串的输入、输出和操作。
学生需要编写程序来实现数组元素的查找和统计,以及字符串的比较和拼接等功能。
3. 实验三:函数和指针函数和指针是C语言中非常重要的概念,学生需要理解函数的定义和调用,以及指针的声明和使用。
本实验要求学生编写函数来实现不同的功能,并熟悉指针的传递和引用,包括函数参数的传递和返回值的处理。
二、算法设计除了实验项目,C程序设计作业还涉及算法设计,要求学生根据具体问题进行思考和分析,设计相应的算法,并使用C语言编码实现。
以下是几个常见的算法设计作业:1. 排序算法学生需要实现不同的排序算法,如冒泡排序、选择排序、插入排序和快速排序等。
通过编写这些算法的程序,学生可以理解排序算法的原理和操作,并分析其时间复杂度和空间复杂度。
2. 查找算法学生需要实现不同的查找算法,如线性查找、二分查找和哈希查找等。
通过编写这些算法的程序,学生可以实践不同查找算法的思想和技巧,并比较它们的效率和适用场景。
3. 数据结构学生需要实现一些基本的数据结构,如链表、栈、队列和二叉树等。
通过编写这些数据结构的程序,学生可以加深对数据结构的理解,掌握其基本操作和应用。
三、编码实现在完成算法设计后,学生需要使用C语言编码实现算法。
编码实现不仅要求学生正确地翻译算法思想为具体的代码,还需要注意代码的可读性和健壮性。
c程序设计课程设计作业
c程序设计课程设计作业一、教学目标本课程的教学目标是使学生掌握C程序设计的基本概念、语法和编程技巧,培养学生具备基本的程序设计能力和问题解决能力。
具体包括以下几个方面:1.知识目标:学生需要掌握C程序设计的基本语法、数据类型、运算符、控制结构、函数、数组、指针等基本概念,了解结构体、共用体、位字段等数据结构,以及文件操作、调试技巧等编程实践知识。
2.技能目标:学生需要能够运用C语言编写简单的程序,解决实际问题,具备基本的程序调试和优化能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生独立思考、创新意识和团队合作能力。
二、教学内容根据教学目标,本课程的教学内容主要包括以下几个部分:1.C语言基本语法和数据类型:变量、常量、数据类型、运算符、表达式等。
2.控制结构:顺序结构、选择结构、循环结构等。
3.函数:函数的定义和声明、参数传递、返回值、局部变量和全局变量等。
4.数组和指针:一维数组、多维数组、字符串、指针的概念和应用等。
5.数据结构:结构体、共用体、位字段、链表、栈和队列等。
6.文件操作:文件的打开、关闭、读写、定位等操作。
7.编程实践:调试技巧、代码优化、算法分析等。
三、教学方法为了达到教学目标,本课程将采用以下几种教学方法:1.讲授法:通过讲解和演示,使学生掌握C语言的基本概念和语法。
2.案例分析法:通过分析实际案例,引导学生运用C语言解决实际问题。
3.实验法:安排上机实验,让学生动手编写程序,培养编程能力和实践能力。
4.讨论法:学生进行小组讨论,促进学生之间的交流与合作,提高学生的创新意识和团队合作能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《C程序设计语言》(K&R)、《C Primer Plus》等。
2.参考书:《C专家编程》、《C陷阱与缺陷》等。
3.多媒体资料:教学PPT、视频教程、在线课程等。
4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)、网络资源等。
C语言程序设计作业
《C 语言程序设计》作业作业一1.判断下列标识符是否合法?f(x) $a21 a12 A21 21a sum2 while _fun C_program tan@2.模仿教材p4的例1.1编写程序并上机调试:计算i ×j 的积,在屏幕上显示结果。
作业二1. 指出下列哪些为C 语言正确的整型(int)常量、实型(float)常量、字符型(char)常量? 0 67326 -325 128 0128 03456 …b‟ …ab‟ …勤‟ …\104‟ …\108‟ …\n‟ …8‟ 1.234×103 0.0 2. 1.2e-3 1.2 e0.5 1.2e 5e22.P119: 2.7 (1), (2) , (4), (5),(9),(11),(12)3.将下列式子写成C 的表达式。
Y=sin2x+a ab ab ba 2211+++ 4.设m 为整数,用逻辑表达式表示:能同时被3与7整除或者被5除余2且小于100的整数。
作业三1.华氏温度通过公式C=95 (f-32) 转换成摄氏温度。
试编程并上机调试运行:从键盘上输入华氏温度,利用公式计算后输出摄氏温度(要求:保留一位小数;记录调试过程中遇到的问题及解决方法)。
2.分别用分if 语句与switch 语句编程求下列函数的值。
|x| x <0x 0 ≤x<10Y= 3-51x 10≤x<20 3x-10 20≤x<400 x >403. P123: 3.154. 输入一个含括号的算术表达式 如3(a+b )/3) ,判断括号的匹配情况,并输出相应信息:匹配、缺(、少)等。
5.要将100圆大钞的换成1圆、5圆、10圆小钞,若每种钞票数目大于0,共有多少种换法?并输出各种换法(每行显示4组)。
6.在横线上填写合适语句,完善程序,使之完成如下功能:从键盘上输入一个不多于7位的正整数,统计其中2的个数,并求各位数字中的最小数。
C程序设计作业(赵教材)
2.12写出以下表达式的求值结果。
设int a=3,b=-2,c=4,d=0;(6) 012<<3+1 (15) a&b|c^++d>>1 (19) 10&6|5&&a3.10 以下程序的功能是输入10个字符,如果输入的是数字字符0,则输出字符*;如果是数字字符1~9,则原样输出;如果输入的是其他字符侧不输出,但要求用变量s累加计算它们的ASCII码平方和。
全部字符输入结束后,输出s的值。
有的同学写了一个程序,编译完全正确,但无法得到所要求的结果,请帮助这位同学改正程序中的问题。
#include<stdio.h>main(){ char c,i,s;for(i=1;i<10;i++);{ c=getchar();if(…1‟<=c<=…9‟)putchar(c);if(c=…0‟)putchar(…*‟);else s=c*c;printf(“\ns=%d\n”,s);}}3.11 编写一个程序,使它能够将用户输入的4个整数按大小次序排列。
main(){ int a,b,c,d,t;scanf(“%d, %d, %d, %d”,&a, &b, &c, &d);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(a<d){t=a;a=d;d=t;}if(b<c){t=b;b=c;c=t;}if(b<d){t=b;b=d;d=t;}if(c<d){t=c;c=d;d=t;}printf(“%d, %d, %d, %d”, a, b, c, d);}3.12 企业放发的资金根据利润提成。
设企业的利润为I,提成标准如下:I<=10万元时,提成10%;10万元<I≤20万元时,低于10万元部分仍按10%提成,高于10万元部分按7.5%提成;20万元< I≤40万元时,低于20万元部分按前面方法提成,高于20万元部分按5%提成;40万元< I≤60万元时,低于40万元部分按前面方法提成,高于40万元部分按3%提成;60万元< I≤100万元时,低于60万元部分按前面方法提成,高于60万元部分按1.5%提成;100万元<I时,低于100万元部分按前面方法提成,高于100万元部分按1%提成。
程序设计(C)作业三(有答案)
程序设计(C)作业三(有答案)第3次作业答案(红字为答案)1. 下列叙述中错误的是()A. 对于double 类型数组,不可直接用数组名对数组进行整体输入或输出B. 数组名代表数组所占存储区的首地址,其值不可变C. 在程序执行过程中,当数组元素下标超出定义的下标范围时,系统将给出“下标”越界的错误提示D. 可以通过赋初值的方式确定数组元素个数提示:请从数组下标的合法取值范围来考虑。
2. 已有定义char a[] = “xyz”,b[]={ ‘x’, ‘y’, ‘z’} ,以下叙述正确的是()A. 数组a 和 b 的长度相同B. 数组 a 的长度小于数组 b 的长度C. 数组a 的长度大于数组 b 的长度D. 上述说法均不正确提示:此题考察字符数组长度和字符串长度之间的关系。
3. 以下能正确定义一维数组的选项是()A. int num[];B. #define N 100 int num[N]C. int num[0..100];D. int N = 100; int num[N];提示:此题考察一维数组的维数界定问题。
4. 下列程序的输出结果是()#includevoid main(){char a[] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f ’, ‘g’, ‘h’, ‘\0 ’}; int i, j;i = sizeof(a); j = strlen(a);printf( “%d, %d\n”, i,j); }A. 9,9B. 8, 9C. 1, 8D. 9,8提示:此题考察字符数组长度和字符串长度之间的关系。
5. 以下不能正确定义二维数组的选项是()A. int a[2][] = {{1, 2}, {3, 4}};B. int a[][2] = {1, 2, 3, 4};C. int a[2][2] = {{1}, {2}};D. int a[2][2] = {{1}, 2, 3};提示:此题考察二维数组初始化的规定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4-9源程序:#include <iostream.h>class Rectangle{public:Rectangle (int top, int left, int bottom, int right);~Rectangle () {}int GetTop() const { return itsTop; }int GetLeft() const { return itsLeft; }int GetBottom() const { return itsBottom; }int GetRight() const { return itsRight; }void SetTop(int top) { itsTop = top; }void SetLeft (int left) { itsLeft = left; }void SetBottom (int bottom) { itsBottom = bottom; }void SetRight (int right) { itsRight = right; }int GetArea() const;private:int itsTop;int itsLeft;int itsBottom;int itsRight;};Rectangle::Rectangle(int top, int left, int bottom, int right) {itsTop = top;itsLeft = left;itsBottom = bottom;itsRight = right;}int Rectangle::GetArea() const{int Width = itsRight-itsLeft;int Height = itsTop - itsBottom;return (Width * Height);}int main(){Rectangle MyRectangle (100, 20, 50, 80 );int Area = MyRectangle.GetArea();cout << "Area: " << Area << "\n";return 0;}程序运行输出:Area: 3000Upper Left X Coordinate: 204-11#include <iostream.h>class Rectangle{public:Rectangle(float len, float width){Length = len;Width = width;}~Rectangle(){};float GetArea() { return Length * Width; }float GetLength() { return Length; }float GetWidth() { return Width; }private:float Length;float Width;};void main(){float length, width;cout << "请输入矩形的长度:";cin >> length;cout << "请输入矩形的宽度:";cin >> width;Rectangle r(length, width);cout << "长为" << length << "宽为" << width << "的矩形的面积为:" << r.GetArea () << endl;}程序运行输出:请输入矩形的长度:5请输入矩形的宽度:4长为5宽为4的矩形的面积为:204-12#include <iostream.h>class datatype{enum{character,integer,floating_point} vartype;{char c;int i;float f;};public:datatype(char ch) {vartype = character;c = ch;}datatype(int ii) {vartype = integer;i = ii;}datatype(float ff) {vartype = floating_point;f = ff;}void print();};void datatype::print() {switch (vartype) {case character:cout << "字符型: " << c << endl; break;case integer:cout << "整型: " << i << endl; break;case floating_point:cout << "浮点型: " << f << endl; break;}}void main() {datatype A('c'), B(12), C(1.44F);A.print();B.print();C.print();}程序运行输出:字符型: c整型: 12浮点型: 1.44#include <iostream.h>class Circle{public:Circle(float radius){ Radius = radius;}~Circle(){}float GetArea() { return 3.14 * Radius * Radius; }private:float Radius;};void main(){float radius;cout << "请输入圆的半径:";cin >> radius;Circle p(radius);cout << "半径为" << radius << "的圆的面积为:" << p.GetArea () << endl;}程序运行输出:请输入圆的半径:5半径为5的圆的面积为:78.54-14#include <iostream.h>class Tree {int ages;public:Tree(int n=0);~Tree();void grow(int years);void age();};Tree::Tree(int n) {ages = n;}Tree::~Tree() {age();}void Tree::grow(int years) {ages += years;}void Tree::age() {cout << "这棵树的年龄为" << ages << endl;}void main(){Tree t(12);t.age();t.grow(4);}程序运行输出:这棵树的年龄为12这棵树的年龄为165-4 假设有两个无关系的类Engine和Fuel,使用时,怎样允许Fuel成员访问Engine中的私有和保护的成员?解:源程序:class fuel;class engine{friend class fuel;private;int powerlevel;public;engine(){ powerLevel = 0;}void engine_fn(fuel &f);};class fuel{friend class engine;private;int fuelLevel;public:fuel(){ fuelLevel = 0;}void fuel_fn( engine &e);};5-7 定义一个Cat类,拥有静态数据成员HowManyCats,记录Cat的个体数目;静态成员函数GetHowMany(),存取HowManyCats。
设计程序测试这个类,体会静态数据成员和静态成员函数的用法。
源程序:#include <iostream.h>class Cat{public:Cat(int age):itsAge(age){HowManyCats++; }virtual ~Cat() { HowManyCats--; }virtual int GetAge() { return itsAge; }virtual void SetAge(int age) { itsAge = age; }static int GetHowMany() { return HowManyCats; }private:int itsAge;static int HowManyCats;};int Cat::HowManyCats = 0;void TelepathicFunction();int main(){const int MaxCats = 5;Cat *CatHouse[MaxCats]; int i;for (i = 0; i<MaxCats; i++){CatHouse[i] = new Cat(i);TelepathicFunction();}for ( i = 0; i<MaxCats; i++){delete CatHouse[i];TelepathicFunction();}return 0;}void TelepathicFunction(){cout << "There are " << Cat::GetHowMany() << " cats alive!\n"; }程序运行输出:There are 1 cats alive!There are 2 cats alive!There are 3 cats alive!There are 4 cats alive!There are 5 cats alive!There are 4 cats alive!There are 3 cats alive!There are 2 cats alive!There are 1 cats alive!There are 0 cats alive!5-14源程序:#include <iostream.h>class Boat;class Carprivate:int weight;public:Car(int j){weight = j;}friend int totalWeight(Car &aCar, Boat &aBoat); };class Boat{private:int weight;public:Boat(int j){weight = j;}friend int totalWeight(Car &aCar, Boat &aBoat); };int totalWeight(Car &aCar, Boat &aBoat){return aCar.weight + aBoat.weight;}void main(){Car c1(4);Boat b1(5);cout << totalWeight(c1, b1) << endl;}程序运行输出:96-20#include <iostream.h>class SimpleCircle{public:SimpleCircle();SimpleCircle(int);SimpleCircle(const SimpleCircle &);~SimpleCircle() {}void SetRadius(int);int GetRadius()const;private:int *itsRadius;};SimpleCircle::SimpleCircle(){itsRadius = new int(5);SimpleCircle::SimpleCircle(int radius){itsRadius = new int(radius);}SimpleCircle::SimpleCircle(const SimpleCircle & rhs){int val = rhs.GetRadius();itsRadius = new int(val);}int SimpleCircle::GetRadius() const{return *itsRadius;}int main(){SimpleCircle CircleOne, CircleTwo(9);cout << "CircleOne: " << CircleOne.GetRadius() << endl;cout << "CircleTwo: " << CircleTwo.GetRadius() << endl;return 0;}程序运行输出:CircleOne: 5CircleTwo: 96-21#include <iostream.h>#include <stdio.h>int count(char *str){int i,num=0;for (i=0; str[i]; i++){if ( (str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z') ) num++;}return num;}void main(){char text[100];cout << "输入一个英语句子:" << endl;gets(text);cout << "这个句子里有" << count(text) << "个字母。