软件工程-C语言--c语言实验报告.docx
《软件工程-C语言--c语言实验报告.docx》由会员分享,可在线阅读,更多相关《软件工程-C语言--c语言实验报告.docx(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验课时安排实验内容课时说明实验一 C语言运行环境2必做实验二c语言基础知识2必做实验三顺序程序设计2必做实验四if-else语句2必做实验五switch语句2必做实验六while语句、do-while语句2必做实验七for语句2必做实验八函数12必做实验九函数22必做实验十一维数组2必做实验十一二维数组2必做实验十二字符数组与字符串处理函数2必做实验十三预处理2必做实验十四指针12必做实验十五指针22必做实验十六结构体和共同体2必做实验十七综合实验2必做合计32实验一 C程序的运行环境一、实验目的1 . 了解和使用Visual C+6.0(简称VC)集成开发环境:2 .熟悉VC的控制台应用程
2、序的开发、调试步骤和方法;3、掌握C程序的编辑、编译、连接和运行过程;4、了解工程、文件、工作区等基本概念;5、能理解常见错误的提示信息,并根据提示进行改错。二、相关知识点VC集成开发环境;C语言的编辑、编译、连接和运行过程;C语言的调试方法和工具:C语言的基本组成特点。术语:“控制台应用程序”是一个在DOS窗口中运行的基于字符的程序。由于这种 模式的应用程序比Windows程序简单,我们先选择利用Visual C+来建立这样一个 应用,这样使得我们可以将精力先投入到学习使用C或者C+编程语言,而不需要 把过多的精力投入到学习复杂的Windows编程中去。三、实验内容一(验证及程序分析)Eg
3、1-1:使用Visual C+6.0集成环境来编辑、编译并运行下面的示例程序:#include void main()(printfCThis is my first C program! n);)【说明:】本题要求完成一个字符串的输出,并且是“依葫芦画瓢”哦!实验步骤:(1)启动Visual C+开发环境(2)创建一个工程a.单击File菜单中的New选项,显示出新建对话框b.选择 Win32 console Application。c.选择项目所在路径及输入项目的名称d.在建立一个什么类型的控制台应用程序中,选中“一个空工程”,按“完成”按钮,至 此,已经建立好工程相关的文件。(3)建立C
4、+源程序文件a.选菜单命令ProjectlAdd to ProjectINew,弹出New对话框b.在New对话框的Files选项卡中选择C+Source File,并填入文件名称,单击OK按钮,完成新建C+源程序文件(4)编辑C+源程序文件a.在文件编辑窗口中输入代码b.完成后,选择菜单FilelSave保存这个文件(5)编译、链接并运行可执行程序a.选择菜单命令Compile,建立H标代码文件;如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源程序进行修改后,重新选择菜单命令Compile建立目标代码文件。 b.选择菜单命令Build,建立可执行程序如果你正确输
5、入了源程序,此时便成功地生成了可执行程序.如果程序有链接错误,则屏幕下方的状态窗口中会显示错误信息,根据这 些错误信息对源程序进行修改后,重新选择菜单命令Build建立可执行程序。 c.选择菜单命令Run,运行程序,观察屏幕显示内容。【说明】有时也可直接选择菜单命令Run,将“编译、链接并运行”几个步骤 合为一起。(6)关闭工作空间选择菜单命令FilelColse Workspace关闭工作空间。四、上机内容:1 .输入并运行程序,写出运行结果。main() inta,b,sum;a=123;b=456;sum=a+b;printf(l*sumis%dn,sum);2 .输入并运行程序,写出运
6、行结果。main() inta,b,c;scanf(%d,%d,&a,&b);c=max(a,b);printf(*max=%d,c);)intmax(intxjnty)(intz;if(xy)z=x;elsez=y;return(z);)3 .编程实现在屏幕上显示如下三行文字 Hello, world !Wolcome to the C language world!Everyone has been waiting fo匚实验二C语言的基础知识【目的与要求】1 .掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法, 了解以上类型数据输出时所用的格式转换符。2
7、.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加( + +)和自减 (-)运算符的使用。3 .进一步熟悉C程序的编辑、编译、连接和运行的过程。【上机内容】【一般示例】【例1】输入并运行下程序,写出运行结果。mian()chard ,c2;c1 = 97;c2= 98;printf(u%c%cn,c1,c2);)在此基础上1)加一个printf语句,并运行之。printf(%d,%d,c1,c2);2)再将第二行改为:intd ,c2;再使之运行。3)再将第三行改为:c1 = 300;c2= 400;再使之运行,分析其运行结果。在该程序中,说明了字符型数据在特定情况下可作为整
8、型数据处理,整型数据有时也可以作为字 符型数据处理。【例2】分析卜程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比 较对照。main()(chard = a,c2= b,c3= c,c4= 101 ;c5= 116;printf(ua%cb%ctabcn,c1 ,c2,c3);printf(utb%c%c,c4,c5);在该程序中,主要考查对转义字符的掌握情况。【例3】分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。 main()inti,j,m,n;i=8;j=10;m= + + i;n=j+ +;printf(%d,%d,%d,%d
9、,i,j,m,n);)分别作以卜改动之后,先分析再运行:1)将第四行改为:m=i+ + ;n= +j;2)程序改为:main()inti.j;i=8;j=10;printf(%d,%d,i+ + ,j+ + );3)在2)的基础上,将printf语句改为:printf(%d,%d”,+ + i,+j);4)再将printf语句改为:printf(u%d,%d,%d,%d, i, j, i+ +, j+ + );5)程序改为:main()inti,j,m=O,n=O;i=8;j=10;printf(i=%d,j=%d,m=%d,n=%d,i,j,m,n);)此程序主要考查自加、自减运算符以及复合
10、运算符的用法。【作业】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,并输出。实验三顺序结构程序设计实验三顺序结构程序设计一、实验目的1、熟练掌握C语言中赋值语句的使用方法:2,掌握格式输入输出scanf()函数、printfO函数的调用语法:整型、实型、字符 型数据的输入输出格式.3,掌握字符输入输出由数getcharO、
11、putcharO函数的调用语法.二、相关知识点scanR)函数和print!。函数的意义及用法:getchart)函数和putchar()函数的J&义及用法:gets()函数和puts。函数的意义及用法:I三、实验内容一(验证及程序分析)Eg3-1:从键盘输入两个o到127的整数,求两数的平方差并输出其值以及这两个整数 的ASCH码对应的字符.(1)算法分析:标准ASCII储值范围是。到127,所以在这范围内的数可以以字符 形式输出,实现方法是用格式输出函数并用格式符c控制输出.(2)源程序:/include void main()iiit x,y,sub ;scanf(?odod,&x.&y
12、);/*变量前一定要加取地址符& */sub=x*x-y*y;prin0 odnx,y,s ub);(3)在VC+编辑环境卜编辑源程序.(4)编译自到程序没有错误。(5)从键盘输入100 50/,运行结果如何?(6)输出结果:Eg3-2:输入程序 /include void main() ( int a.b ; float d,e ; char cl.c2; double f,g ; long m.n ; unsigned int p.q ; a=61 ;b=62;cl-a*;c2=*b*;d=3.56 ;e=-6.87;f=3157.890121 ; g=0.123456789 : m=50
13、000;n=-60000 ;p=32768;q=40000;printf(,a= od.b= odncl = oc,c2=0 ocnd= 6.2f,e= 06.2fii a.b.cLc2,d,e);printfC,0 ol 5.6f.g= ol5.12fnm= okLn= oldnp= ou.q= ounf.g.mm.p.q); (1)运行程序并分析结果。(2)在此基础上,修改程序的第1075行(即变最赋值部分)为:a=61;b=62;cl=a;c2=b;0=3157.890121; g=0.123456789 d=f;e=g;p=a=m=50000; q=b=n= - 60000; 运行程序
14、,分析结果。(3)改用scanf函数输入数据而不用赋值语句,scanf函数如下: scanflrod,ki,93,%c,%f?忒%lf.9&/ld.ou”,输入的数据如下:61.62.a,b,3.56,-6.87,3157.890121,0.123456789,50000.-6000032768.40000(0) (说明:If和Id格式符分别用输入double型和long型数据)分析运行结果。 (4)将printf语句改为:printfCa=od.b=odncl=oc,c2=oacnd=ol 5.6f.e=ol5.12fn a.b.cl,c2.d.e); printl(f=af.g=ofnm=
15、od.n=odnp=od.q=odn, f. g. m. n. p. q);运行程序,分析结果。(5)将p、q改用%o格式符输出。(6)将scanf函数中的。olf和。Id改为。of和。0d,运行程序分析结果。对照程序和运行结果思考:(7)将一个负整数赋给一个无符号的变最,会得到什么结果.(8)将一个大于32767的长整数赋给整型变量,会得到什么结果。(9)将一个长整数赋给无符号变睛,会得什么结果(分别考虑该长整数的值大r或等于65535以及小于65535的情况)。四、实验内容二(综合及设计类)Eg33:调试训练改正下列程序中的错误,输入参数abc,求一元二次方程 ax2+bx+c=0 的根。
16、/include /include void maiii() |double a.b.c.d;prill tf(nEnter a.b,c:M);scanf(,,oolPblfoolf,&a,&b,&c);d=b*b-4*a*c; 断点 1if (a=0)(if(b=0)if (c=0)printfC参数都为零,方程无意义! n);elseprintfCa和b为0, c不为0,方程不成立! n);) elseprintiXx=%0.21n,-c/b); elseif(d=0) 断点 2printf(x l=%0.2fn,(-b+sqrt(d)y(2*a); printf(x 2=%0.2in,(
17、-b-s qrt(d)/(2*a);else 断点3:printf(,xl=%0.2fi-%0.2fin,-b/(2*a),sqrt(dy(2*a);printfCx2=oo0.2o0.2fin.-b/(2*a),sqrt(d)/(2*a);说明:断点的作用是使程序执行到断点处暂停,让用户可以观察当前变量或表达式的值。 设置断点时,先将光标定位到要设置断点的位置,然后单击编译微型T-具的 按 钮,断点即设置完毕。如果要取消设置的断点,只需要将光标移到要取消的断点处,单 击“色”按钮,该断点即取消.(1)打开源程序,对程序进行编译和连接,没有出现错误信息。(2)调试开始,设置三个断点,具体位置见
18、源程序的注释.=1(3)单击G。按钮,输入a, b, c的值(2.0 9.0 3.0)后,程序执行到第一个断点 处,在观察窗口输入变最名a, b, c,直看变最a, b, c的值。此时,这些变最的 值与输入的值一致.(4)继续单.击Go-按钮,程序运行到第二个断点处,观察到变髓d的值为57,说明 方程有实根。(5)再次单击G。4按钮,程序运行到最后一个断点处,运行窗口显示xl=-0.36, X2=4.14,符合题目要求.(6)单击Stop Debugging 按钮,程序调试结束。Eg34:输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(f-32)。提示:注意 c=5/9*(f-32)与
19、 c=5.0/9.0*(f-32)的区别作业:1 .输入一个非负实数,计算以该实数为半径的圆周长及面积。2 .输入两个整型变量a, b的值,输出a+b, a-b, a*b, a/b, float)a/b, a%b 的结果,要求连同算式一起输出,每个算式占一行。实验四分支结构ifelse一、【实验题目】分支结构if-else二、【实验类型】基础型实验三、【实验要求】1 .实验前必须做好实验准备,弄清实验内容和实验目的;2 .实验结束后,把程序运行结果写在程序旁边相应位置,并回答问题;3 .将完成后的实验报告交给任课教师。四、【实验目的】1 .理解分支结构中用到的逻辑表达式;2 .学会画程序流程图
20、;3 .掌握ifelse语句及其嵌套的用法;4 .理解程序设计的基本思想。五、【实验内容】(一)调试运行下面的程序,理解关系表达式和逻辑表达式的计算:#include void main()printfCTRUE=%dn,1 3=2);printf (FALSE=%dn,3=2);printf(432: %dn, 432);printf(43 & 32: %dn,43 & 32);1 .关系表达式或逻辑表达式的值为真(1)或假(0),但注意用非0值可表示真:2 . 区别表达式432与43&32;3 .关系运算符的优先级别要高于逻辑运算符,逻辑运算符的优先级的高低顺序为“ ! ”、 “&”、“I
21、I”。(二)下面的程序是输入三个整数,输出其最大值。理解程序求解的思路,并用NS图(PAD 图)表示该算法思路。#include void main()(int a, b, c, max;scanf (u%d%d%d, &a, &b, &c);max = a;if ( b max ) max = b ;if (c max ) max = c;printf (MAX=%dn,max );1 .注意输入的三个数之间请用空格分开,若要在输入的三个数之间用逗号分隔,应该对程 序如何修改;2 .若要求输出最小值,应该如何修改上述程序(三)有以下分段函数,要求输入x值,输出相应的y值。x(x 2)/ -8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 语言 实验 报告
限制150内