习题课-2
更新时间:2023-12-24 23:00:01 阅读量: 教育文库 文档下载
- 试题讲解课听课记录怎么写推荐度:
- 相关推荐
习题课2 2010-11-19
程序测试2-2
编写一个加密程序。输入一个6位整数的明码,按以下方法加密:首先将每位数字替换成它与7相加之和再用10求模的结果;然后逆置;输出密码。再编写程序,把这个密码还原成明码。若输入错误,则显示错误信息后退出程序。 //软件2班庞博-加密解密程序 #include
int encipher(int t)//函数一:加密 { int i,m,a,b; for(i=0,a=100000,b=0;i<6;i++) { m=(t+7); b=m*a+b; a=a/10; t=t/10;
} return b; }
int exemption(int x)//函数二:解密 { int i,n,a,b; for(i=0,a=100000,b=0;i<6; i++) { if( x<7) n=x+10-7; else n=(x-7); b=a*n+b; a=a/10; x=x/10; }
return b; }
int main()//主函数 { int a,b,c; cout<<\请输入六位整数:\; cin>>a; if(a<100000||a>999999) { cout<<\< } b=encipher(a); c=exemption(b); cout<<\密码是:\< } 问题: (1)调用pow函数会降低运行效率 {for (i=5;i>=0;i--) b+=(((int) (a/pow(10,i))+7))*(int)pow(10,(5-i)); } (2)在循环结束后输出效率更高 for(i=6;i>=1;i--) {c=c*10; b=((a)+7); c=c+b; a=a/10; //cout< cout< (3)输入明码“000000”0一类的,但是在我的程序中没有办法对这种数字比较大小进行判断。 (4)输入明码“333333”,密码会出现0,而不是000000,或者是输入明码777733,会输出4444,而不是004444,为了在不同情况下补齐到六位又该怎样设计比较好? 程序测试3-1 1、编写一个程序,测试3个函数,它们都能够把main函数中的变量count的值增至3倍。这3个函数说明如下: (a)tripleByValue函数通过值传递count的一份副本,把值增至3倍并返回这一结果。 (b)tripleByReference函数通过引用参数传递count,用别名(即引用参数)把count原来的值增至3倍。 (c)tripleByPointer函数通过指针参数传递count的地址,用间址方式把count原来的值增至3倍。 #include double tripleByValue( double x ) { return x * 3; //传值参数不能修改实参的值 } double tripleByReference( double &x ) { x = x * 3; //指针参数通过间址修改实参的值 return x; } double tripleByPointer( double *x ) { *x = *x * 3; //引用参数通过别名修改实参的值 return *x; } int main() { double count; cout<<\; cin>>count; count=tripleByValue( count ); //通过函数返回值修改count的值 cout<<\< tripleByReference( count ); //也可以count=tripleByReference(count) cout<<\< tripleByPointer( &count ); //也可以count=tripleByPointer(&count) cout<<\< 问题: (1)求值函数应该用return返回计算结果值,不应在函数内输出求值结果 void tripleByValue (double x) { x=x*3; cout< void tripleByReference (double &x) { x=x*3; cout< void tripleByPointer (double *x) { *x=*x*3; cout<<*x; } (2)引用参数和指针参数的应用。引用参数和指针参数都可以通过形参读/写实参。 2、已知勒让德多项式为 1??pn(x)??x?((2n?1)p(x)?(n?1)p(x))/nn?1n?2?n?0n?1 n?1编一程序,定义递归函数求 double poly( double &x, int n ); pn(x)的值。主函数从键盘上输入x和n的值, 调用poly函数测试。 //计科()-王洁锋 #include double poly( double &, int ); int main() { int n; double x,p; cout<<\; cin>>n; cout<<\; cin>>x; p=poly(x,n); cout< double poly( double &x, int n ) { if (n==0) return 1; else { if (n==1) return x; else return ( (2*n-1) * poly( x, n-1 ) - (n-1) * poly( x, n-2 ) ) / n; } } 问题: (1)为什么x用引用参数? (2)warning C4715: “poly”: 不是所有的控件路径都返回值 double poly(double &x,int n) { if(n==0) return 1.0; if(n==1) return x; if(n>1) return ((2*n-1)*poly(x,(n-1))-(n-1)*poly(x,(n-2)))/n; } //如果条件都不成立怎么办? (3)表达式计算: return ((2*n-1)*poly(x,n-1)-(n-1)*poly(x,n-2)/n); return (2*n-1)*poly(x,n-1)-(n-1)*poly(x,n-2)/n; if(n==0) return 0; 指出以下程序中的错误: double poly(double &x,int n) { if(n=0)return 0; else if(n=1)return x; else return(((2*n-1)*poly(double&x,int(n-1))-(n-1)*poly(double&x,int(n-2)))/n); } 1 “==”与“=” ○2 return 1 ○ 3 形参与实参的形式 ○函数原型 函数调用 4 表达式书写 ○ double poly(double &x,int n); poly( double &x, int(n-1) ) 程序测试4-1 本程序的main函数调用RandAry函数,生成20个1~20之间的随机数;调用OutAll函数显示生成的随机数序列;调用OutUnlike函数,删除生成序列中的重复数值,仅显示序列中的不同数值。显示数据不改变原来的相对顺序。 #include void RandAry( int ary[], int n, int min, int max ); //生成随机数序列 void OutAll( int ary[], int n ); //输出数组全部元素 void OutUnlike( int ary[], int n ); //输出数组中不相同元素 int main() { const int N=20; int ary[N]; cout<<\生成20个1~20之间的整数:\\n\; RandAry(ary, N, 1, 20); //生成N个1~20之间的随机整数放在数组ary中 OutAll(ary,N); //输出数组全部原始数据 cout<<\输出不相同数据序列:\\n\; OutUnlike(ary,N); //输出不相同的数据,不改变原来的相对顺序 }
正在阅读:
习题课-212-24
2017超星尔雅《音乐鉴赏》期末考试 满分卷答案(最新版2017年9月19日)10-01
2019年春节,我希望作文500字07-01
炎热的夏天作文600字07-03
企业内部安全生产检查与监督制度通用范本06-12
2020年“防风险、守底线”专题会议个人对照检查材料09-06
生产车间工人绩效考核方案 - 图文11-01
Ruthenium NHC Catalyzed Highly Asymmetric Hydrogenation of04-11
高一英语试题精选高中英语必修四unit4、5单元测试题及答案03-09
职业道德与职业指导04-23
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 习题
- 开学初的心理调适
- Excel2010试卷含答案
- 201X年11月思想汇报:不断完善自己word版本(1页)
- 店招施工组织设计
- 八年级语文上册 第21课《桃花源记》教案设计(新版)新人教版
- 整合营销传播理论 - 图文
- 小学生作文解疑指导
- 动力式高速进排气阀
- 河南大学2012年硕士研究生招生专业目录哲学与公共管理学院硕士01
- 浙江中空纤维超滤膜-广州华膜
- 浅议基层部门预算编制与执行中存在的问题与建议
- 立式两旋轮车轮辋旋压机控制系统探讨
- 第一单元 沉和浮
- 四年级英语下册Unit11UncleJacksfarm第2课时教案北师大版一起
- 新版PEP小学英语(3-6年级)单词表
- 社会保障实习报告 - 图文
- 帮助学生提高绘画作业水平的几种有效途径
- 股票上市协议
- 小学数学两年级上册应用题汇总
- 试用期考核试题(答案)