江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试上机试卷(2011 年秋)
二级 VC+十语言(试卷代号VC01)
(本试卷完成时间70分钟)
一、改错题(20分)
【题目】以下程序的功能是:求100以内所有可以表示为连续素数之和的素数。素数i和 j(i<j)为连续素数是指不存在素数k使得i 正确程序的输出结果如下(共11个素数满足条件): 小于100的素数中满足条件的素数为: 5=2+3 …… 83=11+!3+17+19+23 97=29+31+37 含有错误的源程序如下: #include { for(int i=2;i int fun(int i,int &j,int &k) { int sum; j=k=0; while(kprimes[i]){ j++; k++; sum=0; } else if(sum void main() { int i,j,low,high,count=0; for(i=2;i<100;i++){ if(!isPrime(i)) primes[count++]=i; } for(i=0;i cout<<\小于100的素数中满足条件的素数为:\ for(i=0;i cout< cout< 【要求】 1.打开T盘中myfa1.txt文件,将其文本拷贝到文件myfa.cpp中(或把上述程序录入到myfa.cpp中),根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可以不输入。 2.改错时,可以修改语句中的一部分内容,增加少量的变量说明、函数原型说明或编 译预处理命令,但不能增加其他语句,也不能删除整条语句。 3.改正后的源程序文件myfa.cpp必须放在T盘根目录下,供阅卷用。 二、编程题(20分) 【题目】试定义一个类ID,实现根据某人的身份证号码判定其在所指定年份时的虚岁年龄(即年份之差加1)。具体要求如下: (1)私有数据成员 char id[19];存放身份证号码,身份证号为18位。 int age;根据身份证号码和指定年份计算后得到的虚岁年龄。 (2)公有成员函数 ID(char *p);构造函数,利用参数p初始化身份证号码。 int substr( char *p0,int n0,int n);取字符串p0中从第n0个字符开始的连续 n个字符(假设都是数字字符)。并按顺序转换为相应的整数值,结果作为函数的返回值。 void fun(int y1);计算相对某个年份y1,该身份证号码主人的虚岁年龄。对于18位身份证,从第七位(序号从1开始)开始的四位数字为其出生年份。 void print();打印身份证号码及其年龄。 (3)在主程序中对该类进行测试。 输入/输出示例(下划线部分为键盘输入): 请输入指定年份和身份证号码:2011 32062119910522831X 指定年份:2011 身份证号:3206211990522831X 虚岁年龄:21 【要求】 源程序文件名必须为myfb.cpp,并放在T盘根目录下,供阅卷用。 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试上机试卷(2011 年秋) 二级 VC+十语言(试卷代号VC02) (本试卷完成时间70分钟) 一、改错题(20分) 【题目】以下程序的功能是:求一个字符串中最长平台的长度及对应的最长平台。一个字符串中的最长平台是指该字符串中连续出现的相同字符构成的最长子串。 正确程序的输入/输出结果如下(下划线部分为键盘输入) 输入字符串:aabbbccccdd 该字符串的最长平台的长度为:4 该字符串的最长平台为:cccc 含有错误的源程序如下: #include void process(char *str,int &maxlen,char *subs) { char *ptr=str,c; int len; maxlen=0; while(*ptr){ len=0; while(*ptr==*(ptr+1)){ len++;ptr++; } if(len>maxlen){ maxlen=len; c=ptr; } ptr++; } for(int i=0;i void main() { char *text,subt[100]; int len; text=new char[100]; cout<<\输入字符串:\ cin.getline(text,100); process(text,&len,subt); cout<<\该字符串的最长平台的长度为:\ cout<<\该字符串的最长平台为:\ delete []text; } 【要求】 1.打开T盘中myfa2.txt文件,将其文本拷贝到文件myfa.cpp中(或把上述程序录入到myfa.cpp中),根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可以不输入。 2.改错时,可以修改语句中的一部分内容,增加少量的变量说明、函数原型说明或编译预处理命令,但不能增加其他语句,也不能删除整条语句。 3.改正后的源程序文件myfa.cpp必须放在T盘根目录下,供阅卷用。 二、编程题(20分) 【题目】试定义一个类NUM,实现对于给定的任意整数,求出其降序数。一个整数的降序数是指将该整数的各位数字从左到右降序排列所形成的新整数。例如,整数82319的降序数是98321。具体要求如下: (1)私有数据成员 int n;存放一个整数。 int m;存放 n的降序数。 (2)公有成员函数 NUM(int x);构造函数,用参数 x初始化数据成员 n。 void decrease();求数据成员 n的降序数,并存放到数据成员 m中。算法提示:将整数的各位数字依次存储到一维整型数组a中,再将数组a中的元素按降序排序,最后用数组a中的元素组合成整数。 void print();按输入/输出示例格式输出原整数及其降序数。 (3)在主程序中对该类进行测试。 输入/输出示例(带下划线部分为键盘输入): 输入一个正整数:431252 该数的降序数为:543221 【要求】 源程序文件名必须为myfb.cpp,并放在T盘根目录下,供阅卷用。 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试上机试卷(2011 年秋) 二级 VC+十语言(试卷代号VC03) (本试卷完成时间70分钟) 一、改错题(20分) 【题目】以下程序中,函数 countStr(char *str, char * substr)的功能是:统计字符串 substr(子串)在另一个字符串str(主串)中出现的次数,并将结果返回。 正确程序的输入/输出结果如下(下划线部分为键盘输入): 输人主串:abababab 输入子串:aba 子串在主串中出现的次数为:3 含有错误的源程序如下:
相关推荐: