- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验1C_C
实验1 在小范围内用C++增强C的功能
实验目的
快速掌握C++语言编程的方法,在小范围内增强C++的功能, 规范编程,复习常用调式技巧。
主要内容有:
(1)输入流、输出流的使用;
(2) new和delete运算符分配内存。
(3)函数的调用及按引用传递参数;
(4)重载函数的定义及调用
(5)常用调式方法
2.实验内容
(1)编写C++风格的程序,解决百钱问题:将1元人民币兑换成1,2,5分的人民币,有多少种换法?以清晰的形式输出所有结果。
(2)用new和delete运算符动态分配内存空间的方法编写程序。从键盘输入m(n整型数组的数据,m和n值由用户输入。利用一个函数计算出所有元素之和,以及最大值和最小值。在主函数中打印出所有结果。
(3)假设我们班有50名同学,每个同学都报出自己的生日, 每个同学的生日都不相重的概率只有0.0296,如果有100个同学,不相重的概率为3.0725(10-7。相重复的概率如此之大与我们主观想象不同。编写程序,输入同学的人数n,计算出其生日不重复的概率。然后在用仿真的方法, 利用随机数产生每个同学的生日,计算出生日不重复的概率并与前面的结果进行比较。
(4) 定义重载函数sort, 可以对下列数据进行排序,
int iArr[10] ; // 数组元素值为1~100间的随机数
char cArr[8] ; // 数组元素值为随机英文字符
char* name[ ] = { “Gates”, “Kongzi”, “Obama”,”Micky”} ;
在主函数中测试函数,并输出排序后的结果。
3. 思考题:
结合上机的体会,回答下列问题.
1)C++引入了I/O流运算符,与 C语言相比,它们好处是什么?
2)与C语言的动态分配内存函数相比,C++的new 和delete运算符的优点是什么?
3)引用是C++的很重要的功能,在函数定义中,如何使用引用,会实现怎样的效果?
4)使用内联函数的好处有哪些?什么样的函数不能声明为内联函数?
5)按要求将下面代码改成能够正确运行的CPP程序,分析程序功能并回答问题
#includestdio.h
void swap1(char a, char b )
{ char t;
t=a; a=b; b=t;
}
void swap2(char *p, char *q)
{ char *t = 0;
t=p; p=q; q=t;
}
void swap3(char* p, char *q)
{ char t;
t=*p;*p=*q;*q=t;
}
void swap4(char * *p, char * *q)
{ char* t = 0;
t=*p;*p=*q;*q=t;
}
void main()
{
char c1 = A, c2=B;
char str1[]=Jackson, str2[]=Gates;
char *p1 = str1, *p2 = str2;
//分析运行结果
swap2(p1, p2);
printf(%s, %s\n, p1, p2);
swap3(p1, p2);
printf(%s, %s\n, p1, p2);
p1 = Gates;
p2 = Jackson;
//交换两个指针变量的值应如何调用函数;
printf(%s, %s\n, p1, p2); //输出Jackson,Gates
}
(1)交换两个字符变量的值应调用哪个函数;
使调用printf(c1=%c,c2 = %c\n, c1, c2); 输出c1=B,c2=A
(2)分析运行结果
swap2(p1, p2);
printf(%s, %s\n, p1, p2);
swap3(p1, p2);
printf(%s, %s\n, p1, p2);
(3)交换两个指针变量的值应如何调用函数;
p1 = Gates;
p2 = Jackson;
//swap();
printf(%s, %s\n, p1, p2); //输出Jackson,Gates
是否可以调用下列函数实现?
swap2(str1,str2);
swap3(str1,str2);
swap4(str1,str2);
文档评论(0)