ImageVerifierCode 换一换
格式:DOC , 页数:36 ,大小:49KB ,
资源ID:1691674      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1691674.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(编程题复习要点.doc)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

编程题复习要点.doc

1、编程题复习方法: 做编程题时,先别着急动手,一定认真把题意理解清楚,在纸上写出解题方法和关键语句(用到什么算法),最后按照输入数据-〉处理数据-〉输出数据的流程实现主程序和相关函数。(按步骤给分,人工阅卷)编写程序时一定要注意格式,要有缩进或退格。 1、 定义类的框架 2、 成员函数的实现 3、 在主函数中测试类 具体实现的公式: class 类名{ private: 私有数据成员; public: 数据成员; 成员函数;(构造函数和析构函数) }; 类名::类名(){ //构造函数 } 成员函数的个数与类中的个数相同,函数名前加类名::

2、void main(){ 类名 对象名( 参数 );//是否带参数取决于构造函数 } 构造函数的定义方法 ① 数据成员是内置类型变量,直接用该类型的形参变量初始化数据成员。 class A{ int i; public:  A(int x){ i=x;} }; ②数据成员是一维数组,通过一个for循环将形参数组元素初始化一维数组成员。 class A{ int t[5]; public: A(int b[],int n){ for(int i=0;i

3、组元素初始化二维数组成员。 class A{ int t[3][4]; public: A(int b[][4],int n){ for(int i=0;i #include class A{ char t[100]; public: A(char b

4、[ ]){  strcpy(t,b); } }; ⑤数据成员是字符类型指针变量,先用new动态申请长度为[形参指针指向的字符串长度+1]的内存空间,把返回的首地址赋给指针成员,再把形参指向字符串拷贝到动态数组中。 #include #include class A{ char *s; public: A(char *b){ if(b) { s=new char[strlen(b)+1]; strcpy(s,b); } } }; ⑥数据成员是数值类型指针变量,先用new动态申请长度为[形参数

5、组长度]的内存空间,把返回的首地址初始化指针成员,再把形参数组元素循环赋给动态数组元素。 #include class A{ int *s; public: A(int b [10]){ s=new int[10]; int i; for(i=0;i<10;i++) s[i]=b[i]; } }; 编程的基本类型题分析: 一、学生成绩 2016春VC01 (1)排序算法 (2)四舍五入算法int(x+0.5)保留整

6、数 int((x*10+0.5)/10.0 保留小数点后一位 int((x*100+0.5)*100)/100.0 保留小数点后两位 (3)友元函数的定义和调用 (4)字符串拷贝函数 【题目】试定义一个实现计算学生课程成绩的类STU,对学生学期总评成绩进行计算并排序。具体要求如下: (1) 私有数据成员 int norm, ex, final,overall:分别表示平时成绩、实验成绩、期末考试和总评成绩。 char name[15]:学生姓名。 (2) 公有成员函数 void init(char *name1, int nor1, int

7、 ex1, int fin1):用参数name1,nor1,exp1,fin1分别初始化成员name,norm, ex, final。 void fun( ):计算学生的总评成绩。计算方法为:总评成绩=平时成绩占*20%+实验成绩占*25%+期末成绩占*55%。总评成绩计算时要求四舍五入,并且期末考试成绩不足50分时,则期末考试成绩即为总评成绩。 friend void sort(STU st[], int n):友元函数,对st按总评成绩进行从大到小排序。 void print( ):输出该学生信息。 (3) 在主函数中先定义一个有5个元素的对象数组,用循环语句输入学生信息,并根据这

8、些信息利用成员函数init()更新学生信息,然后使用函数sort()对数组排序,最后输出排序后的学生信息。 输入/输出示例(下划线部分为键盘输入): 请输入姓名、平时成绩、实验成绩、期末成绩:AAA 82 75 58 请输入姓名、平时成绩、实验成绩、期末成绩:BBB 93 60 84 请输入姓名、平时成绩、实验成绩、期末成绩:CCC 67 82 81 请输入姓名、平时成绩、实验成绩、期末成绩:DDD 54 78 51 请输入姓名、平时成绩、实验成绩、期末成绩:EEE 91 52 41 按总评成绩排序后: 姓名 平时成绩 实验成绩 期末成绩 总评成绩 BBB 93

9、 60 84 80 CCC 67 82 81 78 AAA 82 75 58 67 DDD 54 78 51 58 EEE 91 52 41 41 2016秋VC02编程题 四舍五入算法 int(x+0.5)保留整数 int((x*10+0.5)/10.0 保留小数点后一位 int((x*100+0.5)*100)/100.0

10、 保留小数点后两位 【题目】假设二维数组的一行代表一名学生课程情况记录,前5列为考勤记录(出勤值为1,缺勤值0),第6~10列为作业得分记录(5分制),第11列为实验考核成绩,第12列为期末考试成绩。学生课程总评成绩的计算式为(四舍五入保留整数):平时成绩*20%+实验成绩*30%+期末考试成绩*50%,其中,平时成绩计算方法为:出勤一次记10分,作业每得1分,平时成绩记2分。例如,设有如下学生课程情况记录: 考勤1 考勤2 考勤3 考勤4 考勤5 作业1 作业2 作业3 作业4 作业5 实验 期末 总评 1 1 1 1 0 4 4 5 2 4

11、 90 89 1 0 1 1 1 4 3 4 3 4 85 75 1 1 0 1 1 3 4 5 2 4 95 80 表中第一行学生的平时成绩计算为:(1+1+1+1+0)*10+(4+4+5+2+4)*2=78,则其总评成绩计算为78*0.2+90*0.3+89*0.5=87.1,总评成绩四舍五入计为87分。 试定义一个类Array,根据上述要求计算学生的总评成绩。具体要求如下: (1)私有成员: l int a[3][13]: 学生课程情况记录数组。 (2)公有成员: l Array (float t[][13]

12、 int n): 构造函数,用参数t初始化成员数组a,参数n为t的行数。 l int sum(int k): 辅助函数,计算并返回成员数组a的第k行学生的平时成绩。 l void fun( ): 根据题意计算每个学生的总评成绩。 l void print( ): 按示例格式输出每个学生的信息。注意总评成绩结果要四舍五入。 (3)在主函数中给定原始数组(可利用题目中的样例数据,总评成绩暂定为0),并用该数组对类Array进行测试。 输出示例: 考勤: 1,1,1,1,0, 作业: 4,4,5,2,4, 平时成绩: 78 实验: 90 期末: 89 总

13、评: 87 考勤: 1,0,1,1,1, 作业: 4,3,4,3,4, 平时成绩: 76 实验: 85 期末: 75 总评: 78 考勤: 1,1,0,1,1, 作业: 3,4,5,2,4, 平时成绩: 76 实验: 95 期末: 80 总评: 84 【要求】 打开T盘中myfc.cpp文件(空文件),编写后的源程序文件myfc.cpp必须保存在T盘的根目录下,供阅卷用。 1.答案 #include #include class STU{ private: int norm,ex

14、final,overall; char name[15]; public: void init(char *name1,int norm1,int ex1,int fin1); void fun(); friend void sort(STU st[],int n); void print(); }; void STU::init(char *name1,int norm1,int ex1,int fin1){ strcpy(name,name1); norm=norm1;ex=ex1;final=fin1; overall=0; }

15、void STU::fun(){ if(final>=50) overall=int(norm*0.2+ex*0.25+final*0.55+0.5); else overall=int(final+0.5); } void sort(STU st[],int n){ for(int i=0;i

16、 } void STU::print(){ cout<>name>>norm>>ex>>fin; s[i].init(name,norm,ex,fin); s[i].fun()

17、 } cout<<"按总评成绩排序后:\n姓名 平时成绩 实验成绩 期末成绩 总评成绩"< using namespace std; class Array{ private: int a[3][13]; public: Array(float t[][13],int n); int sum(int k); void fun(); void print(); };

18、 Array::Array(float t[][13],int n){ for(int i=0;i

19、n(){ for(int i=0;i<3;i++) a[i][12]=int(sum(i)*0.2+a[i][10]*0.3+a[i][11]*0.5+0.5); } void Array::print(){ for(int i=0;i<3;i++){ cout<<"考勤:"; for(int j=0;j<5;j++) cout<

20、ut<

21、 Array arr(b,3); arr.fun(); arr.print(); } 二、二维数组问题 2016春VC02 1.素数算法, 2.从大到小排序算法 3.数据交换 【题目】试定义一个类Array,首先求各列元素中的合数(非素数)之和,再将数组各列以其合数之和的大小从大到小排序,具体要求如下: (1) 私有数据成员 int a[4][5]:需要排序的二维数组。 (2) 公有成员函数 Array(int t[][5], int n):构造函数,用参数t初始化成员数组a,n表示数组t的行数。 int p(int n):判断整数n是否为合数,

22、如果是合数,返回值为1,否则返回值为0。 int sum_p(int j):求数组a第j列元素中所有合数之和。 void exch(int j1, int j2):交换数组a的第j1, j2列元素。 void fun():根据题意对二维数组进行列排序。 void print():以矩阵的形式输出成员数组。 (3) 在主函数中定义一个二维数组,并使用该数组对类Array进行测试。 输出示例: 原数组: 10 12 5 4 15 16 17 8 19 10 11 12 13

23、 14 15 16 70 18 19 20 排序后的数组: 12 15 10 5 4 17 10 16 8 19 12 15 11 13 14 70 20 16 18 19 2015秋VC03 1.素数算法, 2.从大到小排序算法 3.数据交换 【题目】试定义一个类Array,将二维数组各行按其各行元素中所有素数之和从大到小排序,具体要求如下:

24、1) 私有数据成员 l int a[5][4]:待处理的数组。 (2) 公有成员函数 l Array(int t[][4], int n):构造函数,用参数t初始化成员数组a,n为数组t的行数。 l int prime(int n):判断整数n是否为素数,如果是素数,返回值为1,否则返回值为0。 l int sum_prime(int i):求数组a中第i行元素中所有素数之和。 l void exch(int i1, int i2):交换数组a的第i1, i2行元素。 l void fun( ):根据题意对二维数组进行行排序。要求排序过程中交换数据时使用成员函数exch()。

25、 l void print( ):以矩阵的形式输出成员数组。 (3) 在主函数中定义一个二维数组,并使用该数组对类Array进行测试。 输出示例: 原数组: 10 12 5 4 15 16 17 8 19 10 11 12 13 14 15 16 70 18 19 20 排序后的数组: 19 10 11 12 70 18 19 20 15 16

26、 17 8 13 14 15 16 10 12 5 4 【要求】 打开T盘中myfc.cpp文件(空文件),编写后的源程序文件myfc.cpp必须保存在T盘的根目录下,供阅卷用。 2016秋VC04 1.从大到小排序算法 2.数据交换 【题目】试定义一个类Array,将二维数组各行按其各行元素中最大值的大小排序,具体要求如下: (1) 私有数据成员 l int a[5][4]:需要排序的数组。 (2) 公有成员函数 l Array(int t[][4], int n):构造函数,用参数t初

27、始化成员数组a,n为数组t的行数。 l int max(int *p,int n):求指针p所指向的一维数组中n个元素的最大值。 l void exch(int i1, int i2):交换数组a的第i1, i2行。 l void fun():根据题意对二维数组进行行排序。提示:利用成员函数max()计算每行的最大元素。 l void print():以矩阵的形式输出成员数组a。 (3) 在主函数中定义一个二维数组,并使用该数组对类Array进行测试。 输出示例: 原数组: 10 12 5 4 15 16 17 8

28、 19 10 11 12 13 14 15 16 70 18 19 20 排序后的数组: 70 18 19 20 19 10 11 12 15 16 17 8 13 14 15 16 10 12 5 4 2016秋VC05编程题 1.奇数与偶数 2.选择排序 【题目】试定义一个类Array,实现对二维数组进行按行排序的功能

29、要求奇数行中的元素按升序排列,偶数行中的元素按降序排列(下标从0开始计数)。具体要求如下: (1)私有成员: l int a[4][5]: 需要排序的数组。 (2)公有成员: l Array(int t[][5], int n): 构造函数,用参数t初始化成员数组a,参数n为t的行数。 l void sort(int *p, int n, int f): 辅助函数,对指针p所指向的数组排序。其中,n为数组p中元素的个数;当参数f的值为奇数时按升序排序,否则按降序排序。 l void fun( ): 根据题意多次调用sort( )函数实现成员数组a的排序。 l void prin

30、t( ): 按矩阵形式输出成员数组。 (3)在主函数中给定原始数组,并用该数组对类Array进行测试。要求输出处理前和处理后的数组。 输出示例: 原数组: 1 3 9 5 6 7 6 7 5 7 2 5 4 5 6 7 1 5 4 5 处理后数组: 9 6 5 3 1 5 6 7 7 7

31、6 5 5 4 2 1 4 5 5 7 【要求】 打开T盘中myfc.cpp文件(空文件),编写后的源程序文件myfc.cpp必须保存在T盘的根目录下,供阅卷用。 1.答案 #include class Array{ private: int a[4][5]; public: Array(int t[][5],int n); int p(int n); int sum_p(int j); void exch(int j1,int

32、j2); void fun(); void print(); }; Array::Array(int t[][5],int n){ for(int i=0;i

33、for(int i=0;i<4;i++) if(p(a[i][j])==1) s+=a[i][j]; return s; } void Array::exch(int j1,int j2){ for(int i=0;i<4;i++) { int d; d=a[i][j1]; a[i][j1]=a[i][j2]; a[i][j2]=d; } } void Array::fun(){ for(int i=0;i<4;i++){ for(int j=i+1;j<5;j

34、) if(sum_p(i)

35、t<<"原数组:"< class Array{ private: int a[5][4]; public: Array(int t[][4],int n); int prime(int n); int sum_prime(int i); void exch(int i1,int i2); void fun(); void print(); }; A

36、rray::Array(int t[][4],int n){ for(int i=0;i

37、 s+=a[i][j]; return s; } void Array::exch(int i1,int i2){ for(int j=0;j<4;j++) { int d=a[i1][j]; a[i1][j]=a[i2][j]; a[i2][j]=d; } } void Array::fun (){ for(int i=0;i<4;i++) for(int j=i+1;j<5;j++) if(sum_prime(i)

38、j); } void Array::print(){ for(int i=0;i<5;i++) { for(int j=0;j<4;j++) cout<

39、un(); cout<<"排序后的数组:"; cout< class Array{ private: int a[5][4]; public: Array(int t[][4],int n); int max(int *p,int n); void exch(int i1,int i2); void fun(); void print(); }; Array::Array(int t[][4],int n){ for(int i=0;i<

40、n;i++) for(int j=0;j<4;j++) a[i][j]=t[i][j]; } int Array::max(int *p,int n){ int s=0; for(int i=0;i

41、 Array::fun (){ for(int i=0;i<4;i++) for(int j=i+1;j<5;j++) if(max(a[i],5)

42、0,11,12,13 ,14,15,16,70 ,18,19, 20}; Array arr(b,5); cout<<"原数组:"< class Array{ private: int a[4][5]; public: Array(int t[][5],int n); void sort(int *p,int n,int f); void

43、 fun(); void print(); }; Array::Array(int t[][5],int n){ for(int i=0;i

44、 } } else for(int i=0;ip[j]){ int t=p[i];p[i]=p[j];p[j]=t; } } void Array::fun(){ for(int i=0;i<4;i++) sort(a[i],5,i+1); } void Array::print(){ for(int i=0;i<4;i++){ for(int j=0;j<5;j++) cout<

45、[j]<<'\t'; cout<

46、下(假设f(x)在区间[x1, x2]内单调): (1)如果f(x1)*f(x2)>0,则方程在区间[x1, x2]上无解; (2)令x=(x1+x2)/2; (3)如果f(x)*f(x1)>0,方程的解在区间[x, x2]上,则令x1=x;否则,解在区间[x1, x],令x2=x; (4)重复步聚(2)、(3)直到f(x)满足精度要求。 试定义一个类EQU,实现利用二分法求方程ax2+bx+c=0在区间[x1, x2]内的一个解。具体要求如下: (1) 私有数据成员 l float a,b,c:存储方程的系数a,b和c。 l double x1, x2, x:x为方程在区间[

47、x1, x2]上的解。 l int k:如果在区间[x1, x2]内方程有解,则k值为1,否则k值为0; (2) 公有成员函数 l EQU(float a1, float b1, float c1):用参数a1,b1,c1分别初始化成员a,b,c。 l void fun(double xx1, double xx2, double e):求方程ax2+bx+c=0在区间[xx1, xx2]内的一个解x,要求最终误差|f(x)|

48、误差要求,建立EQU对象并初始化,然后调用fun()函数求出方程的解,最后调用print()函数输出所求得的解。 正确程序的输入/输出结果如下(下划线部分为键盘输入): 请输入方程的系数(a,b,c):1 5 -4 请输入区间([x1,x2])边界:0 10 请输入误差要求(e):0.00001 该方程在区间[0,10]中的解是:0.701561 1.答案 #include #include class EQU{ private: float a,b,c; double x1,x2,x; i

49、nt k; public: EQU(float a1,float b1,float c1); void fun(double xx1,double xx2,double e); void print(); }; EQU::EQU(float a1,float b1,float c1){ a=a1,b=b1;c=c1; } void EQU::fun(double xx1,double xx2,double e){ x1=xx1;x2=xx2; double f; double f1=a*x1*x1+b*x1+c; double f2=a*x2*x2+b*

50、x2+c; if(f1*f2>0) k=0; else do{ x=(x1+x2)/2; f=a*x*x+b*x+c; if(f*f1>0) x1=x; else x2=x; }while(fabs(f)>e); k=1; } void EQU::print(){ if(k==1){ cout<

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服