c语言面试问题(共3篇)

c语言面试问题(共3篇)回目录

已经n次倒在c语言面试的问题上,总结了一下,是由于基础知识不扎实。痛定思痛

本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。

许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10分中的2分。读者可从本文看到strcpy 函数从2分到10分解答的例子,看看自己属于什么样的层次。此外,还有一些面试题考查面试者敏捷的思维能力。

分析这些面试题,本身包含很强的趣味性;而作为一名研发人员,通过对这些面试题的深入剖析则可进一步增强自身的内功。

2.找错题

试题1:

void test1()

{

char string[10];

char* str1 = "0123456789";

strcpy( string, str1 );

}

试题2:

void test2()

{

char string[10], str1[10];

int i;

for(i=0; i<10; i++)

{

str1 = 'a';

}

strcpy( string, str1 );

}

试题3:

void test3(char* str1)

{

char string[10];

if( strlen( str1 ) <= 10 )

{

strcpy( string, str1 );

}

}

解答:

试题1字符串str1需要11个字节才能存放下(包括末尾的\0),而string只有10个字节的空间,strcpy会导致数组越界;

对试题2,如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy(string, str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数

strcpy工作方式的给10 分;

对试题3,if(strlen(str1) <= 10)应改为if(strlen(str1) < 10),因为strlen的结果未统计\0所占用的1个字节。

剖析:

考查对基本功的掌握:

(1)字符串以\0结尾;

(2)对数组越界把握的敏感度;

(3)库函数strcpy的工作方式,如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案:

2分

void strcpy( char *strDest, char *strSrc )

{

while( (*strDest++ = * strSrc++) != \0 );

}

4分

void strcpy( char *strDest, const char *strSrc )

//将源字符串加const,表明其为输入参数,加2分

{

while( (*strDest++ = * strSrc++) != \0 );

}

7分

void strcpy(char *strDest, const char *strSrc)

{

//对源地址和目的地址加非0断言,加3分

assert( (strDest != NULL) && (strSrc != NULL) );

while( (*strDest++ = * strSrc++) != \0 );

}

10分

//为了实现链式操作,将目的地址返回,加3分!

char * strcpy( char *strDest, const char *strSrc )

{

assert( (strDest != NULL) && (strSrc != NULL) );

char *addre= strDest;

while( (*strDest++ = * strSrc++) != \0 );

return address;

}

从2分到10分的几个答案我们可以清楚的看到,小小的strcpy竟然暗藏着这么多玄机,真不是盖的!需要多么扎实的基本功才能写一个完美的strcpy啊!

(4)对strlen的掌握,它没有包括字符串末尾的'\0'。

读者看了不同分值的strcpy版本,应该也可以写出一个10分的strlen函数了,完美的版本为:

int strlen( const char *str ) //输入参数const

{

assert( strt != NULL ); //断言字符串地址非0

int len;

while( (*str++) != '\0' )

c语言专业面试问题,c语言面试问题(共3篇).doc相关推荐

  1. 计算机专业英语IT专员面试题,计算机专业英文面试问题 (共2篇).doc

    计算机专业英文面试问题 (共2篇) 计算机专业英文面试问题 (共2篇) 计算机专业英文面试问题My name is XXX, you might be able to associate a qion ...

  2. R语言sharpiro_r语言实验报告总结(共9篇).doc

    r语言实验报告总结(共9篇) r语言实验报告总结(共9篇) R语言对应分析实验报告 R语言对应分析实验报告 班级:应数1201 学号姓名:麦琼辉 时间:2014年12月24号 1 实验目的及要求 1) ...

  3. 华理c语言设计网上作业,华理c程序实验报告(共9篇).doc

    华理c程序实验报告(共9篇) 华理c程序实验报告(共9篇) 2011华理<C语言实验报告> C程序设计课程 实验报告册 所在学院 班 级 学 号 姓 名 任(来自:www.XIelw.Co ...

  4. c语言 读书报告心得,单片机读书报告共10篇.doc

    单片机读书报告(共10篇) :单片机 报告 读书 单片机报告册纸张图片 单片机原理及应用 stm32单片机和51的区别 篇一:单片机读书报告 专业读书课程--读书心得 --读<PIC单片机入门与 ...

  5. 大学计算机专业实训课,大学计算机实训报告(共3篇).doc

    大学计算机实训报告(共3篇) 大学计算机实训报告(共3篇) 本科生课程设计任务书.设计报告 题 目 学生姓名 指导教师 学 院 专业班级 学生学号 魅力长沙 何慧 刘泽星 土建院 11109 计算机基 ...

  6. 计算机专业英语读书报告,英语读书报告范文(共6篇).doc

    英语读书报告范文(共6篇) 英语读书报告范文(共6篇) 1.字体均为Times New Roman 报告题目为3号黑体居中 学生姓名.专业班级.学号.正文及参考文献均为小4号 双倍行距 2.打印纸张规 ...

  7. 计算机专业英语读书报告,英语专业读书报告(共8篇).doc

    英语专业读书报告(共8篇) 英语专业读书报告(共8篇) The novel The Landower Legacy, written by a famous English writer Victor ...

  8. 轨道运营管理专业自荐书_城市轨道交通运营服务与管理求职自荐信 (共3篇).doc...

    城市轨道交通运营服务与管理求职自荐信 (共3篇) 城市轨道交通运营服务与管理求职自荐信 (共3篇) 城市轨道交通运营服务与管理求职自荐信尊敬的上海铁路局领导:您好!衷心感谢您在百忙之中阅读我的自荐信. ...

  9. c语言专业实习报告,C语言个人实习报告(范文1)

    <C语言个人实习报告.doc>由会员分享,可免费在线阅读全文,更多与<C语言个人实习报告>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索. 1.好的学 ...

  10. c语言专业术语读音,C语言的32个关键字(读音、用法、注释)转来的,给刚接触C的...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一.数据类型关键字(12个): 1.char [tʃɑ:]:声明字符型变量或函数 (1)主要内容字符:容纳单字符的一种基本数据类型:(2)n.炭:女清洁工 ...

最新文章

  1. 如何写一篇好的技术博客
  2. Day 24: 使用Yeoman自动构建Ember项目
  3. pycharm 导入或复制项目后run按钮灰色问题(显示pycharm add configuration)
  4. SAP云平台CloudFoundry编程环境下app router的使用最佳实践
  5. java如何对list进行排序_java中如何对list进行排序
  6. 【vue2.0进阶】轻松理解Vuex的3个核心概念
  7. 【广告技术】如何提升定向广告效果?腾讯广告提出高质量负实例生成新方法
  8. Git提交错了不用慌,这三招帮你修改记录
  9. MySQL学习笔记( 整理中)
  10. 全国电子设计大赛-电路模块准备
  11. 遗传算法的Python实现(通俗易懂)
  12. 穿越回二年级讲CPU工作原理。
  13. FLUENT中初识UDF——UDF的简单使用(1)
  14. A woman without arms
  15. 音频合并的步骤有哪些
  16. 芝诺数解|「十三」一菜一格,百菜百味——重庆川菜数据分析报告
  17. 如何将3d文件在网页中显示(webGL,three.js)
  18. ESP8266基于MicroPython的TCP socket回调函数实现案例
  19. 看一眼就会马上收藏的宝藏设计网站
  20. unity画一条流动的弧线(贝塞尔线)

热门文章

  1. SQL安装步骤及可能遇到的错误
  2. linux两台服务器文件实时同步
  3. 基于Vue的车辆租赁管理系统设计与实现
  4. IEEE Xtreme 11.0极限编程题目分类
  5. 微信公众号运营技巧总结
  6. html静态网页实例二(附完整代码)
  7. 【LEDE】树莓派上玩LEDE终极指南-92-自己编译的LEDE为啥子不能用SSR和KoolProxy?
  8. 【PMP】工作分解结构WBS详解
  9. 配置华为防火墙ssh ASDM
  10. CAD如何求曲线的交点?