1.找错

void test1()

{

char string[10];

char *str1="0123456789";

strcpy(string,str1);

}

试题一字符串str1需要11个字节才能存放下(包括末尾的‘/0'),而string

只有10个字节的空间,strcpy会导致数组越界。

void test2()

{

char string[10],str1[10];

int i;

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

{

str1[i]='a';

}

strcpy(string,str1);

}

对试题2,如果面试者指出字符数组str1不能在数组内结束,指出strcpy

(string,str1)调用使得从str1内存起复制到string内存起所复制的字节数具有

不确定性,库函数strcpy工作方式

void test3(char *str1)

{

char string[10];

if (strlen (str1)<=10)

{

strcpy(string,str1);

}

}

if (strlen(str1<=10)

{

strcpy(string,str1);

}

}

对试题3,if(strlen(str1)<=10)应改为if (strlen (str1)<10),因为strlen的结果

未统计'/0'所占用的1个字节。

解析:

(1)字符串以’/0'结尾;

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

(3)库函数strcpy的工作方式,如果编写一个标准strcpy函数的总分值

void strcpy(char *strDest,char *strSrc)

{

while ((*strDest++=*strSrc++!='/0');

}

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

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

{

while ((*strDest++=*strSrc++)!='/0');

}

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

{

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

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

while ((*strDest++=*strSrc)!='/0');

}

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

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

{

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

char *address =strDest;

while ((*strDest++=*strSrc++)!='/0');

return address;

}

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

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

{

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

int len ;

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

{

len++;

}

return len;

}

试题4:

void GetMemory(char *p)

{

p=(char*)malloc(100);

}

c/c++面试题一的更多相关文章

  1. .NET面试题系列[8] - 泛型

    “可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...

  2. 关于面试题 Array.indexof() 方法的实现及思考

    这是我在面试大公司时碰到的一个笔试题,当时自己云里雾里的胡写了一番,回头也曾思考过,最终没实现也就不了了之了. 昨天看到有网友说面试中也碰到过这个问题,我就重新思考了这个问题的实现方法. 对于想进大公 ...

  3. 对Thoughtworks的有趣笔试题实践

    记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...

  4. 从阿里巴巴笔试题看Java加载顺序

    一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...

  5. JAVA面试题

    在这里我将收录我面试过程中遇到的一些好玩的面试题目 第一个面试题:ABC问题,有三个线程,工作的内容分别是打印出"A""B""C",需要做的 ...

  6. C++常考面试题汇总

    c++面试题 一 用简洁的语言描述 c++ 在 c 语言的基础上开发的一种面向对象编程的语言: 应用广泛: 支持多种编程范式,面向对象编程,泛型编程,和过程化编程:广泛应用于系统开发,引擎开发:支持类 ...

  7. .NET面试题系列[4] - C# 基础知识(2)

    2 类型转换 面试出现频率:主要考察装箱和拆箱.对于有笔试题的场合也可能会考一些基本的类型转换是否合法. 重要程度:10/10 CLR最重要的特性之一就是类型安全性.在运行时,CLR总是知道一个对象是 ...

  8. 我们公司的ASP.NET 笔试题,你觉得难度如何

    本套试题共8个题,主要考察C#面向对象基础,SQL和ASP.NET MVC基础知识. 第1-3题会使用到一个枚举类,其定义如下: public enum QuestionType { Text = , ...

  9. 我设计的ASP.NET笔试题,你会多少呢

    本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...

  10. 猫哥网络编程系列:详解 BAT 面试题

    从产品上线前的接口开发和调试,到上线后的 bug 定位.性能优化,网络编程知识贯穿着一个互联网产品的整个生命周期.不论你是前后端的开发岗位,还是 SQA.运维等其他技术岗位,掌握网络编程知识均是岗位的 ...

随机推荐

  1. Linux vsftpd 安装配置使用

    1.安装 yum install vsftpd 2.配置 允许root登陆: /etc/vsftpd/user_list文件中把root那一行删除或者注释掉 /etc/vsftpd/ftpusers文 ...

  2. NOIP 2017 宝藏 - 动态规划

    题目传送门 传送门 题目大意 (家喻户晓的题目不需要题目大意) 设$f_{d, s}$表示当前树的深度为$d$,与第一个打通的点连通的点集为$s$. 每次转移的时候不考虑实际的深度,深度都当做$d$, ...

  3. 0x11栈之火车进栈

    参考<算法竞赛进阶指南>p.49 题目链接:https://www.acwing.com/problem/content/description/131/ 递推与递归的宏观描述 对于一个待 ...

  4. Java基础学习-基本数据类型变量的定义和使用

    注意:如果使用notepad++编码,在cmd控制台编译时报错(编码GBK的不可映射字符),可以参考如下链接进行设置:https://jingyan.baidu.com/article/e3c78d6 ...

  5. vue--mixins

    混入(mixins) 是一种分发Vue 组件中可复用功能的非常灵活的方式 mixins主要用在以下两个方面: 当做完一个项目,想好好放松的时候,突然有新需求 为了不污染完美的构造函数,在构造函数外面定 ...

  6. 修改Ubuntu锁屏快捷键

    修改为Win + L. 避免与Phpstorm中的代码格式化冲突.

  7. Django 应用程序 + 模型 + 基本数据访问

    如果你只是建造一个简单的web站点,那么可能你只需要一个app就可以了.如果是复杂的象 电子商务之类的Web站点,你可能需要把这些功能划分成不同的app,以便以后重用. 确实,你还可以不用创建app, ...

  8. How to view the DNS address assigned by DHCP

    nmcli connection show clear-corporate | grep IP4 IP4.ADDRESS[1]:                         101.8.112.9 ...

  9. Disable access to Windows Update

    Disable access to Windows Update If this policy setting is enabled, all Windows Update features are ...

  10. 多重线性回归 (multiple linear regression) | 变量选择 | 最佳模型 | 基本假设的诊断方法

    P133,这是第二次作业,考察多重线性回归.这个youtube频道真是精品,用R做统计.这里是R代码的总结. 连续变量和类别型变量总要分开讨论: 多重线性回归可以写成矩阵形式的一元一次回归:相当于把多 ...