




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计实验报告实验一 面向过程的简单程序设计1实验目的要求(1)使用C+语言编写简单的计算机程序,掌握C+程序从编辑、编译到运行的全过程,初步了解C+程序的特点。(2)掌握C+语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运算符和表达式的使用。(3)掌握赋值语句的使用。(4)掌握数据的输入输出方法。实验内容(2)#includevoid main()char ch;cinch;ch=(ch=A&ch=a&ch=z)?(ch-32):ch;coutchendl;/将小写字母转化为大写#includevoid main()int m;float x;bool bi,br;coutm;bi=m1000;coutx;br=x=1e3;coutbi,brendl;/判断两个值是否满足要求条件03#includevoid main()int n;cinn;if(n+10)coutnendl;elsecoutn-endl;1)#includevoid main()double x,a,b,c,d;cinxabcd;x+(a+b)/(c-d);coutx+(a+b)/(c-d)=x+(a+b)/(c-d)endl;(3)01 根据随即从键盘输入的圆半径值,求圆的周长#includevoid main()double r,L;double pi=3.14;cinr;L=2*pi*rcoutrendlLendl;02 读入三个整数a、b、c,交换它们中的数,使a存放b的值,b存放c的值,c存放a的值。#includevoid main()double a,b,c,d,e;cinabc;d=a;b=a;e=c;d=c;b=e;c=d;coutabcendl;03 对任意输入的四位整数,分别求出其各位数字,并按从后到前的顺序依次输出。例如,输入为1234时,输出结果为4,3,2,1。#includevoid main()int F ,a,b,c,d;cinF;a=F/1000;b=(F-a*1000)/100;c=(F-a*1000-b*100)/10;d=(F-a*1000-b*100-c*10);coutdcba;实验二 控制结构程序设计1.实验目的要求(1) 理解基本的解题技巧,掌握用自顶向下、逐步求精的过程设计算法。(2) 熟练掌握if/else语句和switch语句的使用。(3) 熟练掌握while语句、do/while语句和for语句的使用以及区别。(4) 掌握break和continue程序控制语句的使用。2实验内容(1)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。#include void main()int m,n;m=1000;n=850;coutn(m,nn)m=m-n;cout(m,n);while(mn)n=n-m;cout(m,n);coutnm;/对于给定的两个数,大者减去小者,得到的差值赋给大着,然后输出这两个数,如此循环,直到两者相等,结束循环跳出。输出结果为:50#include void main()int m,n,k;m=1000;n-45;cout”n(“m:n=n)m=m-n;k=k+1;coutk”-“mendl;/对给定两个数,先输出这两个值,若前者大于后者则赋值给前者,直到前者小于后者时跳出循环,并输出循环的次数和最终前者的值。输出为 22 -10#includevoid main()int i;for(i=1;i=5;i+)if(i%2)cout*;elsecontinue;cout#;cout$n;/输出符号*#*#*#$#include void main()int a=1,b=10;dob-=a;a+; while(b-=0)cout”a=”a”b=”bendl;(2) 编写程序实现下列问题的求解。求解下面函数的值。#include #include int main()const double e=2.7;float x,y,z;coutplease enter x yx;ciny;coutendl;if(x0&y=1&x+y10)z=log(x+y);else z=log10(fabs(x+y)+1);coutzendl;编程求解下列各计算式:1) S 1+2+3+100#include int main()int i=1,s=0;for (i;i=100;i+)s=s+i;couts=sendl;最终输出结果为: s50504)#include #include #include int chengfang(int s);int main()int x,n,i;float y=0;coutplease enter x and n:xn;for(i=1;i=n;i+)y=y+pow(-1,i+1)*pow(x,2*i+1)/chengfang(2*i-1);coutsetiosflags(ios:fixed)setprecision(6)y;int chengfang(int s)int j,h,t=1;for (j=1;j=s;j+)for(h=j;h=j;h+)t=t*h;return (t);编程求出10000以内的所有符合如下条件的数:其高位数字小于低位数字。如12,238,3578等。但21,548不符合条件。#include ;int main()int a=0,b,c,d,e;for(a;a=5;a+)for(b=a;b=6;b+)for(c=b;c=7;c+)for(d=c;d=8;d+)for(e=d+1;e=9;e+)if(ab&bc&cd)|(a=0&b=0&cd)|(a=0&bc&cd)coutabcde ;实验三 数组1. 实验目的要求(1)掌握一维数组和二位数组的定义、初始化复制、元素应用的方法。(2)初步了解数组名与地质的关系。(3)掌握字符数组和字符串函数的使用。(4)掌握与数组有关的算法。(特别是排序和查找算法)2.实验内容(1)#include#define N 10void main()int aN;int s,i,j,t;for(i=0;iN;i+)if(i%2) ai=i*i;else ai=100-(i/2)*(i/2);for(i=0;iN;i+)coutai;coutendl;s=0;for(i=0;iN;i+)s=s+ai;coutsum of a=s;for(i=0;i=0&taj)aj+1=aj;j-;aj+1=t;for(i=0;iN;i+)coutai;coutendl;输出结果为:1001999962591498481sum of a =6351009996918481492591功能:第一个for循环内,当i取奇数时,数组a中第i个数就为i的平方,否则,数组a中第i个数为100-(i/2)*(i/2),此循环后输出为1001999962591498481,也就是最终输出的第一行。第二个for循环内,求的是数组a内各元素之和。输出为sum of a =635。第三个for循环内嵌套一个while循环,显得比较复杂,描述困难,输出为1009996918481492591。#include #include void main()char a20=TER,b20=COMP;int i=0;strcat(a,b);while(ai+!=0)bi=ai;coutb;输出结果为:CERCOMP功能:程序读入字符数组a和b内的字符,并拼接,得到a字符数组内容为TERCOMP,在while循环内,第一次起条件便满足,由于i为先引用后自增的关系,得到b数组第一个为C剩下的为拼接后a数组T后的字母,最后输出b为CERCOMP#include void main()int i=0,base,n,j,num20;cinnbase;doi+;numi=n%base;n=n/base;while(n!=0);for(j=i;j=1;j-)coutnumj;输入 20 10 输出结果:20功能:输入两个整形数据,进入循环,进行前一个用后一个数来取余,然后在用后一个数除以前一个数赋给后一个数,每次产生的余数依次赋给数组num,直到余数为0跳出循环,接着,倒序输出数组内的余数。(2)编写程序实现下列问题的求解。编程产生下列数组,并输出。(1) 一维数组1)(1 4 9 16 25 36 49 64 81 100)#include int main()int a10,i;for (i=0;i10;i+)ai=(i+1)*(i+1);coutai ;2)(1 3 6 10 15 21 28 36 45 55)#include int main()int a10,i;for (i=0;i10;i+)ai=ai-1+i+1;coutai ;3)(1 2 3 5 8 13 21 34 55 89)#include int main()int a11=1,1,i;couta1 ;for (i=2;i=10;i+)ai=ai-1+ai-2;coutai ;(2)二维数组1) #include #define N 6int main()int i,j,k;for(i=0;iN;i+)couti+1;coutendl;for(i=1;iN;i+)for(j=1;jN+1;j+)cout(j+i)%(N+1);coutendl;3)1 2 3 4 5 62 1 2 3 4 53 2 1 2 3 44 3 2 1 2 35 4 3 2 1 26 5 4 3 2 1#include #define N 6int main()int i,j=0,k;for(i=0;iN;i+)j=(i)%N;for(k=0;kN;k+)cout(k+j)%N+1 ;coutendl;编程实现数组的排序:将有15个元素的整型数组按从小到大的次序排序。#include int main()int a15,temp=0;coutplease enter 15 int numbersendl;for(int i=0;iai;for(int j=0;j15;j+)for(int j=0;jaj+1)temp=aj;aj=aj+1;aj+1=temp;for(int k=0;k15;k+)coutak ;实验四 函数1 实验目的要求(1) 理解并掌握如何模块化的用函数来构建程序。(2) 掌握定义函数的方法,了解函数的重载方法,了解内联函数的机制。(3) 掌握函数间传递信息的机制。(4) 掌握函数的嵌套调用(和递归调用)的方法。(5) 掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法。(1) 阅读下列程序,写出其运行结果,并指出其功能。#include int hcf(int u, int v)int a,b,t,r;if(uv)t=u;u=v;v=t;a=u;b=v;while(r=b%a)!=0)b=a;a=r;return(a);int lcd(int u,int v,int h)return(u*v/h);void main()int u,v,h,l;cinuv;h=hcf(u,v);cout”hcf=”hendl;l=lcd(u,v,h);cout”lcd=”lendl;输入: 48,32输出结果为:hcf=16lcd=96功能:输入两个整形数据后,进入第一个函数hcf先对两者进行判断,较小的给u,较大的给v,然后在函数内进行循环,为辗转相除,取得最大公约数,返回该值。然后进入第二个函数,取得最小公倍数。则该程序输出的为输入两数的最大公约数和最小公倍数。#include long fib(int g) switch(g)case 0:return 0;case 1:case 2:return 1;return(fib(g-1)+fib(g-2);void main()long k;k=fib(7);coutk=kendl;输出:k13#include int k=1;boid main()int i=4;int fun (int);fun(i);cout”(1)”i,kendl;fun(int m)m+=k;k+=m;char k=B;cout”(2)”char(k-A)endl;cout”(3)”m,kendl;输出: (字符无法输入,为一张笑脸)5,64,6功能描述:程序中利用了字符常量的知识。#include#includevoid subp()static int x=0,y=0;int a,b;a=x-y;b=x+y;coutsetw(5)asetw(5)bendl;coutsetw(5)xsetw(5)yendl;int x,y;void main()int a=9,b=3;x=a-b;y=a+b;subp();coutsetw(5)asetw(5)bendl;coutsetw(5)xsetw(5)yendl;运行结果是:0 00 09 36 12如果问题(1)处语句改为static int x,y;运行结果为发生什么改变,为什么?运行结果不变。(2)编写程序实现下列问题的求解.求方程ax +bx+c=0的根,用三个函数分别求b -4ac大于0、等于0、小于0时的根,并输出结果。从主函数输入a、b、c的值。#include #include int main()double below(int d);double uper(int a,int b,int c,int d);double zero(int a,int b,int c,int d);int a,b,c,d;coutplease enter a,b,cabc;d=b*b-4*a*c;if(d=0) zero(a,b,c,d);else if (d0) uper(a,b,c,d);else below(d);double zero(int a,int b,int c,int d)int g;g=(-b+sqrt(d)/2*a;coutThe only root is:gendl;return 0;double uper(int a,int b,int c,int d)int g,h;g=(-b+sqrt(d)/2*a;h=(b+sqrt(d)/2*a;coutOne root is:gendlAnother root is:h;return 0;double below(int d)if (d) coutThere is no root any more;return 0;用函数实现将一个以字符串形式表示的十六进制数转换为一个十进制整数。例如,输入“A2”转换为162。#include int change(char s);int main()char a5;cina;coutendlchange(a)= 0&si= A&si= F) n=n*16+si-A+10; else cout 非法十六进制数!endl; return n; 输入:A2输出: 162 实验五 指针1 实验目的要求(1) 掌握指针的概念,学会定义和使用指针变量。(2) 学会使用数组指针和指向数组的指针变量。(3) 学会使用字符串指针和指向字符串的指针变量。(4) 了解指向指针的指针概念以及其使用方法。(5) 掌握指针、引用、数组做函数参数的传递机制。(6) *学会使用指向函数的指针变量2 实验内容(1) 阅读下面程序,写出其运行结果。#include sub(int x,int y,int*z)*z=y-x;void main() int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);couta,b,cendl;输出:-5,-12,-7#include #in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 请你给青蛙一个吻课件
- 误吸的评估及处理
- 红酒杯知识培训方案模板课件
- 2025【合同范本】设备租赁合同
- 2025养殖场地租赁合同范本
- 2025合作合同协议范本
- 红色会说话课件
- 欧洲文化的演进史脉络概览教案
- 2025企业员工试用合同
- 诗经二首课件介绍
- 学前教育机构师资队伍薪酬激励与职业发展研究报告
- 小学朗读教学课件
- 患者身份识别管理标准WST840-2025学习解读课件
- 皮肤干细胞研究与应用
- 玄麦甘桔颗粒讲解
- 2024-2025学年广东省深圳高级中学高一(下)期末物理试题及答案
- 标准预防与隔离技术课件
- 西藏公务员真题2025
- 冶金矿山采矿设计规范
- 生产安全应急预案汇报
- 2025年秋季新学期第一次全体教师大会上校长讲话:四重人生境界一颗育人初心-新学期致每位教书人
评论
0/150
提交评论