考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > C++语言程序设计 > C++模拟试题 > 文章内容
  

全国计算机二级考试C++语言程序设计上机考试试题及答案(9)

中华IT学院   【 】  [ 2017年6月29日 ]

  考试试题答案与解析

  一、程序改错题

  (1)应改为“intmax(int&a,int&b)”。

  (2)应改为“max(m,n);”。

  【解析】

  由题分析可知,max函数采用传送引用的方式来传递参数,因此第1处的语句应该为“intmax(int&a,int&b)”。调用max时,传递引用时直接使用变量名即可,第2处的语句应改为“max(m,n)”。

  二、简单应用题

  inti,j,k,t;

  for(i=0;i(n-1;i++)

  {

  for(k=i,j=i+1;j  if(A[k]  交换

  k=j;

  if(k!=i)//交换

  {

  t=AEi3;

  A[i]=A[k];

  A[k]=t;

  }

  【解析】以数组“A[]={3,8,7,6,5,0,1,2,9,4},,为例来说明具体的排序过程,第一次选择:第一步,从A[0]-A[9]中找最大值max及下标k,max=9,k=8;第二步,交换a[0]与最大值a[8]的值;第一次结束后a[0]已存放了最大值,下一次比较就不必再经过它了,而从a[1]开始,如此循环。从例中可以看出10个元素要进行9次比较,n个元素要进行n-1次比较。设置两层循环,外层循环变量i从0到n-1,内层循环变量从i开始到n-1,在内层循环中找最大值,如果最大值的下标k和i不同,则交换,实现选择法排序。在内层循环体内,如果最大值的下标k和i不同,则用一个临时变量记录第i个元素,然后将第k个元素赋值给第i个元素,临时变量值赋给第k个元素,如此完成两个元素的交换。

  三、综合应用题

  (1)应添加“#defineTRUE1”。

  (2)应添加“classA1;”。

  (3)应添加“friendboolfunc(A2&objl,Al&obj2);”。

  (4)将“retllin”补充完整为“returnobjl.m_A2==TRUE&&obj2.m_A1==TRUE;”。

  【解析】#define命令一般用一个指定的标识符(即宏

  名)来代表一个字符串,其定义形式一般为“#define宏名(参数表)字符串”,因此第1处应添加“#defineTRUEl”。类声明格式为“class<类名>;”,故第2处应添加“class

  A1;”。友元不是本类的成员函数,在它的函数体内可以通过对象名来访问类的私有成员和保护成员。友元函数是在类声明中由关键字friend修饰的非成员函数,第3处应添加“friendboolfune(A2&objl,Al&obj2);”。函数func返回变量m_A2和m_A1的逻辑与运算结果,因此第4处的语句应改为“returnobj1.m_A2==TRUE&&obj2.m_A1==TRUE;”。

首页 1 2 3 尾页
分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved