《选择结构程序设计.docx》由会员分享,可在线阅读,更多相关《选择结构程序设计.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、选择结构程序设计 实验报告_实验4 选择结构程序设计(学号_姓名) 一、实验目的: 1、熟悉C语言逻辑值“真”、“假”的表示; 2、掌握关系运算符的种类、运算优先级、运算结果的类型,清楚一个关系表达式对应的相反式; 3、掌握逻辑运算符的种类、运算优先级、结合性、操作数与运算结果的类型,能根据要求构建相应的逻辑表达式,理解逻辑运算中“短路”现象; 4、掌握if语句的用法,能够根据要求熟练使用单分支、双分支、多分支(嵌套)结构; 5、掌握switch语句的格式、功能及注意事项; 6、熟悉条件运算符和条件表达式的基本用法; 7、初步学习随机函数rand()的使用。 二、实验内容 1、(基础题)分析、
2、运行下列程序,验证逻辑值、关系运算相关内容,并回答相关问题: #include int main() int x=15,y=5,z=50; printf(x=%d, y=%d, z=%dn,x,y,z); printf(xy? %dn,xy); printf(x=x+y? %dn,z-30=x+y); printf(y=z-30x? %dn,y=z-30x); return 0; 问题: (1)C语言逻辑值“真”、“假”如何表示?输入、输出时有什么不同?答:真是1,假是0 (2)关系运算符包含哪几个? 它们的优先级如何? 答:关系运算符有6种;=,=,!= =四种优先级相同却比较高 =,!=两
3、种优先级相同却比较低 关系运算符的优先级低于算术运算符 关系运算符的优先级高于赋值运算符 (3)关系表达式的运算结果是什么? 答:结果是真或者假 (4)哪些关系运算符互为相反式?它们的运算结果有什么关联? 2、(基础题分析、运行下列程序,验证逻辑运算的相关内容,并回答相关问题:问题: #include int main() int a=3, b=4, c=5; int x,y,z; printf(a=%d, b=%d, c=%dn,a,b,c); printf(a+bc&b=c ? %dn,a+bc&b=c); printf(!a|!c|b ? %dn,!a|!c|b); printf(a|b
4、+c&bc ? %dn,a|b+c&bc); printf(a*b&c+a ? %dnn,a*b&c+a); printf(执?行Dx=ab&c+ 后?,y=%d,a=%d,b=%d,c=%dn,y=ab&c+,a,b,c); printf(执?行Dz=a|b+|c+ 后?,z=%d,a=%d,b=%d,c=%dn,z=a|b+|c+,a,b,c); return 0; (1)逻辑运算符包含哪几个? 它们的优先级如何?它的运算级别高于算术运算符、赋值运算符吗? 答:&,|,! ! &| &,|低于关系运算符 !高于算术运算符 (2)逻辑表达式的操作数、运算结果是什么? 答: (3)什么是逻辑运
5、算中“短路”现象?这会带来什么影响? 3、(基础题以下程序的功能是:输入学生四门课程的成绩,然后根据要求构建相应的逻辑表达式,之后计算这些表达式的值并输出。请根据程序相关提示填写所缺代码,再运行该程序予以验证,最后回答相关问题: 写出所缺程序代码: scanf(_,_); printf(四门课程的平均成绩大于等于80? %sn,_?是:否); printf(四门课程中每门的成绩均大于等于80? %sn,_?是:否); printf(四门课程中至少有一门的成绩大于等于80? %sn,_?是:否); printf(四门课程中没有一门的成绩大于等于80? %sn,_?是:否); printf(四门课
6、程中至少有两门的成绩大于等于80? %sn,_?是:否); 问题: #include int main() double s1,s2,s3,s4; printf(请?输o?入?学?生|2的?4门?课?程?成|绩?:n); scanf(%lf%lf%lf%lf,&s1,&s2,&s3,&s4); printf(s1=%f, s2=%f, s3=%f, s4=%fn,s1,s2,s3,s4); printf(四?门?课?程?的?平?均成|绩?大?于?2等于?280 ? %sn,(s1+s2+s3+s4)/4=80?是o?:否?); printf(四?门?课?程?中D每?门?的?成|绩?均大?于?2
7、等于?280 ? %sn,(s1=80 & s2=80 &s3=80 &s4=80)?是o?:否?); printf(四?门?课?程?中D至少|有?D一?门?的?成|绩?大?于?2等于?280 ? %sn,(s1=80 | s2=80 |s3=80 |s4=80)?是o?:否?); printf(四?门?课?程?中D没?有?D一?门?的?成|绩?大?于?2等于?280 ? %sn,!(s1=80 | s2=80 |s3=80 |s4=80)?是o?:否?); printf(四?门?课?程?中D至少|有?D两?门?的?成|绩?大?于?2等于 ?280 ? %sn,(s1=80)+(s2=80)+
8、(s3=80)+(s4=80)=2?是o?:否?); return 0; 4、(基础题)编写一个程序:输入一个正整数,先判断其是奇数还是偶数,再进一步判断能否被3整除,运行界面如下所示: 程序代码: #include int main( ) int n; printf(Enter n:); scanf(%d,&n); printf(整?数oy %d ,n); if (n%2=0) printf(是o?偶?数oy, ); if(n%3=0) printf(能1被?3整?除y。?nn); else printf(不?能1被?3整?除y。?nn); else printf(是o?奇?数oy, ); if(n%3=0) printf(能1被?3整?除y。?nn); else printf(不?能1被?3整?除y。?nn); return 0; 5、对于下列函数: 编写程序,要求输入x的值,输出y值。 程序代码: #include int main() double x,y; input: printf(请?输o?入?范?围?为a-5-5)&(x0)&(x10) y=x+1; printf(y=%fnn,y); return 0;