电工学实验指导书Word格式.docx
《电工学实验指导书Word格式.docx》由会员分享,可在线阅读,更多相关《电工学实验指导书Word格式.docx(67页珍藏版)》请在冰豆网上搜索。
C程序中的所有用到的变量都必须声明。
3.第5行调用系统提供的标准函数库中的输出函数scanf,输入变量a和b的值。
注意,&
a,&
b表示将数值输入到变量a和b的地址所标志的单元中;
不能写成scanf("
%d,%d"
a,b);
。
scanf函数中的"
表示输入的格式是用逗号隔开的两个十进制整数。
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编写程序,并进行编译、连接、生成
可执行文件。
习题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)输出时只需输出两位小数
参考程序如下:
main()
floatF,c;
inputF:
"
scanf("
%f"
&
F);
c=5*(F-32)/9;
c=%.2f\n"
c);
2.输入三角形三边长
、
,求三角形周长和
面积
用scanf输入数据,输出计算结果,输出时要求有文字说明。
(1)程序设计中使用的所有变量均为float类型
(2)三角形周长公式:
(3)三角形面积公式;
,其中
(4)注意应保证输入数据能够构成三角形
(5)需要使用开根号函数sqrt,在程序顶部加上#include<
math.h>
一句
(6)以
,
运行程序,查看执行结果
floata,b,c,l,s;
floatp;
inputa,b,c:
%f,%f,%f"
b,&
c);
l=a+b+c;
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
l=%.2f\n"
l);
s=%.2f\n"
s);
4.设圆半径
,圆柱高
,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据,输出计算结果,输出时要求有文字说明,取消书店后两位小数。
(2)圆周长公式:
(3)圆面积公式:
(4)圆球表面积公式:
(5)圆球体积公式:
(6)圆柱体积公式:
#definePI3.14
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;
s1=%.2f\n"
s1);
s2=%.2f\n"
s2);
v1=%.2f\n"
v1);
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"
{
inta,b,c,max;
/*定义四个整型变量*/
scanf(“a=%d,b=%d,c=%d”,&
if(a>
=b)
max=a;
/*a>
=b*/
else
max=b;
/*a<
b*/
if(c>
max)
max=c;
/*c是最大值*/
printf("
max=%d"
max);
2、有一函数
写一程序,输入
,输出
值
(1)根据输入
的不同求
的值,使用if语句
(2)分别输入三个分段中的三个数,判断输出结果是否正确,测试程序正确与否
floatx,y;
inputx:
x);
if(x<
1)
y=x;
if(x>
=1&
&
x<
10)
y=2*x-1;
=10)
y=3*x-11;
y=%f\n"
y);
3、从键盘输入一个字符,可以是数字、字母、或是标点符号,对输入的字符进行判断,如果是数字则输出“*isanumber!
”,如果是字母则输出“*isaletter!
”,如果是其他的字符怎输出“*istheother!
”(*为输入的字符)
(1)从键盘输入一个字符,用char类型变量存储
(2)使用if语句作判断
(3)判断条件根据输入字符的ASCII码值的范围,具体的ASCII码值参看书后的ASCII码表
charc;
inputachar:
%c"
if(c>
=48&
c<
=57)
printf("
%cisanumber!
elseif((c>
=65&
=90)||(c>
=97&
=122))
%cisaletter!
else
%cistheother!
4.书上P1125.9
实验六选择结构程序设计
(2)
3.熟练掌握if语句和switch语句。
1、字母转换
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0<
repeat<
10),做repeat次下列运算:
输入一个字符,如果它是大写字母,输出相应的小写字母;
如果它是小写字母,输出相应的
大写字母;
否则,原样输出。
例:
括号内是说明
输入
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显示水果的价格
以下4种水果的单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤,10.20元/公斤。
[1]apples
[2]pears
[3]oranges
[4]grapes
输入水果的编号,输出该水果的单价(保留2位小数)。
如果输入不正确的编号,显示单价为
0。
4(repeat=4)
3(oranges的编号)
price=4.10
intchoice;
floatprice;
[1]apples\n"
[2]pears\n"
[3]oranges\n"
[4]grapes\n"
choice);
price=%0.2f\n"
price);
3计算个人所得税
输入一个职工的月薪salary,输出应交的个人所得税tax(保留2位小数)。
tax=rate*(salary-850)
当salary<
=850时,rate=0;
当850<
salary<
=1350时,rate=5;
当1350<
=2850时,rate=10;
当2850<
=5850时,rate=15;
当5850<
salary时,rate=20;
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
floatrate,salary,tax;
salary);
tax=%0.2f\n"
tax);
4.成绩转换
10),做repeat次下列运算:
输入五级记分制成绩(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
(输入数据不合法)
voidmain()
intri,repeat;
charch;
for(ri=1;
ri++)
{
ch=getchar();
/*---------*/
}}
实验七循环控制
(1)
1.学会使用while、do-while、for语句
2.熟练掌握循环结构程序设计方法
3.掌握选择结构与循环结构的嵌套
1.求和
(即求1!
+2!
+……+20!
(1)首先要求出每一项的n!
的值
(2)然后把各项相加得到所求的值
(3)存储求和运算结果的变量的初始值应为0
(4)存储求积运算结果的变量的初始值应为1
①使用while循环
floatsum=0;
floatmid=1;
intn=1;
while(n!
=21)
mid=mid*n;
n++;
sum=sum+mid;
}
sum=%f\n"
sum);
②使用for循环
intn;
for(n=1;
n<
=20;
n++)
2.求出100到200以内最大的素数和最小的素数,并求出两者的差值
(1)素数的概念:
只能被1和自身整除的正整数
(2)分别求出这个两个素数,并输出,输出格式为:
bigone:
*
smallone:
最小的素数正序找出
最大的素数倒序找出
(3)求出两者的差,并输出,输出格式为:
result:
intbig,small;
intresult;
inti,j;
intflag;
for(i=100;
i<
200;
i++)
flag=0;
for(j=2;
j<
i;
j++)
{
if(i%j==0)
{
flag=1;
break;
}
}
if(flag==0)
small=i;
break;
for(i=200;
i>
=100;
i--)
big=i;
result=big-small;
big:
%d\n"
big);
small:
small);
reslut:
result);
3.输入两个正整数
和
,求其最大公约数和最小公倍数
(1)最大公约数:
能够被
同时整除的最大正整数
(2)最小公倍数:
相乘的积除以最大公约数
(3)使用for循环,将
同时除以1到
(
为
两者中较小者),直到找出最大的正整数即为最大公约数
(4)输出格式如下:
Thegreatestcommondivisoris*!
Theleastcommonmultipleis*!
intm,n,temp;
inti;
intgreat,least;
inputm,n:
m,&
n);
if(m>
n)
temp=m;
m=n;
n=temp;
for(i=1;
=m;
if(n%i==0&
m%i==0)
great=i;
least=m*n/great;
Thegreatestcommondivisoris%d\n"
great);
Theleastcommonmultipleis%d\n"
least);
4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本书。
例如,153是一水仙花数,因为
(1)“水仙花数”是三位数,所以范围是从100到999
(2)使用for循环
(3)循环中需要把数字的每一位都分离出来,然后求和,同原数字比较,进行判断
inta,b,c;
i