您的位置:澳门新葡8455最新网站 > 编程教学 > c语言程序设计案例教程

c语言程序设计案例教程

发布时间:2019-12-31 04:26编辑:编程教学浏览(147)

    • C# 方法-返回值
    • C# 方法-参数

    心碎知识点

    • 模块化:将三个主题材料分解成若干个头难点的经过成为模块化。
    • 模块化的优点:不但能够将三个长短不一的标题分解成几个相对轻易的难题;还足以增进程序代码的重用性。
    • 函数:函数是结合C程序的中坚单位。函数由函数首部和函数体八个部分组成,函数首部蕴含函数的归来类型、函数名称和参数表证明;函数体包蕴完成特定成效所须要施行的语句连串。
    • 函数调用原则:C语言中分明,全部函数必得“先定义后使用”。即:如果被调用的函数在后面定义,则能够直接调用;不然,须求将被调用函数的函数原型在前头证明,以便文告C编写翻译程序,那个函数的总体定义在后面。
    • 常用规范函数头文件
      1. math.h——包涵与数学有关的函数
      2. ctype.h——包涵与字符管理有关的函数
      3. string.h——满含与字符串管理有关的函数
      4. stdio.h——包蕴与输入输出有关的函数
      5. stdlib.h——包罗与动态分配存款和储蓄空间和产生随机值有关的函数
    • 递归
    1. 递归定义:定义七个定义的时候用到自家概念的概念方式被誉为递归定义。
    2. 递归算法:具备“求解子难题的主干方法与求解整个难点所运用的格局黄金时代致”特征的求解算法称为递归算法。
    3. 递归函数特征:在函数的实践体中冒出了调用函数本人。
    4. 事例——实现阶乘递归算法的递归函数如下:

      1 //计算n! 2 long factorial(int n) 3 { 4 if (n == 0) 5 return 1; 6 else 7 return n * factorial(n - 1); 8 }

    • 选用递归函数达成二分查找

    二分查找算法描述:对于二个风姿洒脱度从小到大排序的数据体系,用给定数据key与搜索区间中间地点的数目相比,假如相等声明查找成功;不然,借使key比中间地点的数额小,则在前半个区间用同意气风发的不二等秘书籍继续搜寻;不然在后半个区间用平等的方式继续查找。

    达成代码如下:

     1 #include<stdio.h>
     2 #pragma warning(disable:4996)
     3 #include<stdlib.h>
     4 #define NUM 10
     5 void input(int value[]);
     6 void output(int value[]);
     7 int search(int value[], int key, int low, int high);
     8 
     9 main()
    10 {
    11     int value[NUM], result, key;
    12     input(value);
    13     output(value);
    14     printf("nEnter the key : ");
    15     scanf("%dn", &key);
    16 
    17     result = search(value, key, 0, NUM - 1);
    18     if (result != 1)
    19         printf("n%d is the %dth element", key, result);
    20     else
    21         printf("nfail to find %d", key);
    22 }
    23 
    24 void input(int value[])
    25 {
    26     int i;
    27     for (i = 0; i < NUM; i++){
    28         scanf("%d", &value[i]);
    29     }
    30 }
    31 
    32 void output(int value[])
    33 {
    34     int i;
    35     for (i = 0; i < NUM; i++){
    36         printf("%4d", value[i]);
    37     }
    38 }
    39 
    40 int search(int value[], int key, int low, int high)
    41 {
    42     int mid;
    43     if (low>high)
    44         return -1;
    45     mid = (low + high) / 2;
    46     if (value[mid] == key)
    47         return mid;
    48     if (key < value[mid])
    49         return search(value, key, low, mid - 1);
    50     else
    51         return search(value, key, mid + 1, high);
    52 }
    
    • 自定义函数
    • 着力格式

    <函数重临类型> <函数名> (<参数表>卡塔尔

    {

    <函数体>;

    }

    • 说明:
    1. <函数再次回到类型> 是指函数试行实现后函数重临值所属的数据类型。
    2. <函数名> 的命名应该相符C语言的客户自定义标志符准则,並且最佳“见名知意”,最佳用二个能够反映操作成效的动词命名;。
    3. <参数表> 建议了调用函数时,须求向函数提供的参数个数和种种参数所属的数据类型,是函数之间交换音信的接口;若形参是一维数组类型,则不须求提出生机勃勃维数组的因素个数。
    4. 在调用函数之后,参数字传送递资历两当中央步骤:1)依据情势参数的扬言格式,为每贰个样式参数分配存款和储蓄空间。2)再将实际参数的值赋给相应的花样参数。函数实践实现后,释放为函数调用分配的富有存款和储蓄空间,并重回调用函数的岗位。
    5. 将实际参数字传送递给情势参数的进程具备以下基本特征:a)具备单向性,实际参数不仅可以够是变量,也足以是表明式;b)实际参数的值赋给方式参数之后,实际参数与方式参数不再有别的关联。
    6. 在函数未有被调用的时候,系统不会为其余参数分配空间,因此称为形参。
    7. <函数体> 由若干条须要实行的语句组成的语句类别,是函数的中央部分。
    8. C语言中,三个函数可以有再次回到值,也能够未有重临值。假设有重回值,重临值的花色在函数名前证明,并在函数体中接受return语句将重临值重回(若函数有重临值,在函数再次回到时,能够立即援引那些再次来到值,也得以将它保留在三个对应品种的变量中;不然,重回值将会废弃);若无再次来到值,在函数名前声称void,默许的回到类型是int。
    • 函数的调用

    函数调用语句的核心格式:<函数名> (<实际参数表>State of Qatar;

    1. <函数名> 是必要调用的函数名称。
    2. <实际参数表> 中的参数与那些函数的款型参数表相对应。
    3. 例子:

      1 int dataArray[100]; 2 int n; 3 double ave; 4 5 //自定义函数 6 double average(int value[], int num){ 7 int i, sum = 0; 8 for (i = 0; i < num; i++){ 9 sum += value[i]; 10 return sum*1.0 / num; 11 } 12 } 13 14 //函数调用 15 ave = average(dataArray, n卡塔尔国;


     

    大家将类中的自定义“函数”称为“方法”,由于 C# 是完周详向对象的语言,同不经常候为了方便解释之后的 C# 类,大家这里用“方法”来称呼“函数”。

    自定义函数的接受实例

    • #### 出口乘法口诀表

      1 #include 2 void drawline(int n, char ch卡塔尔; //必得存在 3 4 main() 5 { 6 int i, j; 7 printf("n 99 tablen"); 8 drawline(45, '='); 9 printf("n 1 2 3 4 5 6 7 8 9"卡塔尔(قطر‎; 10 drawline(45, '='卡塔尔国; //此处必得为单引号'',不然会发出乱码 11 for (i = 1; i <= 9; i++){ 12 printf("n%4d", i); 13 for (j = 1; j <= 9; j++){ 14 printf("%4d", ij); 15 } 16 if (i < 9) 17 drawline(45, '_'); 18 else 19 drawline(45, '='); 20 } 21 } 22 23 void drawline(int n, char ch){ 24 int i; 25 putchar('n'); 26 for (i = 1; i <= n; i++){ 27 putchar(ch); 28 } 29 }

    图片 1

    • ####  计量最长文本行

      1 #include 2 #include 3 #pragma warning(disable:4996) 4 void readline(char maxline[]); 5 6 main() 7 { 8 char maxline[100] = ""; 9 readline(maxline); 10 printf("the longest line is:n"); 11 puts(maxline); 12 } 13 14 void readline(char maxline[]) 15 { 16 char line[100]; 17 int maxlength; 18 int n; 19 20 maxlength = 0; 21 printf("nEnter the line:n"); 22 do{ 23 gets(line); 24 n = strlen(line); 25 if (n > strlen(maxline)){ 26 maxlength = n; 27 strcpy(maxline, line); 28 } 29 } while (n > 0); 30 }

     

    本博客内容为原创,版权全部违者必究,转发请申明来源 http://www.cnblogs.com/sunshine-blog/ 

    C# 方法基本结构为

    回去值类型 方法名称(参数列表卡塔尔
    {
        方法体
    }

    VB 中,Function 表示有再次回到值的办法,用 Sub 表示无再次回到值的经过,C# 中都称之为方法,只是有有再次来到值和无重返值之分。

    有重回值的艺术

    “重返值类型”必须怀有。

    方法体中必得进行 return 语句,return 后跟重回值,施行 return 语句后立即暂停该措施推行并重临值。

    无重临值的措施

    “再次来到值类型”必得是 void。

    方法体中可以有 return 语句,但 return 后不跟再次来到值,倘诺有 return 语句,则实践到 return 语句时将及时暂停该方法推行。

    • C# 方法-返回值
    • C# 方法-参数

    本文由澳门新葡8455最新网站发布于编程教学,转载请注明出处:c语言程序设计案例教程

    关键词: