选择结构程序设计实验报告

时间:2024.4.14

实验目的:

(1)掌握“条件”的正确表示

(2)掌握多分支控制的逻辑结构

(3)继续巩固表达式的运用,并通过编程具体运用

实验内容:

【实验3-1】编写一程序,实现分段函数求值,其中y关于x的函数为:

   

(1)   程序代码

(2)   #include<iostream>

#include<cmath>

using namespace std;

void main()

{

  float x,y;

  cout<<"请输入x"<<endl;

  cin>>x;

  if (x<0)

  {

      y=-x;

  }

  else if (x>=0&&x<10)

  {

      y=exp(x)*sin(x);

  }

  else if (x>=10&&x<20)

  {

      y=pow(x,30);

  }

  else

  {

      y=(3+2*x)*log(x);

  }

  cout<<"当x="<<x<<"时,y="<<y<<endl;

}

(2)运行结果

【实验3-2】从键盘输入三个数据,求其中最大值,并输出。

(1)程序代码

(2)运行结果

 

【实验3-3】求ax2+bx+c=0方程的解

a=0,不是二次方程

b2-4ac=0,有两个相等实根

b2-4ac>0 ,有两个不等实根

b2-4ac<0 ,有两个共轭复根

  #include <iostream>

#include<cmath>

using namespace std;

void main()

{

     int a,b,c;

     float x1,x2,z;

     cin>>a>>b>>c;

     z=b*b-4*a*c;

     if(z>0)

     {

         x1=((-b)+sqrt(z))/(2*a);

         x2=((-b)-sqrt(z))/(2*a);

         cout<<"The result: x1="<<x1<<"   x2="<<x2<<endl;

     }

     else

         if(z==0)

         {

             x1=-b/(2*a);

             cout<<"The result: x1="<<x1<<endl;

         }

         else

             cout<<"no result";

}

(1)程序代码

(2)运行结果

提示:浮点数不能直接相等,例如判断单精度浮点数a的值是否等于1.01,验证下面程序:

 

分析两段程序的运行结果,浮点数不能精确判定是否相等,只能在一定范围内判定值大概相等。掌握处理方法;

思考二次方程中判别式等于0的情况,判定条件应如何处理。

实验小结:


第二篇:c语言-选择结构程序设计实验报告4


                                      实验报告

实验题目:选择结构程序设计

实验目的:

(1)                        了解C语言表示逻辑量的方法(以0代表“假”以非0代表“真”)。

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

(3)                        熟练掌握if语句的使用(包括if语句的嵌套)。

(4)                        熟练掌握多分支选择语句——switch语句。

(5)                        结合程序掌握一些简单的算法。

(6)                        进一步学习调试程序的方法。

实验内容:

本实验要求事先编好解决下面问题的程序,然后上级输入程序并调试运行程序。

(1)            有一函数:

输入的值,输出相应的值。用scanf函数输入的值,求值(第四章第六题)

运行程序,输入的值(分别为x<1、这三种情况),检查输出y值是否正确。

答:

        1)调试通过的程序清单如下:

            #include<stdio.h>

void main()

{

            int x,y;

            printf("请输入X:");

            scanf("%d",&x);

            if(x<1)

            y=x;

            else if(x<10)

            y=2*x-1;

            else y=3*x-11;

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

}

3)调试过程出现的问题说明及处理方法:

编译提示信息如下:

Compiling...

c4_4.c

F:\20113009711_选择结构程序设计\第四次实验\c4_4.c(10) : error C2059: syntax error : 'bad suffix on number'

F:\20113009711_选择结构程序设计\第四次实验\c4_4.c(10) : error C2146: syntax error : missing ';' before identifier 'x'

F:\20113009711_选择结构程序设计\第四次实验\c4_4.c(10) : warning C4552: '-' : operator has no effect; expected operator with side-effect

F:\20113009711_选择结构程序设计\第四次实验\c4_4.c(11) : error C2181: illegal else without matching if

F:\20113009711_选择结构程序设计\第四次实验\c4_4.c(11) : error C2059: syntax error : 'bad suffix on number'

F:\20113009711_选择结构程序设计\第四次实验\c4_4.c(11) : error C2146: syntax error : missing ';' before identifier 'x'

F:\20113009711_选择结构程序设计\第四次实验\c4_4.c(11) : warning C4552: '-' : operator has no effect; expected operator with side-effect

执行 cl.exe 时出错.

c4_4.obj - 1 error(s), 0 warning(s)

原因分析:

由于习惯在数学上习惯于用2x表示2*x,导致在这里忽略了“*”,以致程序出现严重错误。

(2)            从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否小于1000的正数。若不是,则要求重新输入。

1)调试通过的程序清单如下:

#include<stdio.h>

#include<math.h>

#define M 1000

int main()

{

    int i,k;

    printf("请输入一个小于%d的整数i:",M);

    scanf("%d",&i);

    if(i>1000)

    {printf("输入的数据有误,请重新输入:",M);

    scanf("%d",&i);

    }

    k=sqrt(i);

    printf("%d的平方根的整数部分是%d\n",i,k);

    return 0;

}

2)调试通过的运行结果:

3)调试过程出现的问题说明及处理方法:

Compiling...

c4_4.c

F:\20113009711_选择结构程序设计\第四次实验\c4_4.c(10) : error C2018: unknown character '0xa3'

F:\20113009711_选择结构程序设计\第四次实验\c4_4.c(10) : error C2018: unknown character '0xbb'

F:\20113009711_选择结构程序设计\第四次实验\c4_4.c(11) : error C2146: syntax error : missing ';' before identifier 'scanf'

F:\20113009711_选择结构程序设计\第四次实验\c4_4.c(13) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data

执行 cl.exe 时出错.

c4_4.exe - 1 error(s), 0 warning(s)

答:

因为把第十行的“;”在中文模式输入,变成了“;”导致编译错误。

(3)            给出一个百分制成绩,要求输出成绩等级A,B,C,D,E.90分以上为A,81~89分为B,70~79分为C,60分~69分为D,60分以下为E。

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

1)调试通过的程序清单如下:

#include<stdio.h>

void main()

{

      int g,s;

      char ch;

      printf("\n输入学生的分数:");

      scanf("%d",&g);

      s=g/10;

      if(s<0||s>10)

            printf("\n输入数据错误!\n\n");

            else

      {

            switch(s)

            {

            case 10:

            case 9:ch='A';break;

            case 8:ch='B';break;

            case 7:ch='C';break;

            case 6:ch='D';break;

            default:ch='E';

            }

            printf("\n学生的成绩等级是:%c\n\n",ch);

      }

}

2)调试通过的运行结果:

3)调试过程出现的问题说明及处理方法:

(1)编译提示信息如下:

Compiling...

c4_4.c

c4_4.obj - 0 error(s), 0 warning(s)

(2)连接提示信息如下:

Linking...

c4_4.exe - 0 error(s), 0 warning(s)

原因分析:

由于忽略了在程序中加入换行符,导致输出成绩等级和“Press any ey to contine”连在一起。

②    再运行一次程序,输入分数为负值,这显然是输入时出错,不应给出等级,修改程序,使之能正确处理任何数据,当输入数据大于100和小于0时,通知用户“输入数据错误”。程序结束。

答:在编写程序的时候已经考虑到了该情况,第一次编写时已经进行了优化,能够自动处理该情况的出现。以下是运行结果:

(4)            输入4个整数,要求按由小到大顺序输出,在得到正确结果后,修改程序使之按由大到小的顺序输出。

1)  调试通过的程序清单如下:

#include<stdio.h>

int main()

{

      int a,b,c,d,t;

      printf("请依次输入四个整数以空格隔开。\n");

      scanf("%d%d%d%d",&a,&b,&c,&d);

      if(a>b)

      {

      t=a;

      a=b;

      b=t;

      }

      if(a>c)

      {

            t=a;

            a=c;

            c=t;

      }

      if(a>d)

      {

            t=a;

            a=d;

            d=t;

      }

      if(b>c)

      {

            t=b;

            b=c;

            c=t;

      }

      if(b>d)

      {

            t=b;

            b=d;

            d=t;

      }

      if(c>d)

      {

            t=c;

            c=d;

            d=t;

      }

      printf("四个整数经从小到大的顺序排列后的结果如下\n");

      printf("%d,%d,%d,%d\n",a,b,c,d);

      return 0;

}

2)  程序运行的结果:

 

从大到小排列的程序是:

1)            通过排列的程序清单如下:

#include<stdio.h>

int main()

{

      int a,b,c,d,t;

      printf("请依次输入四个整数以空格隔开。\n");

      scanf("%d%d%d%d",&a,&b,&c,&d);

      if(a<b)

      {

      t=a;

      a=b;

      b=t;

      }

      if(a<c)

      {

            t=a;

            a=c;

            c=t;

      }

      if(a<d)

      {

            t=a;

            a=d;

            d=t;

      }

      if(b<c)

      {

            t=b;

            b=c;

            c=t;

      }

      if(b<d)

      {

            t=b;

            b=d;

            d=t;

      }

      if(c<d)

      {

            t=c;

            c=d;

            d=t;

      }

      printf("四个整数经从大到小的顺序排列后的结果如下\n");

      printf("%d,%d,%d,%d\n",a,b,c,d);

      return 0;

}

3)  运行的结果:

实验心得:

通过此次实验本人更加熟练的掌握了程序C语言逻辑运算符和逻辑表达式的应用,也深深了解到了,C语言的强大,同时是我对这门语言的兴趣更加深厚。做完本次实验,我纠正了以往的一个观点,学习一门语言不要以为看书看明白了就以为对这方面的知识掌握了,学习语言更为重要的是要会使用,不能仅仅是以为明白就可以了事,合上书本,能够应用这方面的知识写出一个程序来,才能算对它的初步掌握。

更多相关推荐:
选择结构程序设计实验报告

嘉应学院计算机学院实验报告课程名称指导老师班级程序设计基础实验名称实验时间姓名实验地点提交时间座号一实验目的和要求1了解C语言表示逻辑量的方法以0代表假以非0代表真2学会正确使用逻辑运算符和逻辑表达式3熟练掌握...

实验二 选择结构程序设计 实验报告

实验二选择结构程序设计一实验目的和要求1掌握关系表达式和逻辑表达式的使用2熟悉选择结构程序设计3熟练使用if语句进行程序设计4使用switch语句实现多分支选择结构二实验设备PC机VisualC60三实验内容一...

实验二选择结构程序设计实验报告

实验三C程序的选择结构一实验目的和要求1了解C语言表示逻辑量的方法以0代表假以非0代表真2学会正确使用逻辑运算符和逻辑表达式3熟练掌握if语句的使用包括if语句的嵌套4熟练掌握多分支选择语句switch语句5结...

C语言选择结构程序设计实验报告

C语言选择结构程序设计实验报告,内容附图。

C实验报告:选择结构程序设计

C语言实验报告课程C程序设计实验名称选择结构程序设计第页共页系别电气工程实验日期20xx年4月14日专业班级自动化2班实验报告日期20xx年4月14日姓名马震学号P091813232报告退发订正重做教师审批签字...

MATLAB实验三 选择结构程序设计

光电学院0731班刘颖20xx13503117MATLAB实验报告学院光电学院班级0731姓名刘颖学号20xx135031171光电学院0731班刘颖20xx13503117实验三选择结构程序设计1求分段函数的...

选择结构实验报告

预习报告实验项目选择结构程序设计实验日期20xx年3月26日实验原理利用if或switch语句实现多分支选择结构程序设计实验仪器PC实验内容及步骤内容利用scanf函数读入变量x的值利用if或switch语句判...

《程序设计与算法语言》实验报告1-顺序结构和选择结构程序设计

20xx20xx学年第1学期合肥学院数理系实验报告课程名称程序设计与算法语言实验项目顺序结构和选择结构程序设计实验类别综合性设计性验证性专业班级10信息与计算科学班姓名学号实验地点校内机房实验时间20xx101...

《数学软件》实验报告-选择结构程序设计

数学软件实验报告三系专业年级姓名学号实验课程实验室号实验设备号实验时间指导教师签字成绩1实验项目名称2实验目的和要求1掌握建立和执行M文件的方法2掌握利用if语句实现选择机构的方法3掌握利用switch语句实现...

VB实验报告一 选择结构程序设计

合肥师范学院计算机基础与程序设计VB实验报告实验一选择结构程序设计班级学号姓名实验日期一实验目的和要求1掌握逻辑表达式及关系表达式的正确书写形式2掌握IF语句单行和块书写格式及其正确使用尤其注意ELSE和ELS...

选择结构程序设计

实验报告实验4选择结构程序设计学号姓名一实验目的1熟悉C语言逻辑值真假的表示2掌握关系运算符的种类运算优先级运算结果的类型清楚一个关系表达式对应的相反式3掌握逻辑运算符的种类运算优先级结合性操作数与运算结果的类...

C语言程序设计实验报告

C语言程序设计实验报告学院班级学号姓名指导教师实验1简单程序设计1实验目的1熟悉C语言开发环境并掌握在该环境下如何编辑编译连接和运行一个C程序2通过运行一个简单的C程序过程初步了解C程序的基本结构及特点2实验要...

选择结构程序设计实验报告(19篇)