`
izuoyan
  • 浏览: 8951326 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

几个常见的C语言面试题分析

阅读更多

一次去一个小公司面试,没有太重视,当时由于工作甚忙,也没作准备。他们给我的试卷有大量的题,规定一个小时必须做完,一看题量,吓了一大跳,题有链表,有多维数组,有大量的程序阅读,幸亏基本功还算扎实,未辱使命,差强完成。等到做到编程题时,才发现自己太长时间没有写过程序了,让一些琐碎的改BUG工作和代码维护浪费了太多的精力。一直做下去,心里暗暗吃惊,一个小时,这个题量如果是在刚毕业时,还是有可能完成的,工作几年后,压力渐小,写程序基本都是拿来主义,对标准库函数的原理把握和编程能力越来越退化。由于当时时间紧迫,所写程序也不够完善,过后又思考了一下,回到家后赶紧又对这些问题总结了一下。下面对面试中遇到的编程问题分析了一下。真是人在社会如江湖呀,学习是一刻也不能放松的事。稍一不慎,晚节不保不说,反而会阴沟里翻船。

1.获取路径下的文件名

char * FindFileName(char * s)
{
int len;
char *tmp=NULL;

ASSERT(s != NULL);
for (len=strlen(s); len>0;len--)
{
if((s[len]=='/') ||(s[len]=='\\'))
{
tmp = &s[len+1];
break;
}
}
return tmp;

}

2.把整型转化为字符型
char * i2a(int n, char *s)
{
int i, sign;

ASSERT(s != NULL);
if ((sign = n) < 0)
{
n = -n; //转为正数,利于取位
}

do
{
s[i++] = n % 10 + '0';
}
while ((n /= 10) > 0)
if (sign < 0)
{
s[i++] = '-';
}
s[i] = '\0';

reverse(s);
}

3.把字符型转为整型

int a2i(char * s)
{
int i, n, sign;

ASSERT(s != NULL);
for (i = 0; s[i] == ' '; i++)
{
NULL; //如果字串前有空格,跳过所有空格
}
sign = (s[i] == '-') ?: -1 : 1;
if (s[i] == '+' || s[i] == '-')
{
i++; //判断是正整数串还是负整数串
}
for (n = 0; s[i] > = '0' && s[i] <= '9'; i++)
{
n = 10 * n + (s[i] - '0');
}
return sign*n;
}

4.输出字符串倒文,不能动态分配内存

char * reverse(char * s)
{
int c, i, j;

ASSERT(s != NULL);
for (i = 0, j = strlen(s) - 1; i < j; i++, j--)
{
c = s[i];
s[i] = s[j];
s[j] = c;
}

return s;
}

5.查找子串是否存在

int strindex(char *str,char *searchstr)
{
int end, i, j;

ASSERT((str != NULL) && (searchstr != NULL));
//计算结束位置
end = strlen(str) - strlen(searchstr);
if ( end > 0 )
{
for ( i = 0; i <= end; i++ )
{
for ( j = i; str[j] == searchstr[j-i]; j++ )
{
if ( searchstr[j-i+1] == '\0' ) /* 子字符串字结束 */
{
return i + 1; /* 找到了子字符串 */
}
}
}
}
return -1;
}

分享到:
评论

相关推荐

    c/C++面试题大全--96页

    本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。  许多面试题看似简单,却需要深厚的基本功才能给出...

    C/C++程序员面试指南.杨国祥(带详细书签).pdf

    面试题11:每个护士星期几休息 面试题12:每个人系的圆牌都是什么颜色的 面试题13:帽子问题 面试题14:谁是凶手 面试题15:他们的头发是什么颜色的 面试题16:谁是漂亮的青年 面试题17:哪个袋子里有金子 面试题18...

    C语言很多面试和笔试试题及分析

    欢迎光临最大的源码下载中文网站... 本站以C语言和Java语言、嵌入式开发、算法实现为主,源码数量达几十万个,有200多个分类,很多都是本站会员的私家珍藏,互联网上其他地方是找不到的 http://www.pudn.com

    一些C面试题,希望能对大家有帮助

    c面试题 4. static有什么用途?(请至少说明两种) 1.限制变量的作用域 2.设置变量的存储域 7. 引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。...

    c++ 面试题 总结

    C++面试题 1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐形继承的。 private 也被集成,只事派生类没有访问权限而已 virtual可加可不加 子类的...

    面试题03 数组中重复的数字(标签:简单)

    文章目录1:题目2:python实现2.1:思路12.1.1:代码2.1.2:分析3:c语言实现3.1:思路13.1.1:代码3.1.2:分析4:知识点整理 1:题目 title:面试题03 数组中重复的数字 introduction: 在一个长度为 n 的数组 nums...

    《妙趣横生的算法(C语言实现)》(杨峰 编著)

    全书分为2个部分共10章,内容涵盖了编程必备的基础知识(如数据结构、常用算法等),编程实例介绍,常见算法和数据结构面试题等。可以使读者开阔眼界,提高编程的兴趣,提高读者的编程能力和应试能力。 目录: 第1...

    底层开发者手册之C语言基础及项目开发2.4.5

    将《底层工作者手册之C语言基础及项目开发》改名为《底层开发者手册之C语言基础及项目开发》,并做了...C语言入门可能会比较容易,但不要指望几个月时间就能熟练掌握C语言,如果做底层编码的话则需要以年为单位来衡量。

    leetcode下载-CS-PDF-Book:计算机类常用电子书整理,并且附带下载链接,包括Java,Python,Linux,Go,C,C+

    leetcode下载 计算机经典书籍那么多,一本书动不动就要上百块,也不是每本书都能看完的,可能我就是翻翻里面的重要章节,如果每本书都要买纸质书...数据结构与算法分析C语言描述版 密码:mn10 数据结构与算法分析Java

    传智播客扫地僧视频讲义源码

    20_信息系统框架集成第三方产品案例_几个重要的面向对象思想_传智扫地僧 21_作业 文档和源码 01_上一次课程回顾 02_数组指针语法梳理 03_函数指针语法梳理_传智扫地僧 04_函数指针做函数参数思想剖析_传智扫地僧 05_...

Global site tag (gtag.js) - Google Analytics