电工学实验指导书.docx
- 文档编号:5636100
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:67
- 大小:370.16KB
电工学实验指导书.docx
《电工学实验指导书.docx》由会员分享,可在线阅读,更多相关《电工学实验指导书.docx(67页珍藏版)》请在冰豆网上搜索。
电工学实验指导书
大学计算机A(C语言)实验指导书
课程号:
制定人:
潘俊
2009年2月
实验一C-Free3.5编译环境的使用
【实验目的】
1.C-Free编译环境
2.熟悉C-Free较常用的功能,能够对所编写的程序进行编制、连接,并生成可执行文件
3.通过运行简单的C程序,初步了解C源程序的特点
【实验内容】
上机使用C-Free编写程序,并进行编译、连接、生成可执行文件
程序1:
1.启动C语言程序环境。
双击桌面上的图标
,进入C开发环境。
2.单击[文件]|[新建]命令或单击工具栏上的“新建文件”按钮
,这样在右边编辑窗口产生了一个空白的编辑区。
在编辑区输入设计好的C程序代码。
输入以下源程序
/*我的第一个程序*/
#include
voidmain()
{
printf("HelloWorld!
\n");
}
3单击[文件]|[保存]命令或单击工具栏上的“保存”按钮
,指定文件的保存位置和文件名(后缀名为.c)。
4.单击[构建]|[构建并运行]命令或按
,C-Free开始编译hello.c文件,编译的结果显示在信息区。
如果程序有错误,信息栏将显示错误信息,双击错误信息,编辑区将高亮显示错误的位置。
修改错误的代码再重新“运行”程序直至编译正确。
如果程序编译正确将形成同名的目标文件和可执行文件并自动将可执行文件的运行结果显示出来。
运行结果如图所示。
其他说明:
C-Free允许同时编辑多个程序,可以通过新建命令建立另一个C程序,通过“窗口”命令切换当前编辑和运行程序。
在关闭C-Free时如果出现“是否保存对……的修改?
”,请单击“是”按钮对该文件进行保存。
程序2:
编写程序计算两个数之和,程序代码如下:
说明:
1.本程序是要从键盘上输入两个数给a和b,计算并输出它们的和s。
2.第3行是程序的声明部分。
定义了变量a、b和s为整形变量。
C程序中的所有用到的变量都必须声明。
3.第5行调用系统提供的标准函数库中的输出函数scanf,输入变量a和b的值。
注意,&a,&b表示将数值输入到变量a和b的地址所标志的单元中;不能写成scanf("%d,%d",a,b);。
scanf函数中的"%d,%d"表示输入的格式是用逗号隔开的两个十进制整数。
4.第6行是赋值语句。
表示将变量a和b相加的结果赋给变量s。
5.第7行在使用printf函数输出时,格式"a+b=%d\n"表示原样输出字符“a+b=”之后再输出一个十进制整数,%d将由s的值取代之。
程序3:
编写程序寻找2个数中的较大数,代码如下:
说明:
1.本程序包含两个函数:
主函数main和被调用的函数max。
max函数的作用是将x和y中较大者的值赋给变量z,return语句将z值返回给主调函数main。
返回值是通过函数名max带回到main函数中调用max函数的位置。
2.程序的第6行c=max(a,b);是调用max函数,在调用时将实际参数a,b的值分别传给max函数中的形式参数x和y。
经过执行max函数得到一个函数值赋给变量c。
3.程序的第9行是max函数的首部。
定义了一个max函数,其中第一个int表示函数值为整型,括号内的两个int分别声明了形式参数x,y为整型。
4.程序的第12、13行是If语句,对条件x>y进行判断,如果x>y,那么将x的值赋给z,否则将y的值赋给z。
5.程序的第14行的return(z);语句将z的值作为函数值带回到main函数的调用处,即程序的第6行。
思考内容:
学有余力的同学请试试编写书上习题的程序:
习题1.5
习题1.6
实验二初识算法的基本结构
【实验目的】
4.掌握算法的概念,算法的特性和算法的表示;
5.了解各种程序设计方法的特点,初步建立起程序设计的概念。
【实验内容】
对于习题2.4的
(1)-(5)的内容,上机使用C-Free编写程序,并进行编译、连接、生成
可执行文件。
1.启动C语言程序环境。
双击桌面上的图标
,进入C开发环境。
2.单击[文件]|[新建]命令或单击工具栏上的“新建文件”按钮
,这样在右边编辑窗口产生了一个空白的编辑区。
在编辑区输入设计好的C程序代码。
3单击[文件]|[保存]命令或单击工具栏上的“保存”按钮
,指定文件的保存位置和文件名(后缀名为.c)。
4.单击[构建]|[构建并运行]命令或按
,C-Free开始编译hello.c文件,编译的结果显示在信息区。
如果程序有错误,信息栏将显示错误信息,双击错误信息,编辑区将高亮显示错误的位置。
修改错误的代码再重新“运行”程序直至编译正确。
如果程序编译正确将形成同名的目标文件和可执行文件并自动将可执行文件的运行结果显示出来。
习题2.4的程序代码:
(2)/*依次将10个数输入,要求打印其中最大的数*/
(3)/*有3个数a,b,c,要求按大小顺序把它们打印出来*/
(4)/*求1+2+3+...+100*/
(5)/*判断一个数n能否同时被3和5整除*/
选做题目:
习题2.4(6)-(10)
实验三数据类型、运算符和表达式
【实验目的】
6.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
7.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
8.进一步熟悉C程序的编辑、编译、连接和运行的过程。
【实验内容】
【例1】输入并运行下程序,写出运行结果。
在此基础上
1)加一个printf语句,并运行之。
printf(“%d,%d”,c1,c2);
2)再将第二行改为:
intc1,c2;
再使之运行。
3)再将第三行改为:
c1=300;c2=400;
再使之运行,分析其运行结果。
在该程序中,说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。
【例2】分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。
在该程序中,主要考查对转义字符的掌握情况。
【例3】
分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。
分别作以下改动之后,先分析再运行:
1)将第四行改为:
m=i++;n=++j;
2)程序改为:
3)在2)的基础上,将printf语句改为:
printf(“%d,%d”,++i,++j);
4)再将printf语句改为:
printf(“%d,%d,%d,%d”,i,j,i++,j++);
5)将程序改为:
此程序主要考查自加、自减运算符以及复合运算符的用法。
思考题:
请验证书上的例题:
例题3.1—3.9
实验四简单的C程序设计
【实验目的】
1.理解C语言程序的顺序结构
2.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。
【实验内容】
1.输入一个华氏温度,要求输出摄氏温度。
公式为
输出要求有文字说明,取两位小数
说明:
(1)摄氏温度F和华氏温度c都应用float类型变量存储
(2)注意表达式书写中的各变量的顺序问题
(3)输出时只需输出两位小数
参考程序如下:
#include
main()
{
floatF,c;
printf("inputF:
");
scanf("%f",&F);
c=5*(F-32)/9;
printf("c=%.2f\n",c);
}
2.输入三角形三边长
、
、
,求三角形周长和
面积
。
用scanf输入数据,输出计算结果,输出时要求有文字说明。
说明:
(1)程序设计中使用的所有变量均为float类型
(2)三角形周长公式:
(3)三角形面积公式;
,其中
(4)注意应保证输入数据能够构成三角形
(5)需要使用开根号函数sqrt,在程序顶部加上#include
(6)以
,
,
运行程序,查看执行结果
参考程序如下:
#include
#include
main()
{
floata,b,c,l,s;
floatp;
printf("inputa,b,c:
");
scanf("%f,%f,%f",&a,&b,&c);
l=a+b+c;
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("l=%.2f\n",l);
printf("s=%.2f\n",s);
}
4.设圆半径
,圆柱高
,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据,输出计算结果,输出时要求有文字说明,取消书店后两位小数。
说明:
(1)程序设计中使用的所有变量均为float类型
(2)圆周长公式:
(3)圆面积公式:
(4)圆球表面积公式:
(5)圆球体积公式:
(6)圆柱体积公式:
参考程序如下:
#include
#definePI3.14
main()
{
floatr=1.5,h=3;
floatl,s1,s2,v1,v2;
l=2*PI*r;
s1=PI*r*r;
s2=4*PI*r*r;
v1=4*PI*r*r*r/3;
v2=PI*r*r*h;
printf("l=%.2f\n",l);
printf("s1=%.2f\n",s1);
printf("s2=%.2f\n",s2);
printf("v1=%.2f\n",v1);
printf("v2=%.2f\n",v2);
}
实验五选择结构程序设计
(1)
【实验目的】
1.了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);
2.学会正确使用逻辑运算符和逻辑表达式;
【实验内容】
1.已知三个数a,b,c,找出最大值放于max中。
说明:
由已知可得在变量定义时定义四个变量a,b,c和max,a,b,c是任意输入的三个数,max是用来存放结果最大值的。
第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中if——else形式。
第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式。
Max即为a,b,c中的最大值。
#include"stdio.h"
main()
{
inta,b,c,max;/*定义四个整型变量*/
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
if(a>=b)
max=a;/*a>=b*/
else
max=b;/*a
if(c>max)
max=c;/*c是最大值*/
printf("max=%d",max);
}
2、有一函数
写一程序,输入
,输出
值
说明:
(1)根据输入
的不同求
的值,使用if语句
(2)分别输入三个分段中的三个数,判断输出结果是否正确,测试程序正确与否
#include
main()
{
floatx,y;
printf("inputx:
");
scanf("%f",&x);
if(x<1)
y=x;
if(x>=1&&x<10)
y=2*x-1;
if(x>=10)
y=3*x-11;
printf("y=%f\n",y);
}
3、从键盘输入一个字符,可以是数字、字母、或是标点符号,对输入的字符进行判断,如果是数字则输出“*isanumber!
”,如果是字母则输出“*isaletter!
”,如果是其他的字符怎输出“*istheother!
”(*为输入的字符)
说明:
(1)从键盘输入一个字符,用char类型变量存储
(2)使用if语句作判断
(3)判断条件根据输入字符的ASCII码值的范围,具体的ASCII码值参看书后的ASCII码表
#include
main()
{
charc;
printf("inputachar:
");
scanf("%c",&c);
if(c>=48&&c<=57)
printf("%cisanumber!
\n",c);
elseif((c>=65&&c<=90)||(c>=97&&c<=122))
printf("%cisaletter!
\n",c);
else
printf("%cistheother!
\n",c);
}
4.书上P1125.9
实验六选择结构程序设计
(2)
【实验目的】
1.了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);
2.学会正确使用逻辑运算符和逻辑表达式;
3.熟练掌握if语句和switch语句。
【实验内容】
1、字母转换
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0 输入一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的 大写字母;否则,原样输出。 例: 括号内是说明 输入 3F=y(repeat=3,输入的3个字符是'F','=','y') 输出 f=Y #include intmain() { intri,repeat; charch; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ ch=getchar(); /*---------*/ putchar(ch); } } 2显示水果的价格 程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat(0 以下4种水果的单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤,10.20元/公斤。 [1]apples [2]pears [3]oranges [4]grapes 输入水果的编号,输出该水果的单价(保留2位小数)。 如果输入不正确的编号,显示单价为 0。 例: 括号内是说明 输入 4(repeat=4) 3(oranges的编号) 输出 [1]apples [2]pears [3]oranges [4]grapes price=4.10 #include intmain() { intri,repeat; intchoice; floatprice; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ printf("[1]apples\n"); printf("[2]pears\n"); printf("[3]oranges\n"); printf("[4]grapes\n"); scanf("%d",&choice); /*---------*/ printf("price=%0.2f\n",price); } } 3计算个人所得税 程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat(0 输入一个职工的月薪salary,输出应交的个人所得税tax(保留2位小数)。 tax=rate*(salary-850) 当salary<=850时,rate=0; 当850 当1350 当2850 当5850 例: 括号内是说明 输入 5(repeat=4) 1010.87 32098.76 800 4010 2850 输出 tax=8.04 tax=6249.75 tax=0.00 tax=474.00 tax=200.00 #include intmain() { intri,repeat; floatrate,salary,tax; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%f",&salary); /*---------*/ printf("tax=%0.2f\n",tax); } } 4.成绩转换 程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat(0 输入五级记分制成绩(A-E),输出相应的百分制成绩的区间。 如果输入不正确的成绩,显示“Invalidinput”。 成绩转换规则如下: A级等价于90分-100分 B级等价于80分-89分 C级等价于70分-79分 D级等价于60分-69分 E级等价于0分-59分 例: 括号内是说明 输入 3BES (repeat=3,输入的五级成绩分别为B、E和S) 输出 80-89 0-59 Invalidinput (输入数据不合法) #include voidmain() { intri,repeat; charch; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++) { ch=getchar(); /*---------*/ }} 实验七循环控制 (1) 【实验目的】 1.学会使用while、do-while、for语句 2.熟练掌握循环结构程序设计方法 3.掌握选择结构与循环结构的嵌套 【实验内容】 1.求和 (即求1! +2! +……+20! ) 说明: (1)首先要求出每一项的n! 的值 (2)然后把各项相加得到所求的值 (3)存储求和运算结果的变量的初始值应为0 (4)存储求积运算结果的变量的初始值应为1 参考程序如下: ①使用while循环 #include main() { floatsum=0; floatmid=1; intn=1; while(n! =21) { mid=mid*n; n++; sum=sum+mid; } printf("sum=%f\n",sum); } ②使用for循环 #include main() { floatsum=0; floatmid=1; intn; for(n=1;n<=20;n++) { mid=mid*n; sum=sum+mid; } printf("sum=%f\n",sum); } 2.求出100到200以内最大的素数和最小的素数,并求出两者的差值 说明: (1)素数的概念: 只能被1和自身整除的正整数 (2)分别求出这个两个素数,并输出,输出格式为: bigone: * smallone: * 最小的素数正序找出 最大的素数倒序找出 (3)求出两者的差,并输出,输出格式为: result: * 参考程序如下: #include main() { intbig,small; intresult; inti,j; intflag; for(i=100;i<200;i++) { flag=0; for(j=2;j { if(i%j==0) { flag=1; break; } } if(flag==0) { small=i; break; } } for(i=200;i>=100;i--) { flag=0; for(j=2;j { if(i%j==0) { flag=1; break; } } if(flag==0) { big=i; break; } } result=big-small; printf("big: %d\n",big); printf("small: %d\n",small); printf("reslut: %d\n",result); } 3.输入两个正整数 和 ,求其最大公约数和最小公倍数 说明: (1)最大公约数: 能够被 和 同时整除的最大正整数 (2)最小公倍数: 和 相乘的积除以最大公约数 (3)使用for循环,将 和 同时除以1到 ( 为 和 两者中较小者),直到找出最大的正整数即为最大公约数 (4)输出格式如下: Thegreatestcommondivisoris*! Theleastcommonmultipleis*! 参考程序如下: #include main() { intm,n,temp; inti; intgreat,least; printf("inputm,n: "); scanf("%d,%d",&m,&n); if(m>n) { temp=m; m=n; n=temp; } for(i=1;i<=m;i++) { if(n%i==0&&m%i==0) great=i; } least=m*n/great; printf("Thegreatestcommondivisoris%d\n",great); printf("Theleastcommonmultipleis%d\n",least); } 4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本书。 例如,153是一水仙花数,因为 说明: (1)“水仙花数”是三位数,所以范围是从100到999 (2)使用for循环 (3)循环中需要把数字的每一位都分离出来,然后求和,同原数字比较,进行判断 参考程序如下: #include main() { inta,b,c; inti; i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电工学 实验 指导书