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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(中南民族大学电子商务C语言实验报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

中南民族大学电子商务C语言实验报告.docx

1、中南民族大学电子商务C语言实验报告中南民族大学管理学院学生实验报告课程名称:C语言程序设计 年 级:2015级 专 业: 电子商务 姓 名: 学 号: 2015学年至2016学年度 第2学期实验一 C基础练习 实验二 基本数据类型和运算符 实验三 顺序与分支结构 实验四 循环结构 实验五 函数 实验六 数组 实验七 指针 实验八 结构体、联合体和枚 实验九 文件 实验(一) C基础练习 实验时间:同组人员: 实验目的(1)熟悉Visual C+6.0的调试环境。(2)掌握在Visual C+6.0的调试环境下调试C程序的方法。(3)掌握在C程序中定义主函数的方法。(4)掌握在C程序中书写注释的

2、方法。(5)了解函数printf()的基本功能。(6)了解C程序的错误类型。实验内容1、通过调试第一个程序,了解调试环境2、理解注释语句的用法3、了解什么是编译错误4、了解什么是连接错误实验步骤1、通过调试第一个程序,了解调试环境操作步骤如下:(1)在Windows环境下进入Visual+6.0。(2)在Visual C+6.0环境下建立一个新的工作空间My Workplace.(3)在My workplace工作空间中建立一个新的项目MyProject。(4)在MyProject项目中新建一个Source Files 类型的文件first.cpp。(5)在编辑窗口中编辑first.cpp文件

3、。内容如下:#include “stdio.h”Viod main() Printf(“Welcomen”);(6)按快捷键【Ctrl+F7】或选择Build Compile命令项对程序进行编”按快捷键【F7】或选择Build Build命令对程序进行连接。(7)按快捷键【Ctrl+F5】或直接单击运行按钮“!”,运行程序。注意:也可以不做编译直接做Build,同时进行编译和连接。2、理解注释语句的用法操作步骤如下:(1)在编辑窗口中继续编辑first.cpp文件,增加语句。使程序变为: #include”stadio.h”/*first one*/Void main() Printf(“we

4、lcomen”); Printf(“-n”); Printf(“your name:n”); (2)按快捷键【Ctrl+F7】或选择Build Compile命令对程序进行编译。(3)按快捷键【F7】或选择Build Build命令对程序进行连接。(4)按快捷键【Ctrl+F5】或直接单击运行按钮“!”,运行程序。3、了解什么是编译错误操作步骤如下:(1)在编辑窗口中继续编辑first.cpp文件,去掉“printf(“Welcomen”);”语句后面的分号。使程序变为: #include”stadio.h”/*first one*/Void main() Printf(“welcomen”)

5、 Printf(“-n”); Printf(“your name:n”); (2)按快捷键【Ctrl+F7】或选择Build Compile命令对程序进行编译。此时,编译器会提示错误信息如下:Compeling.first.cppC:ProgramFilesMicrosoftVisualStudioMyworkspaceMyProjectfirst.cpp(6):errorc2146:syntaxerror:missing;beforeidentifireprintfError executing cl.exeFirst.obj-1 error(s),0 warnings(s) 提示信息的第1

6、、2行是“Compiling.first.cpp”,表示正在对程序进行编译,在生成目标程序first.obj时编译程序检查出了问题。总共发现了1个错误。 错误信息还明确告诉程序员编译错误出现在第6行,语法错误是“printf标识之前缺少符号”,也就是说第5行后面缺少分号。 C语言规定,每条语句都必须以分号结束,如果不写分号,编译器将会提示错误,这种错误就是所谓的编译错误,也就是说语法错误。 因为有编译程序的帮助,从理论上来说。语法错误是最容易纠正的错误。但实际上,由于C语言自身非常灵活的特性,对于初学者开说,寻找到错误也不是一件容易的事情,需要在实践中学习提高。(3)将分号加回去,程序就可以正

7、确编译连接和运行了。4、了解什么是连接错误操作步骤如下:(1)在编辑窗口中继续编辑first.cpp文件。程序内容:#include”stadio.h”/*first one*/Void print();Void main() Printf(“welcomen”); Printf(); Printf(“your name:n”);(2)按快捷键【Ctrl+F7】或选择Build Compile命令对程序进行编译。编译成功。(3)按快捷键【F7】或选择Build Build命令对程序进行连接,连接失败。系统会提示下面的错误信息:Linking.First.obj:errorLINK2001:un

8、resolved external symbol “void_cdecl print(void)”(?printYAXXZ)Debug/MyProject.exe -2 error(s),0 warning(s)提示信息的第1、2行是“Linking.first.obj”,表示正在对first.obj进行连接,由于printf()函数没有定义,对该函数的的调用将使连接程序找不到这个函数的原型,因此报错。这种错误称为连接错误。连接错误比较容易纠正,需要掌握有关函数定义和说明的概念,并要保证相关系统文件在磁盘中存在。例如,stadio.h文件应该存在,“#include”stadio,h”语句才能

9、将该文件包含到当前程序中。(4)在编译窗口修改程序如下: #include”stadio.h”/*first one*/Viod print() Printf(“-n”);Void main() Printf(“welcomen”) Print(); Printf(“your name:n”); (5)再次进行编译和连接,都成功,运行程序得到正确结果。5、什么是运行错误Void main() char c;C=getchar()Switch c Case 0,1,2,3,4,5,6,7,8,9: printf (“%d”,c-0);break; Default :printf (“Data E

10、rror”);(1)将上面的程序编辑、编译后,错误信息包括:First.cpp(5) :error c2143 :syntax error :missing ; before switchFirst.cpp(5) :error c2061 :syntax error :missing ; identifire cFirst.cpp(5) :error c2043 :illegal breakCpp(7) :error c2047:illegal defaultFrst.obj-1 error(s),1 warning(s) 第一个错误提示信息是:第5行的switch语句缺少了分号,由于编译程序

11、检查下一行才能发现遗漏的分号,因此给出的行号5是不正确的,检查前面一行,“c=getchar()”后面缺少分号,应该加上。 第二个错误提示信息是:第6行的标识符c语法错误。检查前一行,c前后应该有圆括号,并且switch应该用花括号括起来。(2)将“swich c”改为“swith (c)”,并在switch和default两行的下面加上一对花括号。(3)再次编译,仍然有一个编译错误和一个警告提示。First.cpp(6):error c2051:case expression not constantFirst.cpp(8):warning c4065:switch statement co

12、ntains defaultbut no caselablesFirst.obj-1 error(s),1 warning(s)第一个错误提示:case 表达式不一致。实际上是case 的写法有问题。将语句“case 0,1,2,3,4,5,6,7,8,9: printf(“%d”,c-0);break;”修改为:Case 0: case 1 : case 2 case 3: case4:Case 5:case 6: case 7 : case 8 case 9: printf(“%d”,c-0);break;(4)再次编译,编译成功注意:这里只改了一个错误,编译却成功了,这种情况在调试过程中

13、会经常出现,修改了前面的一个错误,可以消除后面程序中的多个错误。(5)运行程序,输入1,借果输出1.程序正确。6、什么是逻辑错误操作步骤如下:(1)在编辑窗口中重新编辑first.cpp文件,使程序变为:#include “stadio.h”Void main() Printf(“%d / %d= %fn”,6,4,6/4);(2)按快捷键【F7】或选择Build Build命令对程序进行编译和连接,成功。(3)按快捷键【Ctrl+F5】或直接单击运行按钮“!”,运行程序。程序运行结果:6/4=0.000000显然,这不是我们需要的结果。我们需要的结果是1.5,并用%f显示浮点数。但是程序运行

14、的结果却是0。 在程序经过正确的编译和连接后,运行也有了结果,但是却不是我们想要的结果,这就是所谓的逻辑错误。逻辑错误是最难查找的错误。这类错误往往来自于编程者对问题的错误理解和对程序设计工具的不了解。 本例程序中,表达式“6/4”中的运算符“/”是整除符号,其结果是整数1,整数1却用%f控制显示,当然不能得到正确的结果。 正确的显示方法是: Printf(“%d / %d= %fn”,6,4,6,0/4); 程序运行结果: 6/4=1.500000 当然,如果需要求整除的结果,则可以使用语句: Printf(“%d / %d= %dn”,6,4,6/4); 程序运行结果: 6/4=1 关于逻

15、辑错误的查找方法,将在后面的练习中讲解。实验(二) 基本数据类型与运算符 实验时间:5月22日同组人员:赵兰 实验目的(1)掌握c语言中变量的定义方法,这些变量的数据类型是基本数据类型。(2)掌握整型数据类型的格式输入和输出方法。(3)掌握浮点数据类型的格式输入和输出方法。(4)掌握字符数据的格式输入和输出方法。(5)掌握putchar()和getchar()函数的调用方法。(6)掌握算数运算符的用法。(7)掌握关系运算符的用法。(8)掌握逻辑运算符的用法。(9)掌握位逻辑运算符的用法。(10)掌握调试程序的简单技巧。实验内容1、练习用各种基本数据类型定义变量和输出方式。2、练习使用scanf

16、()函数接收数据。3、练习使用scanf()函数接收带有特殊格式的数据。4、通过调试,将下面的程序修改为正确的程序。5、编写程序练习题的结果。实验步骤1、练习用各种基本数据类型定义变量和输出方式。操作步骤如下:(1)打开工作空间MyWorkspace中的MyProject项目。(2)打开Windows的记事本,将first.cpp文件中的整个程序复制到笔记本的编辑窗口中,另存为一个文件。这样,就可以将第一个练习中的源程序保存起来。 接着,将新的程序输入MyProject项目中的文件first.app中(覆盖原来的内容),并对其进行调试。本书中的实验指导主函数所在的源程序都存入文件first.c

17、pp中。 当然,我们也可以建立一个新的工作空间、新的项目以及新的文件first.cpp。(4)在编辑窗口中编辑first.cpp文件,内容如下:#include “stadio.h”Void main()int a=1,b=2,c=3;Printf(“%d+%d+%d=%dn”,a.b.c.a+b+c);(5)按快捷键【Ctrl+F7】或选择Build -Build命令对程序进行编译和连接。(6)按快捷键【Ctrl+F5】或直接单击“!”,运行程序,运行结果正确。(7)在编辑窗口中编辑first,cpp文件,内容如下:#include “stadio.h”Void main() double

18、a=1.0,b=2.0,c=3.0; Printf(%d+%d+%dn”,a,b,c,a+b+c);(8)重新编译、连接并运行程序。程序运行结果:0+0+0=16638这是一个错误结果。程序不能完成预定的功能,原因是显示格式的错误,初学者通常不能注意到这点。数据类型变化以后,输出方式也必须随之变化,否则就会遇到本例的问题。(9)将语句“ Printf(%d+%d+%dn”,a,b,c,a+b+c);”改为 “ Printf(%1f+%1f+%1fn”,a,b,c,a+b+c);”。(10)编译、连接并运行程序,得到正确结果。2、练习使用scanf()函数接收数据。操作步骤如下:(1)在编辑窗口

19、中重新编辑first.cpp文件,内容如下:#include “stadio .h”Void main() int a,b,c; Printf(“please enter 3 int:”); Scanf(“%d%d%d=%dn”,a,b,c,a+b+c);(2)编译、连接并运行程序。程序运行时,在提示语句“please enter 3 int:”出现后,输入“1 2 3”,得到正确结果。(3)再次执行程序。 程序运行时,在提示语句“piease enter 3 int:”出现后,输入“1、2、3、”,但是系统却在等待操作者输入下一个数。因为123三个数中间没有用空白符分离,系统将其认为是一个数

20、。我们必须再输入两个数:34 5程序才能正确接收数据,但这时系统计算的是123+4+5的值。空白符是指空格符、回车符和tab符,因此,要想让程序正确的接收数据,正确的输入格式不止一个,还可以有许多组合。例如:输入可以为:123(4)再次运行程序时,选择不同的输入格式进行测试。3、练习使用scanf()函数接收带有特殊格式的数据。操作步骤如下:(1)在操作窗口中重新编辑first.cpp文件,内容如下:#include “stadio.h”Void main() int a,b,c; Printf(“请输入时间(格式为00:00:00):”); Scanf(“%d:%d:%d”,&a,&b,&c

21、); Printf(时间是%d:%d:%d:,a,b,c);(2)编译、连接并运行程序。 程序运行时,在提示语句“请输入时间(格式为00:00:00):”,出现后,输入“13 30 05”,运行结果为“时间是:13:-858993460:-858993460”。 显然,程序没有正确接收数据。原因是:在scanf函数中,格式控制除了%开头的格式控制,出现的其他字符应该是由用户在程序运行时输入,否则,scanf()函数不能正确接收输入。(3)再次运行程序。 在提示语句“请输入时间(格式为00:00:00):”出现后,输入“13:30:05”。4、通过调试,将下面的程序修改为正确的程序。#inclu

22、de (stadio.h)Void main int a=6;b=8;c; C=a*b; Printf(%d,c);操作步骤如下:(1)在操作窗口中重新编辑first.cpp文件,内容如上。(2)编译该程序,编译的结果是该程序有4个错误,对错误的提示信息包括:First.cpp : error c2006:#include expected a filename, foundFirst.cpp :error c2146 sytax error ;missing;before identifier mainFirst.cpp :error c2501 void; missing storage-

23、class or type specifiersFirst.cpp :fatal error c1004 :unecpected end of file foundFirst.obj - 4 error (s), 0 warning(s) 分析这四个错误产生的原因。第一个错误在第一行,错误的原因是:“include在需要一个文件名的的地方发现了花括号”,根据提示,可以发现#inclide后面的stadio.h文件应该用双引号;剩下的3个错误都在第三行,错误的原因分别是:“标识符main前缺少分号”、“void前缺少类型说明”和“不期望文件结束”,这几行提示并不是非常准确,因为c编译程序有自己的

24、判断语法和说明,但我们还是能够发现声明主函数语句的V和M用大写是错误的,并且函数名后面没有使用圆括号。(3)将编辑窗口中的第一行修改为“#include”stdio.h”,第二行修改为“void main()”,第五行修改为“printf(“%d”,c);”。(4)再次编译程序,编译程序还是发现两个错误。这说明经过修改的程序很有可能被编译系统发现新的错误。First,cpp(3):error c2065: b:undecleaed identifiersecond.,cpp(3):error c2065: c:undecleaed identifierFrst.obj - 2 error(s)

25、, 0 warning(s)这两个错误都在第三行,错误的原因分别是符号b没有定义和符号c没有定义,原来,程序在 int a=6后面使用的是分号,从而结束了定义语句,使b=8;c中的b和c成为没有经过定义的变量,c语言规定,没有定义的变量是不能使用的。(5)在编辑窗口中将语句int a=6;b=8;c;改为inta=6,b=8,c;。(6)Compiling. First.cpp filesmicrosoft visual studio myprojectsmyworkspacemyprojectfirst.cpp(5):errror c2664:printf:cannot convert pa

26、rameter 1from const int toconst char*Conversion from integral type to printer type requires reintpret _cast,c-style cast or function-style castError executing cl.exe.First.obj - 1 error(s), 0 warning(s) 这个错误在第5 行,错误的原因是:“不能将printf的第一个参数从整型变量转化成字符常量”,因为单引号括起来的是字符常量,而printf的第一个参数应该是字符串(字符串在系统内部通常用首地址表

27、示,地址是整型数),这样就可以发现%d应该是双引号。(7)第4 次编译程序,编译成功。5、编写程序练习题的结果。 如果有些习题没有答案,不妨自己编写一个小程序来验证。对于不同的习题,程序的编写也会有些不同。 习题1:假设有定义“int j=6:;”,执行语句“j+=j-=j*j;后”j的值是多少? 习题2:若变量已正确定义和赋值。下列表达式中那些符合c语言语法?x=y+7=z*6 16.5%3 x=y=z*6 x:=y操作步骤如下:(1)为了求解习题1,编写程序如下:#include “stadio.h”Void main() int j=6;J+=j-=j*j;Printf(“j=%d”,j

28、)(2)编译、连接并运行上面的程序,得到运行结果“j=-60”。因此,习题的答案是: j的值是-60.(3)为了求解习题2,编写程序如下:#include “stadio.h” int x,y,z,i;X=y+7=z*6;/*i=16.5%3;printf (“i=%d”,i);*/x=y=z*6;*/Printf (“x=%d y=%d z=%d ”,x,y,z,);注意:由于要判断表达式是否正确,所以要将所有的表达式加上分号以后写在程序里。为了调试方便,先将后面3个表达式暂时用注释行符号括起来,这三行将不被编译。(4)编辑和编译上面的程序,编译出现了错误,说明表达式“x=y+7=z*6;”

29、错误。(5)(5)删除程序中的“x=y+7=z*6;”语句,同时去掉i=16.5%3;printf (“i=%d”,i)前后的注释符号,将程序改为:#include “stadio.h” X=y+7=z*6; i=16.5%3;printf (“i=%d”,i);/x=y=z*6;*/x:=y;*/ Printf (“x=%d y=%d z=%d ”,x,y,z,);再次编译,仍然出错,说明表达式“int “16.5%3不正确”。(6)将上面的程序删除“i=16.5%3;printf (“i=%d”,i)”语句,同时去掉“x=y=z*6;”前后的注释符号,再次编译,这次编译没有出错。说明表达式

30、“x=y=z*6;是正确的。但是,编译的结果有两个警告信息:First.cpp(3): warning c4101:i :unrefrenced local variable First .cpp(3):warning c4700: local variable zused without having been innitialized First.obj -0 error(s),2 warning(s) 警告信息一般不影响程序的运行,有时也能帮助发现程序的逻辑错误。本例的第一个警告信息是说程序中的i是没有用的局部变量,因为现在我们调试的程序,在定义了i以后一直也没有用到它。另一个警告信息是说程序中的局部变量a在使用之前还没有赋初值,因为程序在定义了z以后没有为他赋值,却在表达式中使用了它,那么,它的值将是不定值。(7)

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

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