1、2011 年春江苏计算机二级 VC+上机 1 及答案解析(总分:40.00,做题时间:70 分钟)1.改错题(20 分) 【题目】 以下程序的功能是:判断一个已排序的整型数组中是否存在元素值与其下标值相等(下标从 0 开始)的元素。如果存在,则输出其中一个该类元素的值(可能存在多个满足条件的元素) 正确程序的输出如下: 第 3 个元素值与其下标值相等 含有错误的源程序如下: #include int index_search(int xn,int n) int first=0; int last=n-1; int middle,index; index=-1; while(firstmiddl
2、e) last=middle-1; else first=middle+1; return index; void main() int a=-1,0,1,3,8; int result=index_search(a,sizeof(a); if(result=-1) coutmiddle) last=middle-1; else first=middle+1; return index; void main() int a=-1,0,1,3,8; int result=index_search(a,sizeof(a); if(result=-1) cout=0 或 result)解析:2.编程
3、题(20 分) 【题目】 试定义一个时间类 time,具体要求如下: (1)私有数据成员。 ?int h,m,s:分别表示时、分和秒。 ?char *str_t:存放时间的字符串,格式为“hh:mm:ss“,即“时:分:秒“。 (2)公有成员函数。 ?time(int hh=0,int mm=0,int ss=0):构造函数,利用参数 hh、mm 和 ss 分别初始化成员 h、m 和s,并为字符串 str_t 分配 9 个字节的动态存储空间。要检查参数 hh、mm 和 ss 的合法性,即0hh=0 *str_t=/0: convert(); void time:convert() char *tmp; tmp=itoa(h); strcat(str t,tmp); strcat(str_t,“:“); tmp=itoa(m); strcat(str_t,tmp); strcat(str_t,“:“); tmp=itoa(s); strcat(str_t,tmp); delete tmp; void main() time t1; t1.convert(); t1.print(); t1.set_t(11,5,30); t1.print(); )解析: