1 / 11
文档名称:

C C 语言程序设计笔试面试题19.doc

格式:doc   大小:73KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C C 语言程序设计笔试面试题19.doc

上传人:小雄 2021/10/7 文件大小:73 KB

下载得到文件列表

C C 语言程序设计笔试面试题19.doc

文档介绍

文档介绍:5、 设计一个算法判断一个字符串是否是回文,并写出代码。
"A man a plan a canal panama"是回文。
6、 定义函数,给出三个参数,从字符串inputstring中的下标indexOfChar开始返回 noOfChar个字符。要求找出尽
可能多的错误情形
7、 编一段代码,求两个int的最大公约数
8、 给出一段C+ +代码(关于构建器和虚析构器的调用问题),要求(1)其输出,(2)
说明 virtual destructor
的作用(role)
9、 英文阅读理解。
写一个程序,要求功能:求出用1, 2, 5这三个数不同个数组合的和为100的组合个数。 如:100个1是一个组合,5个1加19个5是一个组合。。。。请用C+ +语言写。 答案:最容易想到的算法是:
设x是1的个数,y是2的个数,z是5的个数,number是组合数注意到0< = x< = 1 00, 0v = yv = 50, 0v = z=20,所以可以编
程为:
number= 0;
for (x= 0; x< = 1 00; x+ +)
for (y= 0; y< = 50; y+ +)
for (z= 0; z< = 20; z+ +)
if ((x+2*y+5*z) = = 100)
number+ + ;
cout< v number< < endl;
上面这个程序一共要循环100*50*20次,效率实在是太低了事实上,这个题目是一道明 显的数学问题,而不是单纯
的编程问题。我的解法如下:
因为 x+ 2y+ 5z= 1 00
所以 x+2y=100-5z,且zv = 20 x< = 100 y< = 50
所以(x+2y)v = 100,且(x+ 5z)是偶数
对z作循环,求x的可能值如下:
z= 0, x= 1 00, 98, 96, ... 0
z= 1, x= 95, 93, ..., 1
z= 2, x= 90, 88, ..., 0
z= 3, x= 85, 83, ..., 1
z= 4, x= 80, 78, ..., 0 z= 1 9, x= 5, 3, 1 z= 20, x= 0
因此,组合总数为100以内的偶数+95以内的奇数+90以内的偶数+...+ 5以内的奇数+ 1, 即为:
(51 + 48)+(46+43)+(41 + 38)+(36+33)+(31 + 28)+(26+23) + (21 + 18)+(16+ 13 )+(11 + 8)+(6+3)+1
某个偶数m以内的偶数个数(包括0)可以表不为m/2+1 = (m + 2)/2
某个奇数m以内的奇数个数也可以表示为(m + 2)/2
所以,求总的组合次数可以编程为:
number= 0;
for (int m= 0;m< = 1 00;m + = 5)
(
number+ = (m + 2)/2;
}
cout< < number< < endl;
这个程序,只需要循环21次,两个变量,就可以得到答案,比上面的那个程序高效了许多
倍----只是因为作了 一些简单的数学分析
这再一次证明了:计算机程序=数据结构+算法,而且算法是程序的灵魂,对任何工程问 题,当用软件来实现时,必须选取满足当前的资源限制,用户需求限制,开发时间限制等种 种限制条件下的最优算法。而绝不能一拿到手,就立刻用最容易想到的算法编出一个程序了 事一一这不是一个专业的研发人员的行为。
那么,那种最容易想到的算法就完全没有用吗?不,这种算法正好可以用来验证新算法 的正确性,在调试阶段,这非常有用。在很多大公司,例如微软,都采用了这种方法:在调 试阶段,对一些重要的需要好的算法来实现的程序,而这种好的算法又比较复杂时,同时用 容易想到的算法来验证这段程序,如果两种算法得出的结果不一致(而最容易想到的算法保 证是正确的),那么说明优化的算法出了问题,需要修改。
可以举例表示为:
#ifdef DEBUG
int simple();
# end if
int optimize();
in a function:
(
result= optimize();
ASSERT(result= = sim ple());
}
这样,在调试阶段,如果简单算法和优化算法的结果不一致,就会打出断言。同时,在程
序的发布版本,却不会包含笨重的simple()函数。一任何大型工程软件都需要预先设计 良
好的调试手段,而这里提到的就是一种有用的方法。
一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一 起,给出一个age,
在些链表中删除学生年龄等
于a

最近更新

2024年广西百色市那坡县地震局招聘1人历年高频.. 88页

2024年广西省柳州市不动产登记中心招聘5人历年.. 88页

2024年广西省藤县事业单位招聘工作74人历年高.. 88页

2024年广西自治区南宁市青秀区科学技术局招聘.. 88页

2024年广西自治区贺州市事业单位招聘360人历年.. 89页

2024年广西贵港市桂平市住房和城乡规划建设局.. 89页

2024年广西贵港市港南区招聘事业单位急需紧缺.. 90页

2024年广西贵港平南县供销合作社联合社事业单.. 90页

2024年广西贺州市平桂区事业单位招聘12人历年.. 90页

2024年广西贺州市昭平县机关事业单位招聘16人.. 90页

2024年广西钦州市国土资源局钦北分局招聘10人.. 89页

2024年广西钦州市钦北区事业单位招聘53人历年.. 92页

2024年张家口职业技术学院单招职业适应性测试.. 57页

2024年抚州职业技术学院单招职业适应性测试题.. 56页

2024年杭州科技职业技术学院单招职业适应性测.. 58页

2024年江苏卫生健康职业学院单招职业适应性测.. 59页

2024年江苏省徐州市行政职业能力测验题库(名.. 149页

2024年江苏省泰州市行政职业能力测验题库完整.. 147页

2024年江苏省镇江市行政职业能力测验题库(完.. 147页

2024年江西泰豪动漫职业学院单招职业适应性测.. 57页

2024年江西省九江市行政职业能力测验题库(预.. 147页

2024年江西省鹰潭市行政职业能力测验题库及完.. 149页

2024年河北对外经贸职业学院单招职业适应性测.. 57页

2024年河北省邯郸市选调生考试(公共基础知识.. 147页

2024年浙江省丽水市行政职业能力测验题库(夺.. 148页

2024年浙江省温州市行政职业能力测验题库(达.. 147页

2024年浙江金融职业学院单招职业适应性测试题.. 59页

2024年湖南体育职业学院单招职业适应性测试题.. 59页

2024年漳州职业技术学院单招职业适应性测试题.. 58页

电泳车间安全操作规程 4页