版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海电力学院
实验报告
课程名称………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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行业专业人员中级职业资格考试(专业实务银行管理)试题及答案(2026年四川省)
- 房地产估价师考试《制度与政策》练习题含答案
- 2026年宪法宣传周知识竞答题及答案
- 2026年农业农村工作知识村官考试试题及答案
- 2026福建福州鼓楼攀登信息科技有限公司招聘拟录用人员笔试历年难易错考点试卷带答案解析
- 2026福建福州市规划设计研究院集团有限公司招聘笔试历年常考点试题专练附带答案详解
- 2026福建福州国有资本投资运营集团有限公司社会招聘9人笔试历年难易错考点试卷带答案解析
- 2026福建省海峡人才报社有限责任公司招聘全媒体业务工作人员笔试和实操笔试历年常考点试题专练附带答案详解
- 2026福建漳龙集团有限公司权属地产集团营销总监和技术总监岗位市场化选聘最终及考察笔试历年难易错考点试卷带答案解析
- 2026福建泉州晋江智信大数据科技有限公司招聘8人笔试历年常考点试题专练附带答案详解
- 行业国际技术转移案例
- pcr实验室规范制度及流程
- 2026年中国邮政速递物流管理面试问题集
- 齐柏林飞艇课件
- 医防融合视角下的慢病防控体系
- DB64∕T 2171-2025 粉煤灰路基填筑应用技术规范
- TCWEA19-2023水利水电工程生态护坡技术规范
- (正式版)DB65∕T 8035-2025 《岩土工程勘察标准》
- 精密测量室管理办法
- 2025年马原期末考试题库附答案详解(精练)
- 2025至2030中国氟钛酸钾行业产业运行态势及投资规划深度研究报告
评论
0/150
提交评论