51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2438|回复: 3
打印 上一主题 下一主题

[原创] C++/C编程质量试题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-4-15 22:23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)
 
  提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为:
  if ( n == 0 )
  if ( n != 0 )
  以此类推。
  请写出 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、在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();
  }
四、有关内存的思考题(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函数会有什么样的结果?
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函数会有什么样的结果?
void Test(void)
{
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL)
  {
  strcpy(str, “world”);
  printf(str);
  }
}

  请问运行Test函数会有什么样的结果?
五、编写strcpy函数(10分)
 
  已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc);
 
  其中strDest是目的字符串,strSrc是源字符串。
 
  (1)不调用C++/C的字符串库函数,请编写函数 strcpy
 
  (2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
 
  六、编写类String的构造函数、析构函数和赋值函数(25分)
 
  已知类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个函数。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-4-15 22:23:53 | 只看该作者
(1)如果你只得了几十分,请不要声张,也不要太难过。编程质量差往往是由于不良习惯造成的,与人的智力、能力没有多大关系,还是有药可救的。成绩越差,可以进步的空间就越大,中国不就是在落后中赶超发达资本主义国家吗?只要你能下决心改掉不良的编程习惯,第二次考试就能及格了。

(2)如果你考及格了,表明你的技术基础不错,希望你能虚心学习、不断进步。

(3)如果你考出85分以上的好成绩,你有义务和资格为你所在的团队作“C++/C编程”培训。希望你能和我们多多交流、相互促进。

(4)如果你在没有任何提示的情况下考了满分,希望你能收我做你的徒弟。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-4-16 09:00:40 | 只看该作者

回复 2# 的帖子

这个不是林锐写的C++编程质量里面的东西吗
建议楼主加一个链接或直接贴出来啊
那本书的确不错,内容不多,但很实用
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-4-16 20:12:36 | 只看该作者

回复 1# 的帖子

帖子的字太大了。。。。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-15 08:42 , Processed in 0.081023 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表