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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言程序设计课程实践指导31.docx

1、C语言程序设计课程实践指导31第一章 绪论上机实习:WiN-TC系统的基本操作方法一、目的要求1、 掌握C程序的基本结构。2、 熟悉WiN-TC系统的操作界面。3、 能熟练地启动WiN-TC和退出WiN-TC。4、 掌握在WiN-TC中建立、运行、修改、保存和装入程序的方法。5、 掌握插删字符和插删行等基本的编辑操作。二、上机内容下面是三个从最简单到稍复杂的C程序,仔细阅读程序并领会各程序的运行结果,以熟悉C程序的基本结构和WiN-TC的基本操作流程。1、 main() printf( Hello China!);(1) 调试该程序。(2) 在函数体中插入一行语句,使上面的程序变成:main(

2、) clrscr(); /* 清屏 */ printf(Hello China!);再次运行程序并仔细观察运行结果,这次是先清屏,再从屏幕的左上角开始显示“Hello China!”。说明:清屏函数clrscr(),先清屏再显示出运行结果2、 main() int a,b,sum; a=1; b=2; sum=a+b; clrscr(); printf(sum=%d,sum);(1) 运行该程序,对比自己的判断与屏幕上的结果是否一致。(2) 删除函数体第一行中的变量定义语句“int a,b,sum;”,或将该语句注释起来。再运行程序,看看会有什么结果。3、 main() int a,b; a=

3、2; b=pf(a); printf(a=%d, b=%d,a,b); pf(num) int num; int t; t=num*num; return(t); (1) 运行程序后分析该程序执行的功能。(2) 将程序中的main()函数改写如下:main() int a,b; clrscr(); scanf(%d, &a); b=pf(a); printf(a=%d, b=%d,a,b); 再运行程序,当从键盘输入2时,输出: a=2, b=4从键盘输入5时,输出: a=5, b=25如果是第二种情况会有什么好处?使用scanf函数的好处是,可以在程序的运行过程中灵活地输入我们想求平方的一个

4、数,并根据该数输出其平方值。第二章 基本数据类型和简单程序设计第一节 学习指导一、 学习目标本章重点介绍了C语言的三种基本数据类型,即整型、浮点型和字符型,以及这三种数据类型的简单程序设计。每个程序都有自己特定的数据处理对象,例如,求123100之和的程序,它的数据对象是整数;求一元二次方程的根的程序,它的数据对象是小数。可以说,任何程序设计都会涉及到对数据的处理,因此,如何在程序中表示数据是一个最基本的问题。学习本章的目的,就是要了解各种基本数据类型的特点,知道如何在程序中使用这些类型的数据,在定义变量时如何根据实际需要随机应变。本章学习目标如下:1、 了解三种基本数据类型的特点。2、 掌握

5、三种基本数据类型常量的表示方法。3、 熟练掌握三种基本数据类型变量的定义方法。4、 了解混合运算中的类型转换。二、 几个需要注意的问题1、 常量与变量。要记住常量和变量的定义很容易,前者是在程序运行过程中其值不能改变的量,后者是在程序运行过程中其值允许改变的量。但是,对第一次学习程序设计的初学者来说,往往弄不明白编程时什么时候使用常量,什么时候使用变量。举一个简单的例子,如果你仅仅是想求13与25之和,那么可以在程序中写出下面的语句: printf(%d,13+25);这里,13和25就是常量,这个语句中没有出现任何一个变量。但是,如果你是想求两个数之和,而这两个数又是根据不同的需要而改变的,

6、那么就可以在程序中利用定义变量的方法解决,如下面的语句: printf(%d,a+b);或: sum=a+b; printf(%d,sum);这里,a、b、sum就是变量,在执行a+b之前,可以通过输入语句给它们赋值,也可以通过赋值语句,把常量或表达式的值分别赋给它们。总之,a和b的值是可变的。2、 变量名的命名规则。程序中的每个变量都有一个名字,变量名在定义该变量时就确定了。并非任何一个字符序列都可以作为一个变量名,只有符合一定规则的名字才是有效的。(1) 变量名只能由字母(AZ,az)、数字(09)和下划线(_)三种符号组成,第一个字符必须是字母或下划线。下面是合法的变量名:Y,stude

7、nt2,student_name,_page10下面是不合法的变量名:2student,sum$3,dr.a,#num(2) 大写字母与小写字母代表含义不同的字符,即两者不等价。如,sum、Sum和SUM代表三个完全不同的变量。(3) Turbo C规定,变量名的前32个字符在程序中是有效的。尽管语法允许给变量取一个如此长的名字,但根据一般的编程经验,变量名的长度通常在8个字符以内就行了,没有必要取太长的名字自找麻烦。(4) 不允许使用关键字作变量名。关键字是C语言的编译程序定义的有固定用法的名字,如,关键字int的作用是定义一个整型变量,因此,用户就不能再用int来作为某个变量的名字。除了变

8、量名必须遵守上述命名规则,在后面章节中介绍的数组名、函数名和数据类型名等也必须遵守这些命名规则。另外,为了提高程序的可读性,给变量命名时最好能做到“见名知意”。3、 变量的定义。C语言规定,程序中的变量必须是“先定义,后使用”。初学者往往容易忽略在使用变量之前先定义变量,这一点一定要注意。(1) 一个变量就是一个存储区域,它能存储相同类型的不同数据,使用变量名就是使用变量存储区域中存储的数据。(2) 把某个变量定义为哪一种基本类型,关键是看打算用该变量存储什么数据。例如,想用一个变量存放单个字符,则可把该变量定义为char型;若想存放1100之间的整数,则可把该变量定义为int型;若想存放小数

9、,则可把该变量定义为float型。定义变量时还应考虑数据的大小范围。试分析下面的程序:main() int a,b,c; a=20000; b=30000; c=a+b; printf(c=%d,c);不要以为这个程序的运行结果会是c=50000,事实上,它的运行结果是c=-15536。因为变量c的类型是int型,它所能存放的最大整数是32767,而a与b之和50000超出了这个范围,运行结果自然就出错了。要想得出正确的运行结果,上面的程序应改为:main() int a,b; unsigned c; a=20000; b=30000; c=a+b; printf(c=%u,c); /* %u

10、表示以unsigned型整数的形式输出变量的值 */(3) 定义一个变量时应尽可能地考虑节省存储空间。例如,某个程序中的变量a用来存放100以内的自然数,那么,变量a可以定义为int类型,也可以定义为long类型。选哪一种呢?当然是int型!因为,一个int型变量只占2个字节,而long型变量却要占4个字节。三、易出现的语法错误及出错信息上机操作时,有语法错误的程序不能顺利通过编译过程,这时,出错信息会出现在Massage窗口中,每条出错信息前有一个用来报告错误所在行的行号,可以按这个行号查找程序中出错的地方,修改之后再重新对程序进行编译。下面列出了在定义变量时易出现的语法错误及相应出错信息。

11、1、 变量没有定义。出错信息: Undefined symbol XXXX 分析:C语言规定,变量使用之前必须先定义。这条出错信息产生的原因是使用了一个没有定义过的变量。程序示例:main() a=2; b=3; printf(%d,a+b);这个程序在编译时,Massage窗口中将显示出第3行的变量a和第4行的变量b没有定义的出错信息。又如:main() int a;b; a=2; b=3; printf(%d,a+b);这个程序好象没有什么错误,但编译时Massage窗口中将显示出: Undefined symbol b in function main为什么呢?仔细观察,你会发现程序的第

12、三行定义变量a和b时,a与b之间是分号而不是逗号。分号代表一个语句的结束,因此,分号后面的b就没有定义了。这好象是一个很好笑的错误,但是,对粗心的初学者来说,上机时往往会因忽略细节而导致程序的失败。2、 定义变量时的语法错误。出错信息: Declaration syntax error分析:通常这条信息的出错之处在变量定义或函数定义中,而定义中具体的语法错误又可能是多种多样的,所以,这是一条较难查找的错误。下面的程序示例给出了两种导致这条信息的变量定义错误。程序示例:main() int a b; a=2; b=3; printf(%d,a+b);这个程序的错误之处是,第3行定义变量时,变量a

13、和b之间用的是空格间隔,而不是用逗号间隔。又如:main() float 2s; 2s=26.8; printf(%f,2s);这个程序中使用了一个名字不合法的变量,即2s。注意,变量名必须以字母或下划线开头。第二节上机实习:基本数据类型的简单程序设计一、目的要求1、 进一步熟悉Turbo C集成环境下程序的建立、修改和运行。2、 熟悉定义各种基本数据类型变量的方法。3、 初步了解printf函数的使用方法。4、 熟悉有关变量定义的语法错误,并能够根据出错信息修改、调试程序。二、上机内容1、 语法错误的检查与修改。下面的程序均含有语法错误,在Turbo C集成环境中建立源程序并使用Run命令后

14、,仔细观察Massage窗口中的出错信息,并分析出错原因,找出程序中的错误所在之处。改正错误之后再重新运行程序。注意,出错信息显示在Massage窗口中时,可以按F6键在Massage窗口与Edit窗口之间切换。(1) main() int x1,x2; x1=5; x2=10; y=x1*x2; printf(y=%d,y);(2) main() FLOAT a; a=2.6; printf(%f,a*3);(3) main() int num#1; num#1=50; printf(%d,num#1/2);(4) main() char ch; ch=A; printf(%c,ch);2、

15、 分析程序的运行结果。上机之前先写出下面程序的运行结果,上机时再比较实际运行结果与自己分析的结果是否一致。(1) main() int num1,num2,num3; clrscr(); num1=4; num2=2; num3=num1/num2; printf(num3=%dn,num3); num1=12; num2=3; num3=(num1+num2)*2; printf(num3=%d,num3);(2) main() int r; float s; clrscr(); r=2; s=3.14159*r*r; printf(r=%dn,r); printf(s=%f,s);(3)

16、main() char c1,c2; clrscr(); c1=a; c2=b; printf(字母a的ASCII码为: %d n字母b的ASCII码为: %d,c1,c2);(4) main() char ch; clrscr(); ch=02; printf(%cn,ch); ch=03; printf(%c,ch);提示:这个程序中,02和03分别表示ASCII码为2和3的字符,前者是一个笑面符号,后者是一个心形符号。通过这种形式,可以输出不能用键盘符号表示的字符。上机操作时,你不妨将02和03分别改为04和05,看看会有什么运行结果。3、 编写一个简单的程序。已知三个整数分别为100、

17、82、93,编一程序求这三个数的平均值。要求使用变量。第三章 表达式与运算符第一节学习指导三、 学习目标本章重点介绍了几类常用的运算符,以及由这些运算符构成的表达式。在实际编程中,算术运算符和赋值运算符几乎是每个C程序都要用到的,这也是本章应重点掌握的内容。对于关系表达式和逻辑表达式,可能你觉得一时还用不上它们,但在后面的选择结构和循环结构的程序设计中,条件判断均是以关系表达式或逻辑表达式的形式表示,因此,理解并掌握关系运算符和逻辑运算符及其相关表达式,是学好选择结构和循环结构的基础。本章学习目标如下:1、 熟悉各种基本的算术运算符,能够把一个普通的数学公式改写成符合C程序语法规则的算术表达式

18、。2、 理解各种关系运算符和逻辑运算符的意义,能准确判断关系表达式和逻辑表达式的值。3、 熟练掌握赋值运算符和各种复合赋值运算符的用法。4、 熟悉各类常用运算符的优先级。四、 需要注意的几个问题1、 关于除法运算符。除法运算符“/”与一般的算术运算规则不同,当整型数据除以整型数据时,其商也是整数。除法运算符“/”的这一特点有时会影响运算结果的精确性,看下面求两个数的平均值的程序:main() int num1,num2,sum,n; float average; num1=13; num2=28; n=2; sum=num1+num2; average=sum/n; printf(%.2f,a

19、verage); /* %.2f 表示输出的浮点数只保留两位小数 */这个程序的运行结果是20.00,而不是20.50,因为变量sum和n都是是整型变量,相除的结果就是一个舍去了小数部分的整型数。如果想得到精确的运算结果,则可将程序中的语句: average=sum/n;改为: average=(float)sum/n;2、 关系表达式和逻辑表达式。关系表达式和逻辑表达式的值只有两种:1和0,即表达式为真时,其值为1,表达式为假时,其值为0。而在判断真与假时,则是0为假,非0为真。需要注意的是,数学上很常见的一种比较大小关系的写法,在C语言中却变成了另外的含义。如,要表示x的值在3和10之间,

20、数学上可以写为: 3x10而在C语言中,上面的式子等效于: (3x)10当x的值不在3和10之间时,这个关系表达式依然为真。这里,我们假设x的值为100,关系表达式3x为真,其值为1,而关系表达式110显然为真。因此,在C语言中要表示x的值在3和10之间,就应该写成下面的逻辑表达式: 3x & x103、 赋值运算符与赋值表达式。(1) 赋值运算符“=”不同于数学中的等号。在数学上,算式i=i+2显然不成立。但在C语言中,表达式i=i+2的作用是把变量i的值加上2,并把得到的和赋值到变量i中。(2) 特别要注意的是,赋值运算符的左边只能是一个变量名,而不能是一个常量或其它的表达式。下面都是错误

21、的赋值表达式: 13=a a+b=5 num*2=100如果程序中出现了错误的赋值表达式,则编译时Massage窗口中会显示下面的出错信息: Lvalue required(3) 给变量赋值时是“新来旧去”,即,把一个新的值赋给变量后,该变量中原来的值就被覆盖掉了。4、 运算符的优先级。C语言对每一种运算符都规定了优先级,有时候,在同一表达式中需要同时使用多种运算符,这时就要考虑各个运算符的优先级问题。第二节上机实习一:算术运算符及算术表达式一、目的要求1、 熟悉各种算术运算符的使用规则。2、 能够编写程序,求简单的数学算式的值。二、上机内容1、 运行下列程序,注意观察运行结果。(1) mai

22、n() int a=11,b=3; clrscr(); printf(a/b=%dn,a/b); printf(float)a/b=%fn,(float)a/b); printf(a%b=%d,a%b); /* “%”的作用是打印出字符“%” */(2) main() float x=3.8; clrscr(); printf(x=%.2fn,x); printf(int)x=%d,(int)x);(3) main() int a=7,b=4; float x=2.5,y; clrscr(); y=x+a%3*(int)(x+b)%2/4; printf(y=%f,y);2、 编写程序。已知:

23、 其中,a=-10,b=30。编一程序求y的值。3、 完善程序。已知一元二次方程: ax2+bx+c=0其中,a=1,b=4,c=2。下面的程序是求方程的两个实数根,请在横线处填写正确的语句或表达式,使程序完整。程序的后面给出了该程序正确的运行结果,上机调试完善后的程序,看看你的程序运行结果是否与书中的结果一致。# include main() int ; /* 定义变量a、b、c,并给变量赋初值 */ float d,x1,x2; clrscr(); d=sqrt( ); /* 求b2-4ac的平方根 */ ; /* 求x1的值 */ ; /* 求x2的值 */ printf(x1=%.2f

24、n,x1); printf(x2=%.2f,x2);运行结果为: x1=-0.59 x2=-3.41提示:求根公式为:C语言中计算平方根的函数是sqrt()函数,例如,sqrt(a+b)即是求a+b的平方根。第三节上机实习二:关系表达式和逻辑表达式一、目的要求1、 掌握各种关系运算符和逻辑运算符的功能。2、 能正确理解“真”、“假”的概念,及其在C语言中的表示形式。3、 能够把一个命题写成符合C语言语法规则的关系表达式或逻辑表达式。二、上机内容1、 运行下列程序,分析并观察运行结果。(1) main() int a,b,c; a=1; b=2; c=3; clrscr(); printf(a=

25、%d,b=%d,c=%dn,a,b,c); printf(ab 的值为:%dn,ab); printf(a=b 的值为:%dn,ab 的值为:%dn,cb);(2) main() int x=3,y=4,z=5; int b; clrscr(); printf(x=%d,y=%d,z=%dn,x,y,z); b=xy&xz; printf(xy&xz 的值为:%dn,b); b=xz; printf(xz 的值为:%dn,b); b=xz; printf(xz 的值为:%dn,b); b=!x; printf(!x 的值为:%dn,b); b=!(xy); printf(!(xy) 的值为:%

26、dn,b); b=(xy|xz)&yy|xz)&yz 的值为:%dn,b);(3) main() int x=20,y; clrscr(); y=2x10; printf(x=%dn,x); printf(2x10 的值为:%dn,y); y=2x&x10; printf(2x&x10 的值为:%d,y);2、 完善程序。已知,闰年符合下面两个条件之一:(1) 能被4整除,但不能被100整除;(2) 能被400整除。下面的程序验证2000年为闰年,请在横线处填写正确的运算符或表达式,使程序完整。程序的后面给出了该程序正确的运行结果,上机调试完善后的程序,看看你的程序运行结果是否与书中的结果一致

27、。提示:可以通过求余运算判断能否整除。若a%b的值为0,则表明a能被b整除。main() int year=2000,b; b=(year%4=0 year%100 0) ( ); clrscr(); printf(%d,b);运行结果:1第四节上机实习三:赋值运算一、目的要求1、 理解赋值运算符的意义,了解赋值运算符与数学中的等号的区别。2、 熟悉常用的复合赋值运算符以及自增和自减运算符。二、上机内容1、 下面的程序均有语法错误,上机调试程序,注意观察Message窗口中的出错信息,并根据出错信息改正程序中的错误之处。(1) main() int a; 0=a; printf(a=%d,a)

28、(2) main() int a; b=1,c=2; b+c=a; printf(a=%d,a);2、 运行下列程序,分析并观察运行结果。(1) main() int x,y; clrscr(); x=y=25; printf(x=%d,y=%d,x,y);(2) main() int x=3,y=2; clrscr(); x*=y+8; printf(1: x=%dn,x); x-=y; printf(2: x=%dn,x);(3) main() int a=10,b; clrscr(); b=a+; printf(a=%d,b=%dn,a,b); b=+a; printf(a=%d,b=%dn,a,b);3、 完善程序。下面程序的功能是交换变量a和b的值,请在横线处填写正确的表达式或语句,使程序完整。程序的后面给出了该程序正确的运行结果,上机调试完善后的程序,看看你的程序运行结果是否与书中的结果一致。提示:交换两个变量的值,需要一个中间变量来暂时存放其中一个变量的值。下面的程序段是错误的: a=b; b=a;若变量a的初值为1,b的初值为2,那么执行了第一个语句之后,变量a的值就变成了2,而不再是原来的值1。因此整

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2