ForFisrtWork--No.4:编程题专页
来源:互联网 发布:阿里云服务器 知乎 编辑:程序博客网 时间:2024/06/07 13:22
持续更新中,所以暂时比较乱,敬请谅解!
1.实现一个类,该类不可以被继承,同时该类只可以定义有限个对象
在C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。首先想到的是在C++ 中,子类的构造函数会自动调用父类的构造函数。同样,子类的析构函数也会自
动调用父类的析构函数。要想一个类不能被继承,我们只要把它的构造函数和析构函数都定义为私有函数。
#include<iostream>using namespace std;class FinalClass1{ public : static int count ;//实例化次数 static FinalClass1* GetInstance() { if(count<=0) return NULL; count--; return new FinalClass1; } static void setCount(int n) { count = n; } static void DeleteInstance( FinalClass1* pInstance) { delete pInstance; pInstance = 0; } private : FinalClass1() { cout<<"con"<<endl; } ~FinalClass1() { cout<<"decon"<<endl; }};int FinalClass1::count=0;void main(){ FinalClass1::setCount(3); FinalClass1 *f1 = FinalClass1::GetInstance(); FinalClass1 *f2 = FinalClass1::GetInstance(); FinalClass1 *f3 = FinalClass1::GetInstance(); if (f3==NULL) { printf("f3 NULL\n"); } else { printf("f3 Not NULL\n"); }FinalClass1::DeleteInstance(f3); FinalClass1 *f4 = FinalClass1::GetInstance(); if (f4==NULL) { printf("f4 NULL\n"); } FinalClass1 *f5 = FinalClass1::GetInstance(); if (f5==NULL) { printf("f5 NULL\n"); }}结果:这个好好解释必须看专业书籍啊,待回看。
2.实现字符串中空格的去除,不能用系统函数现在只能想到比较常规的方法,见:http://wenku.baidu.com/view/60fa79380912a216147929a1.html
3.实现字节的逆序 现在只能想到比较常规的方法,更好的方法见:http://log4think.com/reverse_byte_bit/?replytocom=24
4.求两个时间的时间差,不能用系统函数。
类似的poj--acm题,见:http://blog.csdn.net/dscyw/article/details/8766968本题的参考程序也在其中。
5.请不用任何c runtime函数实现以下函数:Inter trim_str(char *pstr)
函数功能如下:
1) 滤掉字符串头尾的空格、回车、tab
2) 输出字符串通过输入字符串指针返回
3) 如果成功则返回0否则返回非0
参考程序如下:回车和题目要求的返回值问题我没有处理好,以后完善。
#include<iostream>using namespace std;int trim_str(char *pstr){int beg=0,end=0,i=0;while(pstr[i]==' ' || pstr[i]==13 || pstr[i]=='\t')i++;beg=i;while(pstr[i]!='\0') i++;while(pstr[i]==' ' && pstr[i]==13 && pstr[i]=='\t')i--;end=i;cout<<beg<<endl<<end<<endl;for(i=0;i<=end-1-beg;i++){pstr[i]=pstr[i+beg];}pstr[i]='\0';return 0;}int main(void){char strTemp[]="I absolutely Love China";char *str=strTemp;//必须这样处理下,奥妙见:http://blog.csdn.net/dscyw/article/details/8759438if(!trim_str(str)) cout<<str<<endl;return 1;}
运行结果:6.有N个大小不等的自然数(1,2,3,…..N)请将它们从小到大排列。算法要求:时间复杂度为O(n),空间复杂度为O(1)。
请简要说明你采用的排序算法并写出c的伪代码。
本题用快速排序算法,排序算法有必要复习下了,见:http://blog.csdn.net/dscyw/article/details/8763754
7.裴波那絜数列的形式如下: 1 1 2 3 5 8 13……. n,编写一个函数计算数列中第n个元素的值。
参考程序:
int Fibonax(int n){if(n==1 || n==2) return 1;else return Fibonax(n-1)+Fibonax(n-2);}int main(){cout<<Fibonax(9)<<endl;return 1;}
8.不调用任何系统函数,实现在一个字符串中查找子串的函数,如果包含子串,则返回该子串的位置值。(7分)
参考程序如下:
#include<iostream>#include<cstring>using namespace std;int GetCommon(char *s1, char *s2){int loca;int len1 = strlen(s1);int len2 = strlen(s2);for(int i = 0; i < len1; i++){if(s1[i] == s2[0]){int as = i, bs = 0, count = 1;while(as + 1 < len1 && bs+ 1 < len2 && s1[++as] == s2[++bs])count++;if(count == len2){loca = i;return loca;}} }}int main(void){char *str1="I absolutely Love China";char *str2="Love";cout<<GetCommon(str1,str2)<<endl;return 1;}
运行结果:9.用算法实现将一个输入的数字颠倒,要求不调用任何系统函数,也不能将输入数字转换为字符串作为中间过渡。(8分)
方法1:(字符数组,借鉴)
#include <stdio.h>
#include <string.h>
#include <dos.h>
int main()
{
charstr[] = "ABCD1234efgh";
intlength = strlen(str);
char* p1 = str;
char* p2 = str + length - 1;
while(p1< p2)
{
char c = *p1;
*p1 = *p2;
*p2 = c;
++p1;
--p2;
}
printf("strnow is %s\n",str);
system("pause");
return0;
}
方法2:递归或栈
void reverse()
{
stack s;
int x;
while (cin>>x)
{
s.push(x);
}
while (!s.empty())
{
x = s.pop();
cout<<x;
}
}
- ForFisrtWork--No.4:编程题专页
- ForFisrtWork--No.1:笔试题初见
- ForFisrtWork--No.3:2012合肥笔试题
- ForFisrtWork--No.2:2009软件开发笔试题目
- ForFisrtWork--No.5:刚考完2013软件开发B卷,回忆题目并总结之
- 【转】美国百所大学招生网专页~
- 怎样通过flash模板安装Facebook专页
- ForFisrtWork:我遇到过的面试题
- ForFisrtWork:为了下午六点半的京东方笔试
- 编程NO.1(C)
- Facebook测试在品牌专页内开展电商销售
- java网络编程(No.13)
- openssl编程出现no OPENSSL_Applink
- No.4
- NO.4
- No MFC 编程02 - 我要独一无二 !
- No MFC 编程03 - 检测全局键盘
- 黑马程序员-网络编程-No.05
- winform 两个listBox左右互移,支持多选或单选移动,移动时源listBox除移已除动的Items
- 栈和堆的区别【总结】
- 一个很酷的设计:Breaking down Amazon’s mega dropdown
- VC 不定参数函数 实现
- WINCE 下创建动态显示图片窗口
- ForFisrtWork--No.4:编程题专页
- 判别模型和生成学习
- java反射详解
- 实时监听js改变value,跨浏览器支持
- 百度地图的学习
- js数组操作
- WINCE下窗口的创建
- 2013-04-02 阶段性复习
- Apache中VirtualHost配置说明