第三次上机实验

来源:互联网 发布:20网络用语什么意思 编辑:程序博客网 时间:2024/06/15 00:06
目标:
1. 掌握C语言基本运算符和表达式用法;
2. 预习选择和重复控制语句的用法.
任务1:假设整型变量 a 的值是 1,b 的值是 2,c 的值是 3,请判断各语句的值,写出执行结果,并作简短分析.
  1)  x = a ? b : c; (若x的值等于a就选取b的值,否者就选取c的值)

  2)  y = (a = 2) ? b + a : c + a; (若y等于(a=2)即2,成立取b+a的值,否者取c+a的值)

1)输出结果为:2

2)输出结果为:4

------------------------------------任务分割线------------------------------------
任务2:假设整型变量a 的值是1 ,b 的值是2 ,c 的值是0 ,请判断各语句的值,写出执行结果,并作简短分析.
1)a&&c:0
2)a||c:1

3)a||b:1
4)b&&c:0
5)a&&!((b||c)&&!a):1
6)!(a&&b)||c?a||b:a&&b&&c:0

c语言中1代表真,0代表假,其中!为非,&&为与,||为或

------------------------------------任务分割线------------------------------------

任务3.  写程序计算以下各个表达式的值。

1)3 * (2L + 4.5f) - 012 + 44
  2)3 * (int)sqrt(144.0)
  3)cos(2.5f + 4) - 6 *27L + 1526 - 2.4L

1)我的程序:

#include <stdio.h>#include<math.h>#include <conio.h>int main(){int u;u=3 * (2L + 4.5f) - 012 + 44 ; printf ("%d\n", u);}

输出结果为:53

2)我的程序:

#include <stdio.h>#include<math.h>#include <conio.h>int main(){int u;u=3 * (int)sqrt(144.0) ; printf ("%d\n", u);}

输出结果为:36

3)我的程序:

#include <stdio.h>#include<math.h>#include <conio.h>void main(){int u;u=cos(2.5f + 4) - 6 *27L + 1526 - 2.4L ;printf ("%d\n", u);}

输出结果为:1362

------------------------------------任务分割线------------------------------------
任务4:以下两个程序都能实现了“取两个数最大值”算法,理解并分析两个程序的不同.

第一个先定义,第二个在后面才定义。要达到同一个目的,可以有不同的方法。

------------------------------------任务分割线------------------------------------
任务5:参考任务4,编写“返回三个参数中最大的一个”的程序,要求函数名为 double tmax(double, double, double),详细说明设计思路.

我的程序:

#include <stdio.h>double tmax (double x, double y,double z)  {     if (x > y&&x>z)         return x;     if (y>x&&y>z)         return y;  if(z>x&&z>y)  return z; }   int main()  {    double a,b,c;    printf("Input 3 number:\n");    scanf("%lf %lf",&a,&b,&c);    printf("The max is:%f \n",tmax(a,b,c));  }  

程序运行效果截图:

先定义函数,三者中最大的一定同时大于另外两者。大体过程与任务四相同。

------------------------------------任务分割线------------------------------------
任务6:写一个简单程序,它输出从1 到10的整数,详细说明设计思路。

我的程序:

#include <stdio.h>int main(){   int f;                                        int lower=1;           int upper=10;          int step=1;          f=lower;  while (f<=upper)  {        printf("%d\n",f);      f=f+step;  }  return 0;  }  

程序运行效果截图:

参考了之前的温度程序,每个数字之间相差1,初始是1,结束是10,运用while循环不用一个个打。

------------------------------------任务分割线------------------------------------
任务7: 写一个简单程序,它输出从10到-10的整数,详细说明设计思路。

我的程序:

#include <stdio.h>int main(){   int f;                                        int lower=-10;           int upper=10;          int step=1;          f=lower;  while (f<=upper)  {        printf("%d\n",f);      f=f+step;  }  return 0;  }  

程序运行效果截图:

原创粉丝点击