C/C++编程试题

    |     2007年4月20日   |   技术   |     0 条评论   |    149

要求:用c或者c++写出下列程序.
1.写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中a的值
int a = 4;
(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);

a = ?

2.某32位系统下, C++程序,请计算sizeof 的值
1.
char str[] = “www.ibegroup.com”
char *p = str ;
int n = 10;
请计算[separator]
sizeof (str ) =
sizeof ( p ) =
sizeof ( n ) =
2.
void Foo ( char str[100])
{
请计算
sizeof( str ) =
}
3.
void *p = malloc( 100 );
请计算
sizeof ( p ) =

3. int 变量 n 与“零值”比较的 if 语句为:if ( n = = 0 ) 或者 if ( n != 0 )
以此类推。
1.请写出 BOOL flag 与“零值”比较的 if 语句:
2.请写出 float x 与“零值”比较的 if 语句:
3.请写出 char *p 与“零值”比较的 if 语句:

4. 回答下面的问题.
1.头文件中的 ifndef/define/endif 干什么用?预处理
2. #include 和 #include “filename.h” 有什么区别?
3.在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明?
4. switch()中不允许的数据类型是?
5. 回答下面的问题
1.Void GetMemory2(char **p, int num)
{
*p = (char *)malloc(num);
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, “hello”);
printf(str);
}
请问运行Test 函数会有什么样的结果?
2. void Test(void)
{
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL)
{
strcpy(str, “world”);
printf(str);
}
}
请问运行Test 函数会有什么样的结果?
3. char *GetMemory(void)
{
char p[] = “hello world”;
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
请问运行Test 函数会有什么样的结果?

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

7. 编写类String 的构造函数、析构函数和赋值函数
已知类String 的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String 的上述4 个函数。

回复 取消