《C程序设计》实验报告已修订.docx
- 文档编号:24348769
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:67
- 大小:820.85KB
《C程序设计》实验报告已修订.docx
《《C程序设计》实验报告已修订.docx》由会员分享,可在线阅读,更多相关《《C程序设计》实验报告已修订.docx(67页珍藏版)》请在冰豆网上搜索。
《C程序设计》实验报告已修订
西安交通大学
《C程序设计》实验报告
班级:
学号:
姓名:
第1章
程序设计和C语言
1.1要点介绍·································································1
1.2实验目的·································································1
1.3实验要求·································································1
1.4实验内容·································································2
1.5分析收获·································································4
第2章算法——程序的灵魂
2.1要点介绍·································································6
2.2实验目的·································································6
2.3实验要求·································································6
2.4实验内容·································································7
第3章最简单的C程序设计——顺序程序设计
3.1要点介绍·································································8
3.2实验目的································································12
3.3实验要求································································12
3.4实验内容································································13
3.5分析收获································································19
第4章选择结构程序设计
4.1要点介绍································································20
4.2实验目的································································22
4.3实验要求································································22
4.4实验内容································································22
4.5分析收获································································26
第5章循环结构程序设计
5.1要点介绍································································27
5.2实验目的································································27
5.3实验要求································································27
5.4实验内容································································28
5.5分析收获································································30
第6章利用数组处理批量数据
6.1要点介绍································································31
6.2实验目的································································31
6.3实验要求································································31
6.4实验内容································································31
第7章用函数实现模块化程序设计
7.1要点介绍································································37
7.2实验目的································································37
7.3实验要求································································37
7.4实验内容································································38
第8章善于利用指针
8.1要点介绍································································40
8.2实验目的································································40
8.3实验内容································································40
8.4分析收获································································42
第9章用户自己建立数据类型
9.1要点介绍································································43
9.2实验目的································································44
9.3实验内容································································44
第1章程序设计和C语言
1.1要点介绍
1.1.1 C语言程序的结构
(1)一个程序由一个或多个源程序文件组成
①预处理指令
②全局声明
③函数定义
(2)函数是C程序的主要组成部分
(3)一个函数包括两个部分
①函数首部
②函数体
·声明部分
·执行部分
(4)程序总是从main函数开始执行的
(5)程序中对计算机的操作是由函数中的C语句完成的
(6)在每个数据声明和语句的最后必须有一个分号
(7)C语言本身并不提供输入输出语句
(8)程序应当包含注释
1.1.2程序设计的任务
(1)问题分析
(2)设计算法
(3)编写程序
(4)对源程序进行编辑、编译和链接
(5)运行程序,分析结果
(6)编写程序文档
1.2实验目的
1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。
2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。
3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。
1.3实验要求
1.熟悉Visual C++的启动和退出及Visual C++中的编辑、编译、连接和运行命令。
2.了解下列命令及函数:
include
3.熟悉Visual C++环境下每个菜单项的功能及相关命令对应的操作。
4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。
int、short (int)、long (int)、unsigned (int)、float、double、char、void
5.各类运算符的优先级和结合规则。
6.常量与变量的区别和联系。
1.4实验内容
·VisualC++的启动
在桌面上顺序选择“开始”“程序””MicrosoftVisualStudio”
VisualC++6.0
如果桌面上有VisualC++6.0的快捷方式的图标,
可以直接双击打开
·选择选择”文件”>”新建”,选中“工程”选项卡,选择”Win32ConsoleApplication”,并输入工程名称和工程所在目录位置。
·选择“新建”>“文件”,选中“文件”选项卡,选择C++SourceFile,然后输入文件名,注意建立C文件时要输入扩展名,例如test.c
·编写程序,写完之后在主菜单栏中选择File(文件)Save(或者直接按ctrl+s)
题目一、
#include
intmain()
{
printf("2130505099田博文");//输出自己的学号和姓名
return0;
}
题目二、
#include
intmain()
{
printf("helloworld");//输出"helloworld"
return0;
}
·运行程序:
按组合键“Ctrl+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!
”工具运行程序。
1.5分析收获
·程序的调试
一,简单调试方法:
步骤
1,在程序中插入打印语句、优点是能够显示程序的动态过程,比较容易检查源程序的有关信息。
确定是效率低,可能输入大量无关的数据,发现错误带有偶然性。
2,运行部分程序。
有时为了测试某些被怀疑有错的程序段,却将整个程序反复执行许多次,在这种情况下,应设法使被测程序只执行需要检查的程序段,以提高效率。
3,借助调试工具。
目前大多数程序设计语言都有专门的调试工具,可以用这些工具来分析程序的动态行为。
二,回溯法排错。
确定最先发现错误症状的地方,人工沿程序的控制流往回追踪源程序代码,直到找到错误或范围。
三,归纳法排错。
是一种系统化的思考方法,是从个别推断全体的方法,这种方法从线索(错误征兆出发),通过分析这些线索之间的关系找出故障。
主要有4步:
(1)收集有关数据。
收集测试用例,弄清测试用例观察到哪些错误征兆,以及在什么情况下出现错误等信息。
(2)组织数据。
整理分析数据,以便发现规律,即什么条件下出现错误,什么条件下不出现错误。
(3)导出假设。
分析研究线索之间的关系,力求找出它们的规律,从而提出关于错误的一个或多个假设,如果无法做出假设,则应设计并执行更多的测试用例,以便获得更多的数据。
(4)证明假设。
假设不等于事实,证明假设的合理性是极其重要的,不经证明就根据假设排除错误,往往只能消除错误的征兆或只能改正部分错误。
证明假设的方法是用它解释所有原始的测试结果,如果能圆满地解释一切现象,则假设得到证明,否则要么是假设不成立或不完备,要么是有多个错误同时存在。
四,演绎法排错。
设想可能的原因,用已有的数据排除不正确的假设,精化并证明余下的假设。
5、对分查找法。
如果知道每个变量子啊程序内若干个关键点上的正确值,则可用赋值语句或输入语句在程序中的关键点附近“注入”这些变量的正确值,然后检查程序的输出。
如果输出结果是正确的,则表示错误发生在前半部分,否则,不妨认为错误在后半部分。
这样反复进行多次,逐渐逼近错误位置。
第二章 算法——程序的灵魂
2.1要点介绍
2.1.1算法的特性
(1)有穷性。
一个算法应包含有限的操作步骤,而不能是无限的。
(2)确定性。
算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。
(3)有零个或多个输入。
所谓输入是指在执行算法时需要从外界取得必要的信息。
(4)有一个或多个输出。
算法的目的是为了求解,“解”就是输出。
没有输出的算法是没有意义的。
(5)有效性。
算法中的每一个步骤都应当能有效地执行,并得到确定的结果。
2.1.2用计算机语言表示算法
要完成一项工作,包括设计算法和实现算法两个部分。
设计算法的目的是为了实现算法。
不仅要考虑如何设计一个算法,也要考虑如何实现一个算法。
2.1.3结构化程序设计方法
结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。
结构化程序设计方法的基本思路是:
把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。
采取以下方法保证得到结构化的程序:
(1)自顶向下;
(2)逐步细化;
(3)模块化设计;
(4)结构化编码。
2.2实验目的
在设计算法的基础上考虑实现算法。
用计算机解题,也就是要用计算机实现算法,而计算机室无法识别流程图和伪代码的,只有用计算机语言编写的程序才能被计算机执行,因此在用流程图或伪代码描述一个算法后,还要将它转换成计算机语言程序。
用计算机语言表示的算法是计算机能够执行的算法。
2.3实验要求
用计算机语言表示算法必须严格遵循所用的语言的语法规则,这是和伪代码不同的。
2.4实验内容
题目一、将算法(求5!
)用C语言表示。
#include
intmain()
{inti,t;
t=1;
i=2;
while(i<=5)
{t=t*i;
i=i+1;
}
printf("%d\n",t);
return0;
}
题目二、
将算法(求多项式
的值)用C语言表示。
#include
intmain()
{intsign=1;
doubledeno=2.0,sum=1.0,term;
while(deno<=100)
{sign=-sign;
term=sign/deno;
sum=sum+term;
deno=deno+1;
}
printf("%f\n",sum);
return0;
}
第3章顺序程序设计
3.1要点介绍
3.1.1数据的表现形式及其运算
3.1.1.1常量和变量
(1)常量:
在程序运行过程中,其值不能被改变的量
·整型常量:
如1000,12345,0,-345
·实型常量
·十进制小数形式:
如0.34-56.790.0
·指数形式:
如12.34e3(代表12.34103)
·字符常量:
如’?
’
·转义字符:
如’\n’
转义字符及其作用
转义字符
意义
ASCII码值(十进制)
\a
响铃(BEL)
007
\b
退格(BS),将当前位置移到前一列
008
\f
换页(FF),将当前位置移到下页开头
012
\n
换行(LF),将当前位置移到下一行开头
010
\r
回车(CR),将当前位置移到本行开头
013
\t
水平制表(HT)(跳到下一个TAB位置)
009
\v
垂直制表(VT)
011
\\
代表一个反斜线字符''\'
092
\'
代表一个单引号(撇号)字符
039
\"
代表一个双引号字符
034
\0
空字符(NULL)
000
\ddd
1到3位八进制数所代表的任意字符
三位八进制
\xhh
1到2位十六进制所代表的任意字符
二位十六进制
注意:
区分,斜杠:
"/"与反斜杠:
"\",此处不可互换
·字符串常量:
如”boy”
·符号常量:
#definePI3.1416
(2)变量:
在程序运行期间,变量的值是可以改变的
·变量必须先定义,后使用
·定义变量时指定该变量的名字和类型
·变量名和变量值是两个不同的概念
·变量名实际上是以一个名字代表的一个存储地址
·从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据
(3)常变量:
constinta=3;
(4)标识符:
一个对象的名字
C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线
合法的标识符:
如sum,average,_total,Class,day,BASIC,li_ling
不合法的标识符:
M.D.John,¥123,#33,3D64,a>b
3.1.1.2数据类型
·扩充的整型类型:
有符号基本整型[signed]int;
无符号基本整型unsignedint;
有符号短整型[signed]short[int];
无符号短整型unsignedshort[int];
有符号长整型[signed]long[int];
无符号长整型unsignedlong[int]
有符号双长整型[signed]longlong[int];
无符号双长整型unsignedlonglong[int]
3.1.1.3整型数据
3.1.1.4字符型数据
(1).字符与字符代码
大多数系统采用ASCII字符集
字母:
A~Z,a~z
数字:
0~9
专门符号:
29个:
!
”#&‘()*等
空格符:
空格、水平制表符、换行等
不能显示的字符:
空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回车(以‘\r’表示)等
·字符’1’和整数1是不同的概念:
字符’1’只是代表一个形状为’1’的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字节
·整数1是以整数存储方式(二进制补码方式)存储的,占2个或4个字节
00000000
00000001
(2).字符变量
·用类型符char定义字符变量
charc=’?
’;
系统把“?
”的ASCII代码63赋给变量c
printf(”%d%c\n”,c,c);
输出结果是:
63?
3.1.1.5浮点型数据
浮点型数据是用来表示具有小数点的实数
·float型(单精度浮点型)
编译系统为float型变量分配4个字节
·double型(双精度浮点型)
编译系统为double型变量分配8个字节15位有效数字
·longdouble(长双精度)型
3.1.1.6怎样确定常量的类型
字符常量:
由单撇号括起来的单个字符或转义字符
整型常量:
不带小数点的数值
系统根据数值的大小确定int型还是long型等
浮点型常量:
凡以小数形式或指数形式出现的实数
C编译系统把浮点型常量都按双精度处理分配8个字节
3.1.1.7运算符和表达式
(1)基本的算术运算符:
+:
正号运算符(单目运算符)
-:
负号运算符(单目运算符)
*:
乘法运算符
/:
除法运算符
%:
求余运算符
+:
加法运算符
-:
减法运算符
说明
两个整数相除的结果为整数
如5/3的结果值为1,舍去小数部分
如果除数或被除数中有一个为负值,舍入方向不固定。
例如,-5/3,有的系统中得到的结果为-1,在有的系统中则得到结果为-2
VC++采取“向零取整”的方法
如5/3=1,-5/3=-1,取整后向零靠拢
%运算符要求参加运算的运算对象(即操作数)为整数,结果也是整数。
如8%3,结果为2
(2)自增、自减运算符:
作用是使变量的值1或减1
++i,--i:
在使用i之前,先使i的值加(减)1
i++,i--:
在使用i之后,使i的值加(减)1
(3)算术表达式和运算符的优先级与结合性:
用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为C算术表达式
运算对象包括常量、变量、函数等
C语言规定了运算符的优先级和结合性
(4)不同类型数据间的混合运算:
+、-、*、/运算的两个数中有一个数为float或double型,结果是double型。
系统将float型数据都先转换为double型,然后进行运算
(2)如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型
(3)字符型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算
3.2实验目的
1.熟悉C语言的表达式语句、空语句和复合语句。
2.熟悉函数调用语句,尤其是各输入输出函数的调用语句。
3.熟悉顺序结构程序中语句的执行过程。
4.熟悉程序的跟踪调试和变量值的监视。
5.能设计简单的顺序结构程序。
3.3实验要求
1.熟悉下列函数:
putchar、getchar、printf、scanf 2.了解顺序结构程序的执行过程。
3.了解程序的跟踪调试和变量值的监视并能够熟练操作。
单步跟踪调试(逐条语句跟踪调试):
(1)可按功能键F7进行,要监视某变量的值时,就按Ctrl+F7键,然后输入相应的
变量名,就可以在监视消息窗口中查看到该变量的值。
(2)也可逐段运行程序,即每次运行若干条语句。
首先利用Ctrl+F8键在各行光标
处设置若干断点,然后按Ctrl+F9键从程序的第一条语句运行到设置的第一个断 点,再按Ctrl+F9键从设置的第一个断点运行到设置的第二个断点。
4.了解顺序结构程序的一般构成。
3.4实验内容
题目一、有人用温度计测量出用华氏法表示的温度(如F,今要求把它转换为以摄氏法表示的温度(如C)。
解题思路:
找到二者间的转换公式
-------------------------------------------------------------------------
#include
intmain()
{
floatf,c;
f=64.0;
c=(5.0/9)*(f-32);
printf("f=%f\nc=%f\n",f,c);
return0;
}
题目二、计算存款利息。
有1000元,想存一年。
有三种方法可选:
(1)活期,年利率为r1
(2)一年期定期,年利率为r2
(3)存两次半年
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计 程序设计 实验 报告 修订