上海电力学院C语言程序设计实验三_第1页
上海电力学院C语言程序设计实验三_第2页
上海电力学院C语言程序设计实验三_第3页
上海电力学院C语言程序设计实验三_第4页
上海电力学院C语言程序设计实验三_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海电力学院

实验报告

课程名称………G语言程庄设计.........实验项目….…实验3…分支结构程序设计

姓名.......学号…班级…专业…信息安全…

同组人姓名………无.......指导教师姓名......实验日期…..年...11.月…7…日..…

实验目的

1.了解c语言表示逻辑量的方法(以o代表“假”,以非o代表“真”)。

2.学会正确使用逻辑运算符和逻辑表达式。

3.熟练掌握if语句和switch语句。

4.结合程序掌握一些简单的算法。

5.学习调试程序。

二、实验内容和步骤

1、基础知识和概念

(1)分析下面程序,掌握关系表达式的运算规则。

厚c3-l.c关系表达式运算规则刃

(源代码)

#include<stdio.h>

intmain()

(

charch=*w';

inta=2,b=3,c=1,d,x=10;

printf(K%d'*,a>b==c);

printf(',%d',,d=a>b);

printf(”%d",ch>'a'+l);

printf(',%d'\d=a+b>c);

printf(',%d,\3<=x<=5);

printf(H%d\nM,b-l==a!=c);

return0;

)

(运行结果截图)

o-0⑸当口|-d«

又件如■童■■人工程3H金口!»«

(2)分析运行下面程序,掌握逻辑表达式的运算规则。

/*c3-2.c逻辑表达式运算规则水/

(源代码)

#include<stdio.h>

intmain()

(

charch=,w';

inta=2,b=0,c=0;

floatx=3.0;

printf(,,%d,,,a&&b);

printf(,,%d,,,a||b&&c);

printf(,,%d,,,!a&&b);

prmtf(',%d,',a||3+10&&2);

printf(n%dn,!(x==2));

printf(n%d,,,!x==2);

printf("%d\n",ch||b);

return0;

(运行结果截图)

M

2Ifeeo--DA电1JH

文件胡aM*人工183A金口RS]

||Globals)_"J||AIIglobalmemben«]|.main三]0.⑤匕/!»1«

•@classes

Binclude<stdio.h>

intMin()

anykeytocontinue

charch«'w*;

inta-2.b-fi.c-6;

floatx-3.0;

printfCtd-.d&Mi);

printF(-Xd-,a||bWc);

print“・3.,WU>):

prlsW・a||37脆&2);

printfC*tdJ(x-2));

printfCtd"tfx--2);

printfCZdKn'.ctiHb);

return0;

LLdJ

"Cla”V_.11)FileviewI

c3-2.exe-0error(s),ewarnlng(s)

巾、组it1喇]在文件1巾支找、在文件2中直找5站累/►r

行15・列2

ssOQieBls/人。匕中■二制〃

(3)分析运行下面程序,掌握关系及逻辑混合表达式的运算规则。

/*c3-3.c*/

(源代码)

#include<stdio.h>

intmain()

(

inta=3,b=5,c=8;

if(a++<3&&c-!=0)b=b+l;

printf(,,a=%d\tb=%d\tc=%d\n,*,a,b,c);

return0;

(运行结果截图)

M

合Q04C!0二(□㈤者*

W««MMAIS<3IMRSD

||Globals|^J|(Allglobalmember"^]|.main三]0.⑤匕/!«

G⑥S3

♦0classesB________________

■includp<stdio.h>

intMin()

inta-3,t>-5,c-l;

iF(d**<3IXc-f*0)b-b*1;

ww

printf("4Xd\tl%<l\tc-%d\n*'vj.bvc);

returne;

■1.U\US£RS\ADMIN\CEWOC>\RttE9-Debug\c3-3exe.

i«4b・5c«8

tessanykeytocontinue

,SCIassV...!t)HleView|

c9-3.exe-0error(s).8w.

FK组总)则\蚊件件M2T

IREC!COLhiK

多人◎心中■1b2S

邙BI

xoea。2018/11〃

2、程序改错和填空(要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。)

(1)给定程序c3-4.c的功能是:

对于如下函数:

X0<1)

y=(2x-\(l<x<10)

3x-ll(x>10)

月scanf函数输入x的值,求y值。

(源代码)

#include<stdio.h>

intmain()

intx,y;

scanf(M%dM,&x);

if(x<l)

y=x;

elseif(x<10)

y=2*x-l;

else

y=3*x-ll;

printf(,,y=%d\n',,y);

return0;

)

(运行结果截图)

s

Neq--tn㈤智UH

文件黜壹・一入工程加工H⑨口N和

IlGlobahj▼(Allglobalmembers♦main三lm・

3

Mincludr<stdia.h>

intRdin()

intx,y;

scanF(*-%(!**.fix);

iF(x<1)

y-x:

•IseiF(x<l0)

y・2・xT;

else

y-3»x-11;

printf(-y-td\n-ty);

return0;

c9-li.exe-0error(s).8warningd

FK组演(现试\在文件i中号找\在文件2中直投、结累7,广

行7.歹,9|RfCCOL离去hi时

xo邙eBIa。,岸A◎的中

后300、4照•©阳岩1铁厂,H

文件总■■*入isT*雳口翳勒

||Globals|二(Allglobalmembers^J|main"3m,⑤的/;*i-©

FK奶田■(重风)在文fH中青找\在文件2中充找5结果/►r

行1.列1

x。邙e£a8”,,#人◎叫中•“濡"星

文件耐I童■■入IS*IM-劭

||GMals|▼|[jXllglobalmembe7T^||m.ln▼]以■,⑤凹:/!H,©

(2)以下给定程序c3-5.c的功能是:输入一个年份,判断该年是否为闰年。

(源代码)

#include<stdio.h>

intmain()

(

intyear,leap;

printfC*Pleasenterayear:*');

scanf(*'%d*',&year);

if(year%4==0)leap=0;

elseif(year%100!=0)leap=l;

elseif(ycar%400!=0)leap=0;

elseleap=l;

if(leap=0)

printf(*'%disaleapyear\nH,year);

else

printf(,,%disnotaleapyear\n",year);

return0;

}

(运行结果截图)

会*QD心a”©⑶官-d«

文件廊BM,人工程3HU重口!»ffi

||Globalsl^J||AIIglobalniembert^||♦main三]0.⑤匕/!»1«

_Q.E,

Mincludr<stdia.h>■•C:\U$ERS\ADMIN\DE$KTOP\»=\»fCR\Debug;c3-5,exe-一□

intRdinO

Pleasenterayear:2018

2018isnotaleapyear

int”ar.l©ap;

Pressanykoytocontinue.

print*enter-year:••);

"d"(Id”.&yR");

iF(9eart^--9)leap-0;

elseif(yeartin<if-a)lwp-1;

elseiF(yeAtViMf«i)lrap-0;

elseleap-1;

iF(leap-e)

<a

printFCtdisale4pyear\n9ypar);

else

printFC'XdisnotaleapyearXn".9ear);

returnO;

c9-S.exe-0error(s).8warning(s)

7n\组建《喟试》在文件i巾百找\在文件2中直找八姑第,r

瓶行11.列14

o邙2ma,8/八强中.ao篙〃

(3)以下给定程序c3-6.c的功能是:实现2个浮点数的四则运算:如输入:4.0*5.2,则打印出:4.0*5.2=20.8

(源代码)

#include<stdio.h>

intmain()

(

floatdl,d2;

charop;

printf("输入dlopd2:\n°);

scanf("%f%c%r',&dl,&op,&d2);

switch(op)

(

floattemp;

case

temp=dl+d2;

printf(,,%f%c%f=%f\n'*,dl,op,d2,tenip);

break;

case

temp=dl-d2;

printf(,,%f%c%f=%AnH,dl,op,d2,tenip);

break;

case***:

tenip=(ll*d2;

printf(M%f%c%f=%f\n'*,dl,op,d2,tenip);

break;

case71:

temp=dl/d2;

printf(M%f%c%f=%f\n',,dl,op,d2,tcmp);

break;

default:printf(''错误八n'');

}

)

(运行结果截图)

«5i«aMA工程IM»□翳勒

[|Globals|globalmembers^]|main-^]3>⑤曲/!*19

3、程序设计题

(1)从键盘输入某学生的考试成绩,要求输出成绩等级A、B、C、D、E。学生的成绩可分成5个等级,90-100

分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。要求在输入负数时,给出错误

提示。

①事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。

IF语句

(源代码)

#include<stdio.h>

intniaiii()

printf(HPleaseinputagrade:0);

scanf("%d”,&x);

if(x>=90)

printfC'ThegradelevelisA\nM);

elseif(x>=80)printf(*'ThegradelevelisB\n**);

elseif(x>=70)printf(HThegradelevelisC\nu);

elseif(x>=60)printf(*'ThegradelevelisD\n'*);

elseprintf(**ThegradelevelisE\n'*);

return0;

)

(运行结果截图)

s

111d•tnis%,铁厂23.

文件制食&一入工程3IM■□M3]

(Glabah;)globalEcmbcr7'^][.mai.▼|殴▼「jj*AS/!YJ七

Mincludp<$t(1io.h>

intnain()

<

intx;

printFCTleaseinputagrade:'");

scanfCtr'.&x);

if(x>>90)

printFC,ThegradelevelisA\n°);

elseif(x>«S0)printf("Thegradelevelis6\n,e)

<,1r.cif(x>»ZO)prints("IhrgradeIrurlisC\n*')

•lieif(x>w60)prints("Ihrgradelevel11D\n">

elseprlntfC'Thegradelevelis£\e");

returne;

-c3-scoregrade.exe-0error(s)»9warnlng(s)

TERL喟试入在文件i中近迪X在文仔2中应投人结果/r,II»r

Switch语句

(源代码)

#include<stdio.h>

intmain()

(

intscore,n;

printfC*Pleaseinputagrade:'*);

scanf("%d”,&score);

n=score/10;

switch(n)

(

case10:printf(*'ThelevelisA\nH);break;

case9:printf(,,ThelevelisA\n");break;

case8:printf(nThelevelisB\n");break;

case7:pnntf(uThelevelisC\nM);break;

case6:printf(nThelevelisD\iin);break;

caseS:printf("ThelevelisE\nM);break;

case4:printf(nThelevelisE\iin);break;

case3:printf(nThelevelisE\nu);break;

case2:printf("ThelevelisE\nn);break;

casel:printf('*ThelevelisE\nM);break;

caseO:printf('ThelevelisE\nn);break;

default:prinM”Error!\ir);

return0;

}

(运行结果截图)

大中Jtvtf

©⑻含*1ZJM

文怦曲8会■一入工程•1工及窗口M3]

||Global|

S_»(Allglobalmember:♦mah司0・⑤曲/!

②再运行一次程序,输入分数为负值(如一70),这显然是输入时出错,不应给出等级。修改程序,使之能

正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。

(源代码)

#include<stdio.h>

intniain()

(

intscore,n;

printf('*Pleaseinputagrade:'*);

scanf("%d”,&score);

n=score/10;

if(score>l()0||score<0)

printf(nError!\nH);

elseswitch(n)

{

case10:printf(,,ThelevelisA\nK);break;

case9:printf("ThelevelisA\nu);break;

case8:printf(nThelevelisB\iin);break;

case7:printf("ThclevelisC\nM);break;

case6:printf(,,ThelevelisD\ii*r);break;

case5:printf("ThelevelisE\nn);break;

case4:printf(,,ThelevelisE\nn);break;

case3:printfC*ThelevelisE\n");break;

case2:printf('ThclevelisE\nM);break;

casel:printf(nThelevelisE\nn);break;

caseO:printf('*ThclevelisE\n,,);brcak;

default:printf(''Eiror!\n");

)

return0;

)

(运行结果截图)

S-g-100)--J*

3]“

又件财■■■*人isTJI®n翳a

||Globals|globalmembersV||.mah三⑤曲/!

行26.列2

x。邙emaa,声八事•◎曲中•二黑内弟

(2)给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;

③按逆序打印出各位数字。例如:原数据为321,应输出123。

要求:

①分别用1位正整数、2位正整数、3位正整数、4位正整数、5位正整数作为测试数据进行测试。

②程序还应当对不合法的输入作必要的处理。例如:当输入负数时或输入的数超过5位(如123456)数时。

(源代码)

#inciude<stdio.h>

intmain()

intn,a,b,c,d,e,m;

printf("请输入一个不多于五位的正整数:”);

scanf("%d”,&n);

a=n/10000;

b=n%10000/1000;

c=n%10000%100()/1()0;

d=n%10000%1000%100/10;

e=n%10000%1000%100%10;

if(a>9||a<0||b<0||c<0||d<0||e<0)

printf「错误!\nH);

elseif(a!=0)

printf「该数字为五位数。\n");

m=l0000*e+1OOO*d+l00*c+10*b+a;

printf("将数字反输出为:\f);

}

elseif(b!=O)

{

printf("该数字为四位数。\n”);

m=1000*e+100*d+10*c+b;

printfV将数字反输出为:\f);

)

elseif(c!=O)

(

prints”该数字为四位数。\nM);

m=100*e+10*d+c;

prints”将数字反输出为:\f);

)

elseif(d!=O)

{

printfC该数字为四位数。\n**);

m=10*e+d;

printfC将数字反输出为:\f);

)

elseif(e!=O)

{

printf("该数字为四位数。\n");

m=e;

printf("将数字反输出为:\f);

)

else

printf("错误!\nH);

printf(',%d\n,',m);

return0;

(运行结果截图)

0⑶当3«

又件如■童■■人工程3H金口!»«

|(GlobalsJ'J|lAIIglobalmemben«]|.main三]0.中心/!“四

0

~i»-1Ue0»<-1U0»cl«1IHc»b:•G\US£RS\ADMlN\D€SKTOP«4e=\Bftfl5\Debug\c-5figuers(0-5)axe

printfr将数字反输出为,\f);

>

elseif(cf-n)E58993460

*rwsanyk®ytocontinue

p~nt“”该敌字为四位数.

n-1O0»€«1O»d«c;

print"”将数字反输出为,\f);

>

elseif(df-O)

<

print/〈“改数字为四位数.\n">;

print”“将数字反输出为.W);

>

elseif(ef-o)

’pr£?”“该敌字为四位数.5・);

pH;”「将数字反输出为.W);

>

else

错误!,);

printf(td\n-,n);

return0;

对|]

」c・5figuers(e**S)-exe-。error(s).0varning(j

Th加建。明试I在文件i中立找、在文件2中立找I站.用7r

rf八Q叼中!

:sontema”8&,X»2•T・820i1&8i/1°V9

图aQ。0⑻含♦

又件做I■■Q工程*■二具»□MS

[|Globals|_*(Allglobalmembcn♦main三];a,⑤白7!Y1日

■,・6U$ERS\At>MIN\DE$KTOt>\»E\affCGlbug\j5(C*5)we'O

prin”「该数字为四位数。\n');

R-iee0"r*1fltt*d«10«c*b;

print"“将数字反输出为,\f);54321

anykeytocontinue

elseif(ct-O)

print”"该数字为四位数.\n');

n-iee>e<10«d«c;

Print”•,将数字反输出为,\f);

tlseif(d?-O)

print"“该的华为四伯的.\n-);

I0fd;

print”“郴5字反捕出为,\t->;

elseif(ef-9)

pri?t”“该数字为四位数.\n->;

「将数字反输出为,\f);

else

printfC'^l\n");

return0;

hl

-11c-5figuers(ITS).exe-9error(s),0varnlng(<

FK舒建■(明员:在文fH中青拉、在文件2中充找I结果/

(3)根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型(等边、等腰、

直角、一般三角形)。

(源代码)

#inchide<stdio.h>

#include<niath.h>

intmain()

doublea,b,c,p,s;

intstyle;

printf("请输入三角形的三条边:\n”);

scanf("%lf,%lf,%lf”,&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)

{

printf("这三条边能组成三角形!\nn);

p=(a+b+c)/2.0;

s=sqrt(p*(p-a)*(p-b)*(p-c));

priirtf("该三角形的面积是:%lf\n”Q);

if(a==b&&a==c)style=l;

if(a==b||a==c||b==c)style=2;

if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b)style=3;

switch(style)

(

casel:printf("该三角形是等边三角形\n");break;

case2:printf(“该三角形是等腰三角形\n");break;

case3:printf("该三角形是直角三角形\n");break;

default:printf("该三角形是一般三角形\n");break;

)

)

else

printf("这三条边不能组成三角形!\n”);

return0;

)

(运行结果截图)

SfE-g--

II0|,00|x•©圉它,厂三|%|

文件胡I及也“人工程加伊的

J(Globalsj(Allglobalmember*^|;•main3豆♦杳四八!*【■

■"C:\User5\«dmin\D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论