zoukankan      html  css  js  c++  java
  • 第七次作业

    一、实验内容

    1.实验要求:定义一个判断素数的函数isprime(int n),利用该函数输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)

    代码:

    #include<stdio.h>
    int isprime(int n);
    int isprime(int n)
    {
        int m;
        for(m=2;m<=n-1;m++)
        {
            if(n%m==0)
            {
                return 0;
            }
       }
       return n; }
    int main() { int m=0,i; for(i=2;i<=1000;i++) { if(isprime(i)) { printf("%5d",i); m++; if(m%10==0) { printf(" "); } } } printf(" %d个素数",m); return 0; }

    运行结果截图:

    2.实验要求:求两个正整数的最大公约数和最小公倍数。用一个函数gcd(int a,int b)求最大公约数,另一个函数lcm(int a,int b)根据求出的最大公约数求最小公倍数。

    代码 :

    #include<stdio.h>
    int gcd(int a,int b);
    int lcm(int a,int b);
    int gcd(int a,int b)
    {
        int i,n,max;
        if(a>=b)
        {
            max=a;
        }
        else if(a<b)
        {
            max=b;
        }
        for(i=1;i<=max;i++)
        {
            if(a%i==0&&b%i==0)
            {
                n=i;
                continue;
            }
         }
       return n; }
    int lcm(int a,int b) { int m; m=a*b/gcd(a,b); return m; } int main() { int a,b,n,m; printf("输入两个正整数的值 "); scanf("%d %d",&a,&b); if(a<0||b<0) { printf("数据错误"); } else { n=gcd(a,b); m=lcm(a,b); printf("最大公约数%d,最小公倍数%d ",n,m); } return 0; }

    运行结果截图:

    3.实验要求:编写一个函数fun(double x)求表达式x2-5x+4的值,x作为参数传给函数。在主函数中调用该函数求下列式子的值:

           y1= 22-5*2+4

           y2= (x+15)2-5*(x+15)+4

           y3= sin2x-5*sinx+4    

       求y3用数学函数 sin(x)  头文件math.h

       求解y2和y3时需要输入x的值。

       样例:

       y1=-2, x=0.5时,y2=166.75,y3=1.832721

    代码:

    #include<stdio.h>
    #include<math.h>
    double fun(double x);
    double fun(double x)
    {
        double y;
        y=x*x-5*x+4;
        return y;
    }
    int main()
    {
        double x,y1,y2,y3;
        printf("请输入x的值
    ");
        scanf("%lf",&x);
        y1=fun(2);
        y2=fun(x+15);
        y3=fun(sin(x));
        printf("y1=%.2lf,y2=%.2lf,y3=%.2lf",y1,y2,y3);
        return 0;
    }

    运行结果截图:

    4.实验要求:用函数实现:火柴棍等式问题。

    代码:

    #include<stdio.h>
    int fun(int x);
    int fun(int x)
    {
        int s;
        switch(x)
        {
            case 0:
            case 6:
            case 9:
                s=6;
                return s;
            case 1:
                s=2;
                return s;
            case 2:
            case 3:
            case 5:
                s=5;
                return s;
            case 4:
                s=4;
                return s;
            case 7:
                s=3;
                return s;
            case 8:
                s=7;
                return s;
        }
    }
    int main()
    {
        int sum,s1,s2,s3,a,b,c;
        for(a=0;a<=9;a++)
        {
            for(b=0;b<=9;b++)
            {
                s1=fun(a);
                s2=fun(b);
                c=a+b;
                if(c>9)
                {
                    break;
                }
                else
                {
                    s3=fun(c);
                    sum=s1+s2+s3;
                    if(sum!=12)
                    {
                        continue;
                    }
                    else
                    {
                        printf("%d+%d=%d
    ",a,b,c);
                    }
                }
                
            }
        }
        return 0;
    }

    运行结果截图:

    二、知识点总结

    1. 函数定义的基本格式,函数定义和函数原型(声明)的区别何在?

    一般格式:

    函数首部(函数类型:函数返回值类型,缺省int型,无返回值void。函数名:合法标识符)

    函数类型     函数名(形参类型说明表)

    {

      说明部分

      语句部分

    }

    不允许嵌套。

    一般不允许有输入输出语句。

    函数的返回语句

      形式:  return(表达式);或 return   表达式;

      功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数

      说明:函数中可有多个return语句

      若无return语句,遇}时,自动返回调用函数

      若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换------函数调用转换

      void型函数

    函数定义(函数功能的确立;由函数体;是完整的单位;编译器做实事,分配内存把函数装入内存。)

     函数分类

     从用户角度

     标准函数(库函数):由系统提供

     用户自定义函数

     从函数形式

     无参函数

     有参函数

    使用库函数应注意:

    1、函数功能

    2、函数参数的数目和顺序,及各参数意义和类型

    3、函数返回值意义和类型

    4、需要使用的包含文件

    函数原型(声明)(对函数名、返回值类型、形参类型进行声明;不包括函数体;是一条语句,以分号结束,只起声明作用;不分配内存,只保留一个引用;)

    函数首部,以分号“;”结尾,构成了函数的原型
    函数原型的目的是告诉编译器这个函数长什么样
     名称
    参数(数量及类型)
     返回类型
    旧标准习惯把函数原型写在调用它的函数里面
    现在一般写在调用它的函数前面
    原型里可以不写参数的名字,但是一般仍然写上

     函数的定义出现在函数调用之前时可以不用给出函数原型,但良好的编程习惯是在程序开头给出所有的函数原型。

    2. 函数的调用方式有哪几种
    调用方式
     函数无返回值时,单独作为一个函数调用语句:

       例   printstar();

              printf(“Hello,World! ”);

     函数有返回值时,可放到一个 赋值表达式语句中:

      例    m=max(a,b)*2;

     还可放到一个 函数调用语句 中,作为另一个函数的参数:

      例     printf(“%d”,max(a,b));

               m=max(a,max(b,c));

    3. 什么是形参,什么是实参,函数调用时的参数传递机制是什么?

    函数调用:

     调用形式

       函数名(实参表);

    ()起到了表示函数调用的重要作用
    即使没有参数也需要()
    如果有参数,则需要给出正确的数量和顺序
    这些值会被按照顺序依次用来初始化函数中的参数
    形式参数:定义函数时函数名后面括号中的变量名。(函数的入口。void:表示无参数,可省略。)

    实际参数:调用函数时函数名后面括号中的表达式

    三、实验总结

    1.最重要的是搞清楚为什么定义函数,函数在主函数中的作用。

    函数的声明要加分号,函数的定义不加分号。

  • 相关阅读:
    [Javascript]发布一个自己写的日期控件:DateTimeList
    Oracle PL/SQL 编程手册(SQL大全)
    [乱七八糟][转]程序版吉祥三宝
    [乱七八糟][转]这不是你想象中的软件产业
    [随文杂记]生男好还是生女好?
    [SqlServer]链接数据库存储过程
    [音乐天堂]辛德勒名单原声大碟
    [C#]WinFrom中的DataGrid单击选择行
    [乱七八糟]《进化论——人类科学史上最大的谎言》
    [乱七八糟]《阿甘正传》点评
  • 原文地址:https://www.cnblogs.com/xxs812/p/6079584.html
Copyright © 2011-2022 走看看