1. 反转字符串。

#include <iostream>

using namespace std;/** 编写反转字符串的程序,要求优化速度、优化空间。*/void reverse(char *str,int len){char *p = str;char *q = str + len - 1;    len /= 2;while(len > 0)    {*p = *p ^ *q;*q = *p ^ *q;*p = *p ^ *q;        p ++;        q --;        len --;    }}int main(){char str[11] = "9876543210";    reverse(str,sizeof(str) - 1);

    cout << str << endl;return 0;}

  2. 判断是不是循环链表,用两个指针,一个每次前进一步,一个每次前进2步,看他们的结果是否相同

#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;struct node{int key;    node *next;};node * head;void create(){int i;    node *p = NULL;    head = (node *)malloc(sizeof(node));    head->key = 0;    head->next = NULL;

    p = head;

for(int i = 0;i < 6;i ++)    {        p->next = (node *)malloc(sizeof(node));        p->next->key = i;        p->next->next = NULL;        p = p->next;    }    p->next = head;//使尾节点指向头节点

    #ifdef TEST    p = head;for(int i = 0;i < 12;i ++)        cout << p->key << " ";    cout << endl;#endif

}

void test(){    node *p = NULL;    node *pp = NULL;    p = head->next;    pp = head->next->next;while(pp != p)    {        p = p->next;        pp = pp->next->next;if(p == NULL || pp == NULL)        {            cout << "不是循环链表" << endl;return ;        }    }    cout << "是循环链表" << endl;

}

void des(){    node *p = NULL,*q = NULL;    p = head->next;while(p != head)    {        q = p;        p = p->next;        free(q);    }    free(head);}int main(){    create();    test();    des();return 0;}

  3. 将 一个字符串型的数字转化为long 型

记得上次百度有一道面试题是这样的,将一个字符串转化为long ,但是字符串中可能包含小数点,和其他字符,问的是能不能也向下面的方式,一遍遍历求出结果,要求是写

出代码,而不是说就行

#include <iostream>#include <stdio.h>#include <string.h>using namespace::std;

const int MAX = 10;

int my_power(int n){if(n <= 0)return 1;int temp = 1;while (n--)temp *= 10;return temp;}

float convert(const char* str){float sum1 = 0.0;float sum2 = 0.0;int i = 0;int idx = 0;int len = strlen(str);

while(str[idx] != '.' && str[idx] != '\0')idx++;

while(i < idx){sum1 = sum1 * 10 + (str[i]-'0'); //整数部分i ++;}i = idx + 1;if(i < len){while(i < len){sum2 = sum2 * 10 + (str[i]-'0');i ++;}}

return (sum1+sum2/my_power(len - idx - 1));}int main(){float result = 0.0;char str[MAX];cin >> str;result = convert(str);cout << result << endl;return 0;}

  

#include <iostream>

using namespace std;

/*写一个函数,检查字符串是否是整数,如果是,返回其整数值。*/

long convert(const char * str){long value = 0,f = 1;if(* str == '-') str ++,f = -1;for(; *str != '\0' && *str >= '0' && *str <= '9'; str ++) value = value * 10 + (*str - '0');

return *str == '\0' ? value * f:0;}int main(){char str[] = "123456789";    cout << convert(str) << endl;

char str3[] = "-1234567";    cout << convert(str3) << endl;

return 0;}

  百度那道题:考虑各种情况下。

#include <iostream>#include <iomanip>using namespace std;inline bool IsNum(const char c){return c >= '0' && c <= '9';}

inline bool IsAlpha(const char c){return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');}

// 从字符串str中获得一个浮点数// start表示这个浮点数在字符串中的起始位置。end表示浮点数结束的下一个位置// dot表示小数点所在的位置bool CheckString(const char* str, int& start, int& dot, int& end){if (str == NULL)//字符串为空        return false;

char* p = const_cast<char*>(str);

while(!IsNum(*p++));    p--;    start = p - str;

if (str[start - 1] == '.')// -.14f    {        start--; p--;    }

for (; IsNum(*p); p++);

if (*p == '.')    {        dot = p - str;while(IsNum(*++p));        end = p - str;return true;    }

    dot = p - str;    end = p - str;return true;}

//a^bdouble Pow(const int a, const int b){double rslt = 1;for (int i = 0; i < b; i++)        rslt *= a;

return rslt;}// 把一个字符串转化成double型的浮点数double Atof(const char* str){int s, d, e;if (!CheckString(str, s, d, e))    {        cout << "please check your string." <<endl;return 0;    }double result = 0.0;

double pow = Pow(10, e - 1 - d);

// 计算小数部分    for (int i = e - 1; i > d; i--)    {        result += (str[i] - '0') / pow;        pow /= 10;    }

    pow = 1;// 计算整数部分    for (int j = d - 1; j >= s; j--)    {        result += (str[j] - '0') * pow;        pow *= 10;    }

if (s > 0 && str[s - 1] == '-')        result = -result;

return result;}int main(){    cout << endl;    cout << endl  << setprecision(10) << Atof("-123.456") << endl;return 0;}

 

常见面试题学习(1)相关推荐

  1. js怎么在一个div中嵌入另一网站_好程序员web前端学习路线分享HTML5常见面试题集锦一...

    好程序员web前端学习路线分享HTML5常见面试题集锦,接下来将会持续为大家分享几篇HTML5常见面试题. 1.布局 左边20% 中间自适应 右边200px 不能用定位 答案:圣杯布局/双飞翼布局或者 ...

  2. 软件测试系统学习流程和常见面试题

    在学习软件测试的时候你是否会感觉到不知从何下手? 今天教导你们软件测试学习的系统流程和面试常见的问题. 学习流程 一.必备技能 编程基础,能看懂前端页面,掌握一门语言:php/python/java等 ...

  3. 测试开发java常见面试题_Java常见面试题200+,学习、面试必备

    本套Java面试题,选取了企业面试最常问到的问题,可以做为Java工程师的面试宝典,也可以做为想要不断完善和扩充自己 java 技术的学习者. 主要包含: Java 基础.容器.多线程.反射.对象拷贝 ...

  4. mysql关于时间的面试题,mysql时间设置默认值MySQL常见面试题

    1.limit(选出10 到20 条) select * from students order by id limit 9,10; 2.MySQL 会使用索引的操作符号 =,>,=,betwe ...

  5. Spring常见面试题及答案汇总1000道(春招+秋招+社招)

    Spring面试题以及答案整理[最新版]Spring高级面试题大全(2021版),发现网上很多Spring面试题都没有答案,所以花了很长时间搜集,本套Spring面试题大全,汇总了大量经典的Sprin ...

  6. Java多线程常见面试题及答案汇总1000道(春招+秋招+社招)

    Java多线程面试题以及答案整理[最新版]Java多线程高级面试题大全(2021版),发现网上很多Java多线程面试题都没有答案,所以花了很长时间搜集,本套Java多线程面试题大全,汇总了大量经典的J ...

  7. MySQL常见面试题及答案汇总1000道(春招+秋招+社招)

    MySQL面试题以及答案整理[最新版]MySQL高级面试题大全(2021版),发现网上很多MySQL面试题都没有答案,所以花了很长时间搜集,本套MySQL面试题大全,汇总了大量经典的MySQL程序员面 ...

  8. Jvm常见面试题及答案汇总1000道(春招+秋招+社招)

    Jvm面试题以及答案整理[最新版]Jvm高级面试题大全(2021版),发现网上很多Jvm面试题都没有答案,所以花了很长时间搜集,本套Jvm面试题大全,汇总了大量经典的Jvm程序员面试题以及答案,包含J ...

  9. Dubbo常见面试题及答案汇总1000道(春招+秋招+社招)

    Dubbo面试题以及答案整理[最新版]Dubbo高级面试题大全(2021版),发现网上很多Dubbo面试题都没有答案,所以花了很长时间搜集,本套Dubbo面试题大全,汇总了大量经典的Dubbo程序员面 ...

最新文章

  1. python sys模块作用_浅谈Python中的模块
  2. Swift来了,是不是可以入手IOS开发了?
  3. 我国手机浏览器用户达2.15亿
  4. matlab中rowset什么意思,没什么用的matlab代码1
  5. 年月跨度_建筑结构丨国内跨度最大的张弦桁架工程——合肥滨湖国际会展中心二期首榀桁架滑移成功...
  6. 隐藏自己电脑的IP地址
  7. 【程序性能分析利器】Google Perf Tool 和 Valgrind 工具包简介
  8. spdlog: undefined reference to `fmt::SystemError::init(int, fmt::BasicCStringRef<char>, fmt::ArgList
  9. js计算两个整数之间的百分比
  10. ceb转pdf linux,基于zynq的Linux根文件系统生成
  11. Axure基础教程:产品流程图的制作方法详解
  12. 计算机主机报警 声,电脑开机报警声音大全
  13. js模板引擎渐进--each/for(5)
  14. 一个Web前端实习生的简历
  15. android格式化sd卡软件,SD/TF卡格式化程序
  16. JS中的curry化(柯里化)
  17. .netMVC企业微信网页授权+注册全局过滤器
  18. HHT和FFT的对比
  19. HTML+CSS+JS制作一个生日祝福网站(程序员专属情人节表白网站)
  20. 南京软件测试自学英语,南京软件测试培训班怎么样?南京软件测试培训班学什么?...

热门文章

  1. Mysql增强半同步模式_MySQL增强半同步参数rpl_semi_sync_master_wait_point值AFTER_SYNC和AFTER_COMMIT...
  2. 怎么把快捷键改成eclipse_Java IDE超好用的10个快捷键
  3. Python图像处理,替代PS做好效果图!
  4. 适合初学者的Python小游戏开发,不仅有趣还能巩固自己所学知识
  5. mac微软雅黑字体_【字体字重】常见设计稿字体对应字重
  6. 通过Sequentail网络容器创建LeNet-5
  7. 习题4-3 求分数序列前N项和 (15 分)
  8. 解题报告(八) prufer 序列与 Cayley 公式(ACM / OI)超高质量题解
  9. dp背包九讲(待补充,暂时前两讲)
  10. 从零开始撸音乐播放器(源码可下载)