首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-03-25 
一份C/C++实习生笔试试卷(基础部分),大家讨论一下答案吧!一、基础知识1、 下面几个是在编程领域里经常使用的

一份C/C++实习生笔试试卷(基础部分),大家讨论一下答案吧!
一、基础知识
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 
ppTrack 
hhModule 
szszText 
dwdwMsg 

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函数的结果如何?你觉得该段代码是否存在什么问题?


[解决办法]
一、基础知识 
1、 下面几个是在编程领域里经常使用的缩写,请写出他们的英文全写,并翻译成中文。注意是编程领域. 
(1) OS Operator System
(2) VS Visual Studio ?
(3) MS Microsoft
(4) CS Client/Server ?
(5) RTOS Real Time Operator System
(6) SDK Software Development Kits
(7) IDE Integrated Development Environment

2、 下列几个C语言表达式是否正确?如果正确,写出它们表达的意思: 
(1) a&b 位与
(2) a&(&b) 
(3) a&&b 逻辑并 
(4) a**b = a * (*b) 

3、 在编程风格中,一般都要强调使用匈牙利命名法,下面是匈牙利命名法中一些公认的前缀,并给出变量名的例子,请写出它们所代表的变量类型: 
前缀变量名描述前缀的意义 
g_g_Lock全量变量
m_m_Num成员变量
ppTrack指针
hhModule句柄
szszText字符串
dwdwMsg双字

4、头文件中ifndef / define / endif 是做什么用的? 
避免重复引入

5、代码里有时可以看到extern “C”, 这语句是做什么用的? 
C风格的代码

6、软件开发中说的check out, check in是什么意思? 
源代码管理系统的签入,签出

7、C语言函数前面加static,和C++类的成员函数前面加static,两者的意义有何区别? 
C的static是限制函数的为编译单元内部使用
C++类的static使函数成为类成员,而不是实例成员。

8、简单描述一下WIN32上 .c / .cpp / .rc / .obj / .res / .lib / .dll / .exe这几个后缀所表示的文件类型,以及他们之间的相互生成关系。如果你是LINUX程序员,前面这个问题答不上,那么请描述一下GCC编译的几个步骤和中间生成文件。 

.c: C代码
.cpp: C++代码
.obj:目标代码(由.c或.cpp编译后产生)

.rc:资源文件
.res:编译后的十进制资源(由.rc编译后产生)

.exe:可执行程序
.dll:动态链接库
他们由.obj链接生成。



二、简单代码 
1、 
char* GetMemory(void) 

char p[] = “Welcome to AMOI”; 
return p; 

void main(void) 

char* str = NULL; 
str = GetMemory(); 
printf(str); 

运行main函数的结果如何?你觉得该段代码是否存在什么问题? 
const char* const GetMemory(void)

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函数的结果如何?你觉得该段代码是否存在什么问题? 
内存泄漏

热点排行