作答奖分,快来看看某设备公司软件工程师笔试题!!

feyyee 2008-04-17 12:54:26

一,请写出BOOL,float,指针变量与“零值”比较的if语句
1.请写出BOOL flag与“零值”比较的if语句

2.请写出float x 与“零值”比较的if语句

3.请写出char *p与“零值”比较的if语句


二,以下为WINDOWNS下的C++程序,请填写sizeof的值
1.char str[]=”Hello”; sizeof(str)=
2.char *p=str; sizeof(p)=
3.nt n=10; sizeof(n)=
4.void func(char str[100])
{
……
}
则 sizeof(str)=
5.void *p=malloc(100)
则 sizeof(p)=

三,简答题
1.头文件中 ifdef/define/endif主要作用?
2.#include <filename.h> 和#include “filename.h”有什么区别?
3.const有什么作用(至少两条)
4.在C++调用被C编译器编译后的函数,为什么要加extern “C”声明?
5.请简述两个for语句的优缺点
for(i=0;i<N;i++)
{
if(condition)
Dosomething();
else
Dootherthing();
}
优点:
缺点:

if(condition)
{
for(i=0;i<N;i++)
Dosomething();
}
else
{
for(i=0;i<N;i++)
Dootherthing();
}
优点:
缺点:

四,读程序
1.void GetMemory(char *p)
{
p=(char *)malloc(100);
}

void Test(void)
{
char *str=NULL;
GetMemory(str);
strcpy(str,”Hello World”);
printf(str);
}

运行Test()会有什么样的结果

2.char *GetMenory(void)
{
char p[]=”Hello World”;
return p;
}

void Test(void)
{
char *str=NULL;
str= GetMenory();
printf(str);
}
运行Test()会有什么样的结果

3.void GetMemory2(char **p, int num)
{
*p=(char *)malloc(num);
}

void Test(void)
{
char *str=NULL;
GetMenory2(&str,100);
strcpy(str,”Hello”);
printf(str);
}
运行Test()会有什么样的结果

4.void Test(void)
{
char *str=(char *)malloc(num);
strcpy(str,”Hello”);
free(str);
if(str!=NULL)
{
strcpy(str,”World”);
printf(str);
}
}
运行Test()会有什么样的结果

五,编写strcpy函数
已知strcpy函数的原型是
char *strcpy(char *strDest, const char *strSrc)
其中strDest 是目的字符串,strSrc是源字符串
(1)不调用C/C++字符串库函数,请编写strcpy函数
(2)strcpy要把strSrc的内容复制到strDest, 为什么还要 char *类型 的返回值?

六,编写String的构造函数、析构函数和赋值函数
已知String类的原型为:
class String
{
public:
String(const char *str=NULL); //构造函数
String(const String &abcd); //拷贝构造函数
~String(void); //析构函数
String & operater=(const String &other); //赋值函数
private:
char *m_data; //用于保存字符串
}
请编写String 的上述四个函数
...全文
611 36 打赏 收藏 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
ender1000 2008-04-18
  • 打赏
  • 举报
回复
嗯 都是林锐高质量编程上面的
hangzhou_hammer 2008-04-18
  • 打赏
  • 举报
回复
up delphi
ptwcj 2008-04-17
  • 打赏
  • 举报
回复
mark

研究生复试也见过
asa5880 2008-04-17
  • 打赏
  • 举报
回复
感觉像苏州工业园区软件园某所谓美资的企业面试题........
feyyee 2008-04-17
  • 打赏
  • 举报
回复
谢谢大家踊跃参与~
ttlyfast 2008-04-17
  • 打赏
  • 举报
回复
垃圾题一套
出题人很懒
鉴定完毕
Ethan_yushui213 2008-04-17
  • 打赏
  • 举报
回复
一、
1、if(FLASE == flag)
2、if(x < 0.000001 && x > 0.000001)
3、if(p == NULL)
二、
1、6
2、4
3、4
4、4
5、4
三、
1、确保只被编译一次
2、#include <filename.h> 表示在系统目录及本目录下查找
#include "filename.h" 表示仅仅在本目录下查找
3、 a、利用const对变量修饰,使其值不被修改
b、利用const对函数参数及返回值修饰,防止传入/传出函数的值被修改
c、利用const对类成员函数进行修饰,则可以防止修改类中的数据成员
4、两种语言的编译方式不同。
5、 a、优点是可以减少for的循环次数,缩短时间
缺点是对于每个循环都要进行条件判断
b、与a相反
四、
1、子函数仅对临时变量p分配内存,而无法将其传出至str,导致str未分配内存就进行strcpy,内存溢出。
2、子函数返回后,p即被销毁,所以str未分配,最后输出不定。
3、程序最后输出“Hello”,但是造成内存泄露。
4、实际输出依据str指向的内存而定。
五、
(1) char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ )
NULL ;
return address ;
}
(2) 为了实现链式表达式。
六、
String::~String(void)
{
delete [] m_data;
}

String::String(const char *str)
{
if(str == NULL)
{
m_data = new char[1];
*m_data = '\0';
}
else
{
int length = strlen(str);
m_data = new char[length + 1];
strcpy(m_data, str);
}
}

String::String(const String &other)
{
int length = strlen(other.m_data);
m_data = new char[length + 1];
strcpy(m_data, other.m_data);
}

String& String::operate=(const String &other)
{
if(this == &other)
{
return *this;
}

delete [] m_data;
int length = strlen(other.m_data);
m_data = new char[length+1];
strcpy (m_data, other.m_data);
return *this;
}
greatws 2008-04-17
  • 打赏
  • 举报
回复
1.头文件中 ifdef/define/endif主要作用?
防止重定义
2.#include <filename.h> 和#include “filename.h”有什么区别?
#include <filename.h>是在编译器选项里预先设置的路径里找头文件
#include “filename.h”是在当前.c.cpp的文件路径里找filename.h

3.const有什么作用(至少两条)
1、常量,不可改变其值,2、放在函数后,表示这个函数不会修改类的成员变量

4.在C++调用被C编译器编译后的函数,为什么要加extern “C”声明?
因为C++编译器和C编译器是不相同的,编译同样一个函数生成的符号也是不相同的,加extern “C”通知编译器使用C的编译方式生成符号,否则在连接的时候就会有"无法解析的外部符号XXX"之类的错误,C编译器编译后的函数一定要用C的符号格式来调用,所以要加上extern “C”关键字
DoubleChee 2008-04-17
  • 打赏
  • 举报
回复
这个全是高质量c++上面的东东,发现很多公司的题目都是抄这上面的。
greatws 2008-04-17
  • 打赏
  • 举报
回复
1.char str[]=”Hello”; sizeof(str)= 6 //系统会加上'\0'所以占6个字节
2.char *p=str; sizeof(p)=4 //指针4个字节
3.int n=10; sizeof(n)=4 //int占4个字节
4.void func(char str[100])
{
……
}
则 sizeof(str)=4 //数组弱化为指针
5.void *p=malloc(100)
则 sizeof(p)=4 //指针占4个字节
wflishh 2008-04-17
  • 打赏
  • 举报
回复
class MyString
{
public:
MyString(const char *str = NULL);//默认构造函数
MyString(const MyString &other);//拷贝构造函数
~MyString();//析构函数
MyString &operator = (const MyString &other);//重载赋值运算符
private:
char *m_data;
};


//MyString::MyString(const char *str = NULL)
MyString::MyString(const char *str)
{
int len;
if (str == NULL)//如果为NULL,
{
m_data = '\0';
}
len = strlen(str);
m_data = new char(len+1);//分配空间
strcpy(m_data,str); //赋值
}


MyString::MyString(const MyString &other)//拷贝构造函数
{
m_data = new char(strlen(other.m_data) + 1);
if (other.m_data)
{
strcpy(m_data,other.m_data);
}
}


MyString::~MyString()
{
if (m_data)
{
delete []m_data;
m_data = 0;
}
}

MyString &MyString::operator = (const MyString &other)
{
if (m_data)
{
delete[] m_data;
m_data = 0;
}
m_data = new char(strlen(other.m_data) + 1);
if (other.m_data)
{
strcpy(m_data,other.m_data);
}
return *this;
}
zdblzwj 2008-04-17
  • 打赏
  • 举报
回复
学习一下!
pengys 2008-04-17
  • 打赏
  • 举报
回复
常看到这份题
wflishh 2008-04-17
  • 打赏
  • 举报
回复
4.void func(char str[100])
{
……
}
则 sizeof(str)=4
5.void *p=malloc(100)
则 sizeof(p)=4
zihui0625 2008-04-17
  • 打赏
  • 举报
回复
13楼的 错的不少,不说了 ,大家验证一下咯
bukkake 2008-04-17
  • 打赏
  • 举报
回复
4.void func(char str[100])
{
……
}
则 sizeof(str)=
应该是4吧,数组作为函数型参,就退化为指针了
zihui0625 2008-04-17
  • 打赏
  • 举报
回复
13楼的 sizeof(p)明显等于4嘛,是个指针。我还以为自己弄错了,经过VC6检验 = 4;

答案最好在验证后再发出来,不要误导新学员。
ke2007lin 2008-04-17
  • 打赏
  • 举报
回复
晕倒,怎么看着那么熟悉呢?

好像是有那么一家叫做MingRen电子词典公司也用过这套题目
tiger波波 2008-04-17
  • 打赏
  • 举报
回复
高质量C/C++编程

到现在还全部照搬的不多了
lllanm 2008-04-17
  • 打赏
  • 举报
回复
做了这么久的变程 感觉基础在做程序的构成中只占很小的一部分, 最重要的是 算法 + 逻辑抽象
这里很多的内容我可能永远也用不到 等我用到的时候我可能会发很多时间去学习和测试,
加载更多回复(16)
【变分多谐波对偶模式追踪】从噪声信号中提取重复瞬态分量的方法(Matlab代码实现)内容概要:本文介绍了“变分多谐波对偶模式追踪”这一信号处理方法,旨在从含有噪声的信号中有效提取重复出现的瞬态成分。该方法结合了变分模态分解与多谐波分析的优势,通过构建对偶模式追踪模型,实现了对微弱瞬态特征的精准分离与增强,特别适用于机械故障诊断、生物医学信号处理等领域。文中详细阐述了算法原理、数学模型构建及其实现步骤,并提供了基于Matlab的代码实现,便于读者复现与应用。; 适合人群:具备一定信号处理基础,从事机械故障诊断、生物医学工程或相关领域的研究生及科研人员。; 使用场景及目标:①从强噪声背景中提取机械设备的周期性冲击信号以进行故障预警;②分析生物医学信号中的重复生理事件,如心电图或脑电图中的特定波形;③为需要高精度瞬态特征提取的研究提供可靠的算法支持与实现范例。; 阅读建议:此资源以Matlab代码实现为核心,不仅展示了算法的具体编程细节,还强调了理论与实践的紧密结合。学习者应在理解算法原理的基础上,动手运行并调试所提供的代码,通过改变参数观察结果变化,从而深入掌握该方法的应用技巧与优化策略。
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究(Matlab代码实现)内容概要:本文研究了非线性值迭代自适应动态规划(ADP)方法,旨在解决离散时间非线性系统的最优控制问题。通过构建近似动态规划框架,结合值迭代算法,利用函数逼近器(如神经网络)对系统代价函数进行学习与优化,逐步逼近最优控制策略。文中详细阐述了算法的数学推导、收敛性分析及其实现流程,并以典型非线性系统为例,采用Matlab进行仿真验证,展示了该方法在处理复杂非线性系统优化控制方面的有效性与优越性。; 适合人群:具备自动控制理论、最优化方法及Matlab编程基础的研究生、科研人员以及从事智能控制、工业自动化等相关领域的工程技术人员。; 使用场景及目标:①研究和解决离散时间非线性系统的最优控制问题;②学习和掌握自适应动态规划(ADP)及值迭代算法的核心思想与实现技巧;③利用Matlab进行先进控制算法的仿真与验证,为复杂系统控制设计提供理论依据和技术支持。; 阅读建议:此资源侧重于理论与实践的结合,建议读者在学习过程中,不仅关注算法的数学推导,更要动手实践Matlab代码,通过调整参数、更换被控对象等方式加深理解,并尝试将其应用于其他类型的非线性系统控制问题中。
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 **CCS仿真技术详解** **一、CCS概述** CCS,即Code Composer Studio,是由德州仪器(TI)研发的一款功能全面的集成开发平台,主要应用于基于TI微控制器及数字信号处理器(DSP)的相关项目开发。该平台整合了源代码编写工具、编译系统、调试系统以及项目管理系统,为开发者构建了一个高效且便利的开发环境。 **二、CCS的安装流程与设置** 在展开CCS的仿真实验之前,首要任务是获取并安装CCS软件。安装时,务必选取与目标硬件设备相适配的版本,并严格依照官方发布的安装步骤进行。安装结束后,需对工作区域和设备库进行设定,以确保目标硬件能够被准确识别并顺利连接。 **三、新项目的构建** 在CCS环境中,启动仿真任务的第一步是创建新项目。通过点击"File"菜单下的"New"再选择"CCS Project",随后根据引导界面提示选择合适的设备型号、项目类别(例如空白项目或预设模板项目),并确定项目名称及其存储位置。 **四、源代码的编写** 利用内置的文本处理工具进行源代码的编写工作,该工具支持C语言和C++语言。在代码中,可以定义变量、编写函数,并实现控制逻辑等操作。在编写过程中,需注意遵循编程准则,以提升代码的可理解性和可维护性。 **五、编译过程与链接操作** 代码编写完毕后,必须执行编译和链接操作。通过点击"Build"菜单中的"Build Project",CCS将自动进行语法验证、编译处理以及链接工作,最终生成可执行的程序文件。若存在错误或警示信息,CCS会提供详细的反馈,协助开发者定位并解决问题。 **六、仿真参数的设定** 在项目属性设置中...

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧