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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《高级语言程序设计》实验指导书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《高级语言程序设计》实验指导书.docx

1、高级语言程序设计实验指导书高级语言程序设计实验指导课程名称 高级语言程序设计 面向专业 计算机应用技术 实验一C语言的运行过程【实验目的与要求】1了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。2了解在该系统上如何编辑、编译、连接和运行一个C程序。3通过运行简单的C程序,初步了解C源程序的特点。【实验学时】2学时【基础知识】通过课堂上学习,我们对C语言已有了初步了解,对C语言源程序结构有了总体的认识,那么如何在机器上 运行C语言源程序呢?任何高级语言源程序都要“翻译”成机器语言,才能在机器上运行。“翻译”的方式有两种,一种是解释方式,即

2、对源程序解释一句执行一句;另一种是编译方式,即先把源程序“翻译”成目标程序(用机器代码组成的程序),再经过连接装配后生成可执行文件,最后执行可执行文件而得到结果。C语言是一种编译型的程序设计语言,它采用编译的方式将源程序翻译成目的程序(机器代码)。运行一个C程序,从输入源程序开始,要经过编辑源程序文件(C)、编译生成目标文件(obj)、连接生成可执行文件(exe)和执行四个步骤。【实验内容】【例1】 编程实现在屏幕上显示如下三行文字Hello,world!WolcometotheClanguageworld!Everyonehasbeenwaitingfor.在CFREE的集成环境下,键入如下

3、源文件如下:#includestdio.h main() printf(Hello,World!n); printf(WolcometotheClanguageworld!n); printf(Everyonehasbeenwaitingfor.n); 然后执行example.c,查看结果,即在屏幕上显示题目要求的三行文字。注意,在运行程序之前最好先存盘。【例2】输入并运行程序,写出运行结果。 #includestdio.hmain() inta,b,sum ; a=123 ; b=456 ; sum=a+b ; printf(sumis%dn,sum);运行方法同上,最后结果为:sumis5

4、79。【例3】输入并运行程序,写出运行结果。#includestdio.hmain() inta,b,c ; scanf(%d,%d,&a,&b); c=max(a,b); printf(max=%d,c);intmax(intx,inty) intz ; if(xy)z=x ; elsez=y ; return(z);这个程序的功能是对于任意输入的两个整数,输出较大的那个数。所以程序运行之后,光标将停留在用户屏幕上,等待用户输入两个整数,比如输入“3,5”,回车,在用户屏幕上就会输出“max=5”。实验作业1输入并运行例题中程序,熟悉调试C程序的的方法与步骤。2写出一个C程序的构成。3参照例

5、题,编写一个C程序,输出以下信息:*Hello,World!*实验二 基本语句【实验目的与要求】1理解C语言程序的顺序结构2掌握常用的C语言语句,熟练应用赋值、输入、输出语句。3进一步熟悉C程序的编辑、编译、连接和运行的过程。【实验学时】2学时【实验内容】【例1】按格式要求输入/输出数据#includestdio.hmain() int a,b ; flost x,y ; char c1,c2 ; scanf(a=%d,b=%d,&a,&b); scanf(%f,%e,&x,&y); scanf(%c%c,&c1,&c2); printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c

6、2=%cn,a,b,x,y,c1,c2);运行该程序,必须按如下方式在键盘上输入数据a=3,b=78.5,71.82aA请同学们写出输出结果【例2】输入三角形三边长,求三角形面积。#includestdio.h#includemath.hmain() float a,b,c,s,area ; scanf(%f,%f,%f,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(area=%f,area);【例3】已知圆半径,圆柱高,求圆周长,圆柱体积。#includestdio.hmain() floatr,h,l,v

7、,pi ; pi=3.1415926 ; scanf(%f,%f,&r,&h); l=2*pi*r ; v=pi*r*r*h ; printf(圆周长为:%6.2fn,l); printf(%圆柱体积为:6.2f,v);【例4】输入一个摄氏温度,要求输出华氏温度。公式为f=5/9*c+32.#includestdio.hmain() float c,f ; scanf(%f,&c); f=5.0/9*c+32 ; printf(%5.2fn,f);【实验作业】 1.已知圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。2.输入一个华氏温度,要求输出摄氏温度。公式

8、为c=5/9*(f-32).实验三 数据类型及其运算【实验目的与要求】1掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。2学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。【实验学时】4学时【实验内容】【例1】输入并运行下程序,写出运行结果。#includestdio.hmain() char c1,c2 ; c1=97 ; c2=98 ; printf(%c%c,c1,c2);在此基础上1)加一个printf语句,并运行之。printf(“%d,%d”,c1,c2);2)

9、再将第二行改为:intc1,c2;再使之运行。3)再将第三行改为:c1=300;c2=400;再使之运行,分析其运行结果。在该程序中,说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。【例2】分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。#includestdio.hmain() charc1=a,c2=b,c3=c,c4=101,c5=116 ; printf(a%cb%ctabcn,c1,c2,c3); printf(tb%c%c,c4,c5);在该程序中,主要考查对转义字符的掌握情况。【例3】分析下程序,写出运行结

10、果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。#includestdio.hmain() int i,j,m,n ; i=8 ; j=10 ; m=+i ; n=j+; printf(%d,%d,%d,%d,i,j,m,n);分别作以下改动之后,先分析再运行:1)将第四行改为:m=i+;n=+j;2)程序改为:main()int i,j;i=8;j=10;printf(“%d,%d”,i+,j+);3)在2)的基础上,将printf语句改为:printf(“%d,%d”,+i,+j);4)再将printf语句改为:printf(“%d,%d,%d,%d”,i,j,i+,j+);

11、5)程序改为:main()int i,j,m=0,n=0;i=8;j=10;m+=i+;n-=-j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);此程序主要考查自加、自减运算符以及复合运算符的用法。【实验作业】1. 要讲“China”译成密码,密码规律是:用原来的字母后面第5个字母代替原来的字母。例如,字母“A”后面第5个是“F”,用“F”代替“A”。因此,“China”应译为“Hmnsf”。请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为C、h、i、n、a,经过运算,使其分别变为H、m、n、s、f,并输出。2求下面算术表达式的值。(1)

12、x+a%3*(x+y)%2/4设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5先自己分析,再试着用程序求解,看得到的结果是否一致。3写出下面表达式运算后a的值,设原来a=10。设a和n已定义成整型变量。(1) a+=a(2)a-=2(3)a*=2+3(4)a/=a+a(5)a%=(n%=2),n的值等于5(6)a+=a-=a*=a先自己分析,再试着用程序求解,看得到的结果是否一致。实验四 选择结构程序设计【实验目的与要求】1了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);2学会正确使用逻辑运算符和

13、逻辑表达式;3熟练掌握if语句和switch语句。【实验学时】4学时【实验内容】【例1】已知三个数a,b,c,找出最大值放于max中。分析:由已知可得在变量定义时定义四个变量a,b,c和max,a,b,c是任意输入的三个数,max是用来存放结果最大值的。第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中ifelse形式。第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式。Max即为a,b,c中的最大值。 include stdio.h main() int a,b,c,max ; /*定义四个整型变量*/ scanf(a=%d,b=%d,c=%

14、d,&a,&b,&c); if(a=b) max=a ; /*a=b*/ else max=b ; /*amax) max=c ; /*c是最大值*/ printf(max=%d,max);若输入下列数据,分析程序的执行顺序并写出运行结果(1)a=1,b=2,c=3(2)a=2,b=1,c=3(3)a=3,b=2,c=1(4)a=3,b=1,c=2(5)a=3,b=3,c=2(6)a=2,b=1,c=2【例2】输入某学生的成绩,经处理后给出学生的等级,等级分类如下:90分以上(包括90):A80至90分(包括80):B70至80分(包括70):C60至70分(包括60):D60分以下:E方法一

15、:(用if嵌套)分析:由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。因此,再用if嵌套前,应先判断输入的成绩是否在0100之间。#includestdio.hmain() int score ; char grade ; printf(npleaseinputastudentscore:); scanf(%f,&score); if(score100|score=90) gr

16、ade=A ; else if(score=80) grade=B ; else if(score=70) grade=C ; else if(score=60) grade=D ; elsegrade=E ; printf(nthestudentgrade:%c,grade); 输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。方法二:用switch语句分析:switch语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0100之间的成绩分别化成相关的常量。

17、所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。#includestdio.hmain() int g,s ; char ch ; printf(ninputastudentgrade:); scanf(%d,&g); s=g/10 ; if(s10) printf(ninputerror!); else switch(s) case 10 : case 9 : ch=A ; break ; case 8 : ch=B ; break ; case 7 : ch=C ; break ; case 6 : ch=D

18、; break ; default : ch=E ; printf(nthestudentscort:%c,ch); 输入测试数据,同方法一一样调试程序并写出结果。【例3】有一函数:y= x (x1) 2x-1 (1=x=10)用scanf函数输入x的值(分别为x=10三种情况),求y值。分析:y是一个分段表达式。要根据x的不同区间来计算y的值。所以应使用If语句。#includestdio.hmain() intx,y ; printf(pleaseinputx:); scanf(%d,&x); if(x1) y=x ; printf(y=%dn,y); main() intx,y ; pr

19、intf(pleaseinputx:); scanf(%d,&x); if(x1) y=x ; printf(y=%dn,y); elseif(x10) y=2*x-1 ; printf(y=%dn,y); else y=3*x-11 ; printf(y=%dn,y); elseif(xc&b=c(2)a|b+c&b-c(3)!(ab)&!c|1(4)!(x=a)&(y=b)&0(5)!(a+b)+c-1&b+c/23.有3个整数a、b、c,由键盘输入,输出其中最大的数。4给出一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8089为B,7079分为C,6069分为D,60

20、分以下为E。5给一个不多于5位的正整数,要求:a.求出它是几位数;b.分别打出每一位数字;c.按逆序打出各位数字,例如原数为321,应输出123。7输入4个整数,要求按由小到大的顺序输出。实验五 循环结构程序设计【实验目的与要求】 熟练掌握while、dowhile和for三种循环语句的应用。【实验学时】4学时【实验内容】【例1】求5!#includestdio.hmain() int n,t ; n=1 ; t=1 ; while(t=5) n=n*t ; t=t+1 ; printf(%d,n);【例2】求和s=1!+2!+3!#includestdio.hmain() int n,s=0

21、,t=1 ; for(n=1;n=3;n+) t=t*n ; s=s+t ; printf(%d,s);【例3】求和s=1!+3!+5!#includestdio.hmain() int s=0,t,i,j ; for(i=1;i=3;i+) t=1 ; for(j=1;j=2*i-1;j+) t=t*j ; s=s+t ; printf(%d,s);【例4】求和s= 3+33+333#includestdio.hmain() int s=0,t=3,i ; for(i=1;i=3;i+) s=s+t ; t=10*t+3 ; printf(%d,s);【例5】有一数列:2/1,3/2,5/3

22、,8/5,求出这个数列的前10项之和。#includestdio.hmain() int n,t,; float a=2,b=1,s=0 ; for(n=1;n=10;n+) s=s+a/b ; t=a ; a=a+b ; b=t ; printf(%f,s);【例6】打印500以内的“水仙花数”。“水仙花数”是一个三位数,其各位数立方和等于该数本身。 #includestdio.hmain() int i,j,k,n ; for(n=100;n=500;n+) i=n/100 ; j=n/10-i*10 ; k=n%10 ; if(n=i*i*i+j*j*j+k*k*k) printf( %

23、d,n); 【例7】一个数如果恰好等于它的因子之和,这个数就称为完数。求100之内的所有完数。#includestdio.hmain() int n,s,j ; for(n=1;n=100;n+) s=0 ; for(j=1;jn);其次,算法:使k为m除以n的余数,如果m能被n整除,则k值为0,n为这两个数的最大公约数,否则,使k代替n,n代替m,重复以上过程,直到k值为0。#includestdio.hmain() int m,n,k,result ; printf(Enter two numbers:); scanf(%d,%d,&m,&n); /*限定两个正整数*/ if(m0&n0)

24、 do k=n%m ; if(k=0) result=m ; else n=m ; m=k ; while(k0); /*循环取余求出最大公因子*/ printf(The greatest common divistor is:%dn,result); else printf(Nonpositive values not allowedn);【例2】用牛顿迭代求方程2x3-4x2+3x-6=0在1.0附近的根。#include math.h main() float x,x0,f,f1 ; x=1.0 ; do x0=x ; f=(2*x0-4)*x0+3)*x0-6 ; f1=(6*x0-8

25、)*x0+3 ; x=x0-f/f1 ; while(fabs(x-x0)=1e-5); printf(%6.2f,x);【例3】打印下列图案*main() int i,j ; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf( ); for(j=1;j=2*i-1;j+) printf(*); printf(n); 【例4】判断m是否是素数。程序:#includemain() int m,i,k ; scanf(%d,&m); k=sqrt(m+1); for(i=2;i=k+1) printf(%d is a prime numbern,m); else p

26、rintf(%d is not a prime numbern,m);【实验作业】1输入两个正整数m和n,求其最大公约数和最小公倍数。 2求Sn=a+aa+aaa+aaa 之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5), n由键盘输入。3求和1!+2!+3!+4!+20!4 打印100-999之间所有的“水仙花数”。“水仙花数”是一个三位数,其各位数立方和等于该数本身。5 一个数如果恰好等于它的因子之和,这个数就称为完数。求1000之内的所有完数。6 有一数列:2/1,3/2,5/3,8/5,求出这个数列的前20项之和。7 用迭代法求x= a 。求平方根的迭公式为xn+1=1/2(xn+a/xn)要求前后两次求出的x的差的绝对值小于10-58 用牛顿迭代求方程2x

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1