一份C/C++实习生笔试试卷(基础部分),大家讨论一下答案吧!

oopDesigner 2009-02-11 04:06:21
加精
一、基础知识
1、 下面几个是在编程领域里经常使用的缩写,请写出他们的英文全写,并翻译成中文。注意是编程领域.
(1) OS
(2) VS
(3) MS
(4) CS
(5) RTOS
(6) SDK
(7) IDE
2、 下列几个C语言表达式是否正确?如果正确,写出它们表达的意思:
(1) a&b
(2) a&(&b)
(3) a&&b
(4) a**b
3、 在编程风格中,一般都要强调使用匈牙利命名法,下面是匈牙利命名法中一些公认的前缀,并给出变量名的例子,请写出它们所代表的变量类型:
前缀 变量名 描述前缀的意义
g_ g_Lock
m_ m_Num
p pTrack
h hModule
sz szText
dw dwMsg

4、头文件中ifndef / define / endif 是做什么用的?
5、代码里有时可以看到extern “C”, 这语句是做什么用的?
6、软件开发中说的check out, check in是什么意思?
7、C语言函数前面加static,和C++类的成员函数前面加static,两者的意义有何区别?
8、简单描述一下WIN32上 .c / .cpp / .rc / .obj / .res / .lib / .dll / .exe这几个后缀所表示的文件类型,以及他们之间的相互生成关系。如果你是LINUX程序员,前面这个问题答不上,那么请描述一下GCC编译的几个步骤和中间生成文件。

二、简单代码
1、
char* GetMemory(void)
{
char p[] = “Welcome to AMOI”;
return p;
}
void main(void)
{
char* str = NULL;
str = GetMemory();
printf(str);
}
运行main函数的结果如何?你觉得该段代码是否存在什么问题?

2、
void GetMemory(char** p, int len)
{
*p = (char*)malloc(len);
}
void main(void)
{
char* str;
GetMemory(&str, 100);
strcpy(str, “Hello World”);
printf(str);
}
运行main函数的结果如何?你觉得该段代码是否存在什么问题?
...全文
21270 383 打赏 收藏 转发到动态 举报
写回复
用AI写文章
383 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ahh_Freshmeat 2012-11-01
  • 打赏
  • 举报
回复
CS follow me, negative. I am dangerous.
cvanchen 2012-10-17
  • 打赏
  • 举报
回复
哪个公司考这么细的,晕?
qin_pp 2012-10-13
  • 打赏
  • 举报
回复
但是调试过程中会发现,其实str在调试过程中得到“Welcome to AMOI”地址,在执行printf函数时发生了错误。
qin_pp 2012-10-13
  • 打赏
  • 举报
回复
char* GetMemory(void)
{
char p[] = “Welcome to AMOI”;
return p;
}
void main(void)
{
char* str = NULL;
str = GetMemory();
printf(str);
}
运行main函数的结果如何?你觉得该段代码是否存在什么问题?
试着在C++环境下运行了,但是什么也没有得到,只是DOS输出一个纵向双箭头“《-》”的标记,也尝试着给
str分配了空间,结果没有变化哎
Justin881216 2012-09-04
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]

(1) OS operating system
(2) VS I VS You!
(3) MS you, MS a SB.
(4) CS follow me, negative. I am dangerous.
(5) RTOS 囧
(6) SDK Software Deve……
[/Quote]

rc
---------
Resource Script....

you are a very NB man/woman ...
wzb56 2012-08-20
  • 打赏
  • 举报
回复

二、简单代码
1、
char* GetMemory(void)
{
char p[] = “Welcome to AMOI”;
return p;
}
void main(void)
{
char* str = NULL;
str = GetMemory();
printf(str);
}

运行main函数的结果如何?你觉得该段代码是否存在什么问题?
比较幸运的话,应该能打印一串乱码;
问题:函数中的局部变量(包括数组)分配在栈上,随着函数调用被分配,随着调用的结束被回收!
函数返回一个已经被回收空间地址,就是传说中的野指针。

2、
void GetMemory(char** p, int len)
{
*p = (char*)malloc(len);
}
void main(void)
{
char* str;
GetMemory(&str, 100);
strcpy(str, “Hello World”);
printf(str);
}

运行main函数的结果如何?你觉得该段代码是否存在什么问题?
可能能够打印Hello World

程序可能存在:
<1> malloc: 分配有可能失败!
<2> malloc若分配成功,应该free(),:堆上分配的空间,应该手工free。即malloc、free配对原则。而且 free后将指针之空。 否则内存泄露。


使用malloc分配地址空间ptr前,首先判断是否为NULL,
if(ptr != NULL) {
do something with ptr!
}


最后释放:
if(NULL != ptr){
free(ptr);
ptr = NULL;
}

<3> 应该使用更为安全的 strncpy()函数,而不是strcpy(),相信记得puts()导致互联网蠕虫病毒吧。
a2175919 2012-07-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
一、基础知识
1、 下面几个是在编程领域里经常使用的缩写,请写出他们的英文全写,并翻译成中文。注意是编程领域.
(1) OS Operator System
(2) VS Visual Studio ?
(3) MS Microsoft
(4) CS Client/Server ?
(5) RTOS Real Time Operator System
(6) SDK Softwa……
[/Quote]

强!.
ksbyl2007 2012-07-11
  • 打赏
  • 举报
回复
找工作经常笔试这些题目。。蛋疼。。
N0bug 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
一、基础知识
1、 下面几个是在编程领域里经常使用的缩写,请写出他们的英文全写,并翻译成中文。注意是编程领域.
(1) OS
(2) VS
(3) MS
(4) CS
(5) RTOS
(6) SDK
(7) IDE
2、 下列几个C语言表达式是否正确?如果正确,写出它们表达的意思:
(1) a&b
(2) a&(&b)
(3) a&&a……
[/Quote]
看到void main 我就笑了
a514310835 2012-05-20
  • 打赏
  • 举报
回复
真心学习下啊 膜拜
lh1342988550 2012-05-19
  • 打赏
  • 举报
回复
我突然想怆死去...~~~~(>_<)~~~~
liuwons 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 的回复:]

(1) OS ooops! 很惊讶,这个都不知道啊。
(2) VS versus 对立,比如中国队VS巴西队
(3) MS MAO SHI 貌似,80后语言的一种。
(4) CS counter strike, 网络游戏,反恐精英。
(5) RTOS 如题,Out Stupid
(6) SD……
[/Quote]淫才
Captain_Jack 2012-04-18
  • 打赏
  • 举报
回复
受益匪浅啊!
李荣强 2012-04-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

char* GetMemory(void)
{
char p[] = “Welcome to AMOI”;
return p;
}
void main(void)
{
char* str = NULL;
str = GetMemory();
printf(str);
}

输出结果乱码
[/Quote]这是因为返回了一个局部变量
klel 2012-03-24
  • 打赏
  • 举报
回复
学习了原来printf(char*)也是可以的,不过编译器会有警告的
sevenkplus_ 2012-03-18
  • 打赏
  • 举报
回复
我想什么都不会输出吧.[Quote=引用 9 楼 waizqfor 的回复:]

C/C++ code

1、
char* GetMemory(void)
{
char p[] = “Welcome to AMOI”;
return p;
}
void main(void)
{
char* str = NULL;
str = GetMemory();
printf(str);
}
运行main函数的结果如何?你……
[/Quote]
鱼C缸 2011-12-19
  • 打赏
  • 举报
回复
有些会 有些不会。
arkhe 2011-12-17
  • 打赏
  • 举报
回复
MARK.

16楼太神了。。

对第一段程序的修改,太敬仰了。。
yxy_55 2011-12-05
  • 打赏
  • 举报
回复
头文件中ifndef / define / endif 是做什么用的?
是为了避免重复定义。
代码里有时可以看到extern “C”, 这语句是做什么用的?
如果你在一个文件里面定义了一个函数或者变量要在另一个文件里面使用则要使用这句话,这样这个文件就会去搜索这个变量,有时用于C语言和C++的链接!
软件开发中说的check out, check in是什么意思?
就是在比较大的项目中,为了避免代码覆盖问题,设计了树形结点,将一大份分成很多TCL,将改动的代码check out,这时别人就不能对代码改动,等你改完了,再check in回到结点上,别人再check out就可以再进行改动了,这样就可以避免了代码覆盖
C语言函数前面加static,和C++类的成员函数前面加static,两者的意义有何区别?
基本没有什么区别,C++是面向对象的,C是面向过程的,所以C++调用函数要定义对象,也可以直接调用函数,但是C就不是这样了!
CST08055 2011-11-30
  • 打赏
  • 举报
回复
这个公司是:夏新电子原名厦门厦新电子股份有限公司(英语:Amoisonic),成立于1997年5月23日,是厦门市第一家中外合资企业。同年6月4日,其股票在上海证券交易所挂牌上市。2003年7月26日,企业宣布更名为夏新电子股份有限公司。
加载更多回复(343)

69,395

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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