森浦资讯(C++ 面试两道程序题)
2015-12-22 21:39
671 查看
2015-12-22 星期2
今天去了我的第一个实习公司(森浦资讯)面试,这也是我在学了一整年德语之后,第一次去面试一家软件开发岗位。
其实这次面试我是什么都没有准备,只是凭着自己的以前的记忆去回答一起技术问题。
在这期间面试官给我两道程序题:
1. 写一个回文函数,检测一个字符串是不是回文。
2.写一个atof()函数,
面对这样的两个题目,总感觉以前都是写过的,但是一年多没看程序代码,这个事也不是一件轻松的事。
虽然第一个回文函数,我自己心中是有个谱,但是由于自己一些基本的字符串,指针用法忘接了,就没有写出来。第二个程序,还算是勉强凑合的写出来了。
现在我回到实验室,准备把这两个函数再重新写一遍,在实现以下。
1、字符串回文检测
2、atof() 函数
今天去了我的第一个实习公司(森浦资讯)面试,这也是我在学了一整年德语之后,第一次去面试一家软件开发岗位。
其实这次面试我是什么都没有准备,只是凭着自己的以前的记忆去回答一起技术问题。
在这期间面试官给我两道程序题:
1. 写一个回文函数,检测一个字符串是不是回文。
2.写一个atof()函数,
面对这样的两个题目,总感觉以前都是写过的,但是一年多没看程序代码,这个事也不是一件轻松的事。
虽然第一个回文函数,我自己心中是有个谱,但是由于自己一些基本的字符串,指针用法忘接了,就没有写出来。第二个程序,还算是勉强凑合的写出来了。
现在我回到实验室,准备把这两个函数再重新写一遍,在实现以下。
1、字符串回文检测
#include "stdio.h" #include "string.h" int f(char *s) {int i,j; j=strlen(s); j--; for(i=0;i<j&&s[i]==s[j];i++,j--); if(i>=j) return 1; return 0; } main() {char s[80]; gets(s); if(f(s)==1) printf("YES"); else printf("NO"); }
2、atof() 函数
<pre name="code" class="cpp"> #include "stdafx.h" #include <iostream> int atoi( char sptr){ int atoI = 0; switch (sptr){ case '1': atoI = 1; break; case '2': atoI = 2; break; case '3': atoI = 3; break; case '4': atoI = 4; break; case '5': atoI = 5; break; case '6': atoI = 6; break; case '7': atoI = 7; break; case '8': atoI = 8; break; case '9': atoI = 9; break; case '0': atoI = 0; break; } return atoI; } double myatof(char *str){ double sum = 0; int num = 0, flag = 0; if (*str == '-'){ str++; while (*str != '\0'){ if ((*str != '0') && (*str != '1') && (*str != '2') && (*str != '3') && (*str != '4') && (*str != '5') && (*str != '6') && (*str != '7') && (*str != '8') && (*str != '9') && (*str != '.')){ printf("falsh input!\n"); return 0; } else{ if (*str == '.'){ flag = 1; str++; } else{ if (flag == 0){ num = atoi(*str); sum = sum * 10 + num; str++; } if (flag == 1){ num = atoi(*str); sum = sum + num / 10; str++; } } } } return -sum; } else { while (*str != '\0') { if ((*str != '0') && (*str != '1') && (*str != '2') && (*str != '3') && (*str != '4') && (*str != '5') && (*str != '6') && (*str != '7') && (*str != '8') && (*str != '9') && (*str != '.')) { printf("falsh input!\n"); return 0; } else{ if (*str == '.'){ flag = 1; str++; } else{ if (flag == 0){ num = atoi(*str); sum = sum * 10 + num; str++; } if (flag == 1){ num = atoi(*str); sum = sum + num / 10; str++; } } } } return sum; } } int _tmain(int argc, _TCHAR* argv[]) { char *String1 = "1a2345"; char *String2 = "123.45"; double Sum1=0,Sum2=0; Sum1 = myatof(String1); printf("%f\n", Sum1); Sum2 = myatof(String2); printf("%f\n", Sum2); while (1); return 0; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性
- C++ Custom Control控件向父窗体发送对应的消息