选择结构程序设计

发布时间:2024-11-21

实验报告_实验4 选择结构程序设计(学号_姓名)

一、实验目的:

1、熟悉C语言逻辑值“真”、“假”的表示;

2、掌握关系运算符的种类、运算优先级、运算结果的类型,清楚一个关系表达式对应的相反式;

3、掌握逻辑运算符的种类、运算优先级、结合性、操作数与运算结果的类型,能根据要求构建相应的逻辑表达式,理解逻辑运算中“短路”现象;

4、掌握if语句的用法,能够根据要求熟练使用单分支、双分支、多分支(嵌套)结构;

5、掌握switch语句的格式、功能及注意事项;

6、熟悉条件运算符和条件表达式的基本用法;

7、初步学习随机函数rand()的使用。

二、实验内容

1、(基础题)分析、运行下列程序,验证逻辑值、关系运算相关内容,并回答相关问题:

#include <stdio.h>

int main()

{

int x=15,y=5,z=50; printf("x=%d, y=%d, z=%d\n",x,y,z); printf("x>y? %d\n",x>y); printf("x<=y? %d\n",x<=y); printf("x+y<z? %d\n",x+y<z);

}

printf("z-30>=x+y? %d\n",z-30>=x+y); printf("y==z-30>x? %d\n",y==z-30>x); return 0;

问题:

(1)C语言逻辑值“真”、“假”如何表示?输入、输出时有什么不同? 答:真是1,假是0

(2)关系运算符包含哪几个? 它们的优先级如何?

答:关系运算符有6种;<,<=,>,>=,==,!=

<,<=,>,>=四种优先级相同却比较高

==,!=两种优先级相同却比较低

关系运算符的优先级低于算术运算符

关系运算符的优先级高于赋值运算符

(3)关系表达式的运算结果是什么?

答:结果是真或者假

(4)哪些关系运算符互为相反式?它们的运算结果有什么关联?

2、(基础题分析、运行下列程序,验证逻辑运算的相关内容,并回答相关问题: 问题:

#include <stdio.h>

int main()

{

printf("执¡ä行Dx=a<b||c++int a=3, b=4, c=5; int x,y,z; printf("a=%d, b=%d, c=%d\n",a,b,c); printf("a+b>c&&b==c ? %d\n",a+b>c&&b==c); printf("!a||!c||b ? %d\n",!a||!c||b); printf("a||b+c&&b>c ? %d\n",a||b+c&&b>c); printf("a*b&&c+a ? %d\n\n",a*b&&c+a);

后¨®,x=%d,a=%d,b=%d,c=%d\n",x=a<b||c++,a,b,c);

printf("执¡ä行Dy=a>b&&c++

后¨®,y=%d,a=%d,b=%d,c=%d\n",y=a>b&&c++,a,b,c);

printf("执¡ä行Dz=a||b++||c++

后¨®,z=%d,a=%d,b=%d,c=%d\n",z=a||b++||c++,a,b,c);

}

return 0;

(1)逻辑运算符包含哪几个? 它们的优先级如何?它的运算级别高于算术运算符、赋值运算符吗?

答:&&,||,!

!> &&>||

&&,||低于关系运算符

!高于算术运算符

(2)逻辑表达式的操作数、运算结果是什么?

答:

(3)什么是逻辑运算中“短路”现象?这会带来什么影响?

3、(基础题以下程序的功能是:输入学生四门课程的成绩,然后根据要求构建相应的逻辑表达式,之后计算这些表达式的值并输出。请根据程序相关提示填写所缺代码,再运行该程序予以验证,最后回答相关问题:

写出所缺程序代码:

scanf("_______________________",_____________________);

printf("四门课程的平均成绩大于等于80? %s\n",___________________?"是":"否"); printf("四门课程中每门的成绩均大于等于80? %s\n",_________________?"是":"否");

printf("四门课程中至少有一门的成绩大于等于80? %s\n",_____________?"是":"否"); printf("四门课程中没有一门的成绩大于等于80? %s\n",_____________?"是":"否"); printf("四门课程中至少有两门的成绩大于等于80? %s\n",___________?"是":"否"); 问题:

#include <stdio.h>

int main()

{

double s1,s2,s3,s4; printf("请?输º?入¨?学¡ì生¦¨²的Ì?4门?课?程¨¬成¨¦绩¡§:\n"); scanf("%lf%lf%lf%lf",&s1,&s2,&s3,&s4); printf("s1=%f, s2=%f, s3=%f, s4=%f\n",s1,s2,s3,s4); printf("四?门?课?程¨¬的Ì?平?均¨´成¨¦绩¡§大䨮于®¨²等̨¨于®¨²80 ? %s\n",(s1+s2+s3+s4)/4>=80?"是º?":"否¤?");

printf("四?门?课?程¨¬中D每?门?的Ì?成¨¦绩¡§均¨´大䨮于®¨²等̨¨于®¨²80 ? %s\n",(s1>=80 && s2>=80 &&s3>=80 &&s4>=80)?"是º?":"否¤?");

printf("四?门?课?程¨¬中D至¨¢少¦¨´有®D一©?门?的Ì?成¨¦绩¡§大䨮于®¨²等̨¨于®¨²80 ? %s\n",(s1>=80 || s2>=80 ||s3>=80 ||s4>=80)?"是º?":"否¤?");

printf("四?门?课?程¨¬中D没?有®D一©?门?的Ì?成¨¦绩¡§大䨮于®¨²等̨¨于®¨²80 ? %s\n",!(s1>=80 || s2>=80 ||s3>=80 ||s4>=80)?"是º?":"否¤?");

printf("四?门?课?程¨¬中D至¨¢少¦¨´有®D两¢?门?的Ì?成¨¦绩¡§大䨮于®¨²等̨¨于

®¨²80 ? %s\n",(s1>=80)+(s2>=80)+(s3>=80)+(s4>=80)>=2?"是º?":"否¤?");

}

return 0;

4、(基础题)编写一个程序:输入一个正整数,先判断其是奇数还是偶数,再进一步判断能否被3整除,运行界面如下所示:

程序代码:

#include <stdio.h>

int main( )

{

int n;

} printf("Enter n:"); scanf("%d",&n); printf("整?数ºy %d ",n); if (n%2==0) { printf("是º?偶?数ºy, "); if(n%3==0) printf("能¨¹被À?3整?除y。¡ê\n\n"); else printf("不?能¨¹被À?3整?除y。¡ê\n\n"); }else { } printf("是º?奇?数ºy, "); if(n%3==0) printf("能¨¹被À?3整?除y。¡ê\n\n"); else printf("不?能¨¹被À?3整?除y。¡ê\n\n"); return 0;

5、对于下列函数:

编写程序,要求输入x的值,输出y值。

程序代码:

#include <stdio.h>

int main()

{

double x,y;

input: printf("请?输º?入¨?范¤?围¡ì为a-5<x<10的Ì?x值¦Ì:"); scanf("%lf",&x);

}

if((x<=-5)||(x>=10)) { } if ((x>-5)&&(x<0)) y=x; printf("x值¦Ì越?界?,ê?请?重?新?输º?入¨?\n"); goto input; if (x==0) y=x-1; if ((x>0)&&(x<10)) y=x+1; printf("y=%f\n\n",y); return 0;

选择结构程序设计.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219