一、请填写BOOL, float, 指针变量 与 “零值”比较的if语句。(10分)
请写出BOOL flag 与 "零值"比较的if语句:
请写出float x 与 "零值"比较的if语句:
请写出char *p 与 "零值"比较的if语句:
二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)
char str[] = "Hello";
char *p = str;
int n = 10;
请计算:
sizeof(str) =
sizeof(p) =
sizeof(n) =
void Func(char str[100])
{
请计算
sizeof(str) =
}
void *p = malloc(100)
请计算
sizeof(p) =
三、简答题(25分)
1 头文件中的ifndef/define/endif
作什么用?
2 #include <filename.h>
和#include "filename.h
有什么区别
3 const有什么用途(请至少说明两种)
4 请简述以下两个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();
}
四、有关内存的思考题(20分)
第一道
void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}
请问运行Test函数会有什么样的结果?
第二道
char *GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
请问运行Test函数会有什么样的结果?
五、编写strcpy函数(10分)
已知strcpy函数的原型是:char *strcpy(char *strDest, const char *strSrc)
其中strDest是目的字符串,strSrc是源字符串
1 不调用C/c++字符串库函数,编写出strcpy函数
2 strcpy能把strSrc的内容复制到strDest, 为什么还要char *类型的返回值?