首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 计算机等级考试 > 计算机二级 > C加加 > 复习资料 > 正文

计算机等级考试二级C++练习题(2)及解答

来源:考试吧Exam8.com) 2007-7-27 18:25:15 考试吧:中国教育培训第一门户 模拟考场

一,编程题答案

1.         程序为

int CalcCapital (char *str)

{

   if (str == NULL)  return 0;  //判断字符指针是否为空

 

  int num_of_Capital = 0;    //记录大写字母字符个数的变量,初值为0

 

   for(int i=0; str[i] != 0x0; i++)

     if (str[i] <= 'A' && str[i] >= 'Z') num_of_ Capital ++; //若是大写字母,则总数加1

 

   return num_of_ Capital;    //返回大写字母字符数

}

 

2.程序为:

float sum(int n)

{

          if (n == 1)  return 1;

          else  return sum(n-1) -(1.0/n)*(-1)n;

}

 

3.程序为

Node * insNode(Node * head,  int newValue)

{

      

           Node  * newNode = new Node;  //申请新的节点空间

         if (newNode == NULL)         return NULL;//

 

           newNode->data = newValue;  //填充新节点的内容

         newNode->next = NULL;

 

           Node *pre, *cur;

  Pre = head

 

  if (head == NULL) head = newNode; //插入到空链表的表头

         else

    if(newValue>=head->Value){

      newNode->next=head;

      head = newNode; //插入到链表的表头

    }

           else{                              //在链表寻找插入点

      Node *cur,*pre = head;

      while(pre->next != NULL){

    cur = pre->next;

               if(newValue >= cur->Value) break;

        else pre = cur;

      }

             if(pre->next!= NULL) newNode->next = cur;//若非末尾,则有下一节点

             pre->next = newNode; //将新节点插入

}      

      }

       return head;

}

 

4.程序可以有多种写法,下面是其中一种

 

char MinCode(char charAry[],int len=10)

{

    char mixCode = 0x0;

    for(int i=0; i <len; i++)

    {

           if (charAry [i] < mixCode)

               mixCode = str[i];

    }

    return mixCode;

}

 

二、理解问答题:

问题1,答

(A)        bottom (NULL)

(B)         top == NULL;

(C)        ptop = top;

(D)        pNew->nextItem = top;

(E)         top = pNew;

 

问题2,:不正确。因为类StackItem模板类的定义中用到了模板类Stack Stack还没有定义,所以,必须先声明Stack是一个模板类,否则,编译程序就不知道标识符Stack代表什么样的含义,无法进行编译。

 

问题3,:第112647行的const修饰的都是函数的参数,表示在这个函数体中不能改它所修饰的参数的值。第27行的const修饰的是模板类Stack的成员函数is_empty(),它表示在函数is_empty()的函数体中不能改变任何数据成员的值。

 

问题4,:析构函数中主要是释放存放的各个节点所占涌空间。因为Stack对象在其生存期间可能加入了很多节点,从堆中申请了一些内存空间。这些空间应随着对象的消亡而释放掉,所以,需要在析构函数中释放这些空间。

 

问题5,

语句号

1

2

3

4

5

/

文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。