iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言函数封装及变量的作用域实例分析
  • 213
分享到

C语言函数封装及变量的作用域实例分析

2023-06-30 13:06:31 213人浏览 薄情痞子
摘要

这篇“C语言函数封装及变量的作用域实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言函数封装及变量的作用域实例分析

这篇“C语言函数封装及变量的作用域实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言函数封装及变量的作用域实例分析”文章吧。

1. for循环示例

#include <stdio.h>int main(){int i,j;int len=4;for(i=len; i>=1; i--){for(j=len; j>i; j--)printf(" "); //打印空格for(j=1; j<=i; j++)printf("%d",j); //打印前半部分for(j=i-1; j>=1; j--)printf("%d",j); //打印后半部分printf("\n");}return 0;}

2. 模拟实现投票系统。switch

比如: 有10张票,3个候选人。 进行投票,最终得出票数。

#include <stdio.h>int main(){int i;int val; //获取键盘上输入的值int cnt1=0,cnt2=0,cnt3=0,cnt4=0;for(i=1; i<=10; i++){printf("请输入投票的编号(1~3,4表示无效票) 剩余票数(%d) :",10-i);scanf("%d",&val);switch(val){case 1:cnt1++;break;case 2:cnt2++;break;case 3:cnt3++;break;default:cnt4++;break;}}printf("1号选手:%d\n",cnt1);printf("2号选手:%d\n",cnt2);printf("3号选手:%d\n",cnt3);printf("无效票数:%d\n",cnt4);return 0;}

3. 计算字符串空格、数字等数据数量

从键盘上输入一个字符串:

计算字符串里有多少个空格、小写字母、大写字母、数字。

scanf("%s",buff);#include <stdio.h>int main(){char buff[100];int i=0;int cnt1=0,cnt2=0,cnt3=0,cnt4=0,cnt5=0;printf("请输入字符串:");gets(buff);while(buff[i]!='\0'){if(buff[i]==' '){cnt1++;}else if(buff[i]>='a'&& buff[i]<='z'){cnt2++;}else if(buff[i]>='A'&& buff[i]<='Z'){cnt3++;}else if(buff[i]>='0'&& buff[i]<='9'){cnt4++;}else{cnt5++;}i++;}printf("空格:%d\n",cnt1);printf("小写:%d\n",cnt2);printf("大写:%d\n",cnt3);printf("数字:%d\n",cnt4);printf("其他:%d\n",cnt5);return 0;}

4. 字符串转整数。

从键盘上输入一个字符串”12345”,  int data=12345;

#include <stdio.h>//"1234"int main(){char buff[100];int i=0,value=0;printf("输入数字字符串(0~9):");scanf("%s",buff);while(buff[i]>='0' && buff[i]<='9')  //实现字符串转整数{value=value*10; //0 10 120 1230value=value+(buff[i]-'0'); //1 12 123  1234i++;}if(buff[i]!='\0') //转换失败{printf("警告:转换不完整。 得到的值:%d\n",value);}else{printf("转换成功! 正确值=%d\n",value);}return 0;}

5. 整数转字符串

整数转字符串:

#include <stdio.h>//1234int main(){char buff[100];char str[100];unsigned int i=0,val=0,j;printf("请输入一个整数:");scanf("%d",&val);while(val){buff[i]=val%10+'0'; //"4321"val=val/10;i++;}for(j=0; j<i; j++){str[j]=buff[i-j-1]; //倒序}str[j]='\0';printf("转换之后字符串: %s\n",str);return 0;}

6. 浮点数转字符串

//以下例子代码实现将浮点数分解成两个整数#include <stdio.h>//1234int main(){float data=123.456789;int data1,data2;data1=data; //得到整数部分data2=(data-data1)*1000000;printf("%d.%d\n",data1,data2);return 0;}

7. 字符串转浮点数

从键盘上输入一个字符串”123.45”,  float data=123.45;

printf("%d\n",0);   //0printf("%d\n",'0'); //48

8. 函数的特性与用法

C语言是靠函数组成。
函数的特性:

  • 函数就相当于封装一个工具

  • 函数可以重复调用。

  • 函数的功能尽可能的单一。  比如:判断闰年和平年

  • 我们自己的写的函数,(除了main函数之外)  子函数。

  • 一般情况下,子函数的代码都在main函数的下面。

  • 在调用任何子函数之前,都需要声明。

函数的定义:

<函数返回值类型>  函数的名称(形参1,形参2&hellip;&hellip;.)
{
函数的代码&hellip;&hellip;
return <返回值值>;  //如何函数有返回值才需要返回
}

函数的模型:

void func1(void);  //函数声明int func1(int data1,int data2 );  //函数声明//函数原型void func1(void){}//函数原型int func1(int data1,int data2 ){return 100;}

函数示例(计算和):

#include <stdio.h>int sum(int a,int b);  //函数声明int main(){    int data;    data=sum(100,200); ///调用sum函数,并且接收返回值    printf("data=%d\n",data);    data=sum(300,500); ///调用sum函数,并且接收返回值    printf("data=%d\n",data);    return 0;}int sum(int a,int b){    int c=a+b;    return c;}

9. 判断平年和闰年

#include <stdio.h>int GetYear(int year);  //函数声明int main(){int i;for(i=2001; i<2018; i++){if(GetYear(i))printf("%d 是闰年.\n",i);else printf("%d 是平年.\n",i);}return 0;}int GetYear(int year){if((year%4==0&&year%100!=0)||(year%400==0)){return 1;}else{return 0;}}

10. 将数组当做函数的形参

#include <stdio.h>void print(char buff[]);int main(){char buff[]="34534r4gyhtrvfvfdvdf";print(buff);print(buff);print(buff);print(buff);return 0;}void print(char buff[]){printf("buff=%s\n",buff);}

11. 计算字符串长度

函数示例: 封装函数,计算字符串长度

#include <stdio.h>int my_strlen(char buff[]);int main(){char buff[100];scanf("%s",buff);printf("字符串长度:%d\n",my_strlen(buff));return 0;}int my_strlen(char buff[]){int len=0;while(buff[len]!='\0'){len++;}return len;}

12. 全局变量、静态变量、局部变量、常量

如何声明常量?  
示例:  常量和变量的区别测试

#include <stdio.h>int main(){int data1=123; //默认声明为变量const int data2=456;//声明为常量//区别:  变量可以改变数据  常量不可改变数据data1=789;//data2=789;  错误赋值方式return 0;}

全局变量和局部变量区别:

#include <stdio.h>void func(void);int data=123; //全局变量,定义在函数之外的变量。  公用变量int main(void){    int data=456; //局部变量,私有变量    printf("data1=%d\n",data); //当全局变量和局部变量重名的时候,优先使用局部变量    func(); //调用函数    return 0;}void func(void){    printf("data2=%d\n",data); //使用全局}

局部变量传参数示例:  (分析局部变量)

#include <stdio.h>void func(int data);int main(void){    int data=456; //局部变量,私有变量    func(data);    printf("data1=%d\n",data);    return 0;}void func(int data){    data=9999;    printf("data2=%d\n",data);}

函数形参传递数组和传递变量的区别:

#include <stdio.h>void func(int buff[],int data);int main(void){    int buff[10]={456,123,789}; //局部变量,私有变量    int data=888;    printf("data1的地址=0x%X\n",&data);    printf("buff1的地址=0x%X\n",buff);    func(buff,data);                    //传递的是数组的首地址    printf("buff1=%d\n",buff[0]); // 9999 ?    printf("data=%d\n",data); // 888  ?    return 0;}void func(int buff[],int data){    buff[0]=9999;    data=9999;    printf("data2的地址=0x%X\n",&data);    printf("buff2的地址=0x%X\n",buff);}

全局变量和静态变量的生命周期与main函数一样长。局部变量的声明周期与调用的子函数挂钩,子函数调用完毕,内部所有的局部变量全部释放。什么是静态变量?   局部的全局变量
如何声明?    static 关键字。  

示例:

 static int data;  //表示声明data是静态变量
#include <stdio.h>int func(void);int main(void){int i;int sum=0;for(i=0; i<5; i++){sum+=func(); //累加}printf("%d\n",sum);  //  ?return 0;}int func(void){static int data=0;  //声明静态变量,int data=0 只会执行一次。data++;return data;}

13. 字符串进阶练习作业

函数的作业:  

时间转换(秒与标准时间的转换) 

(1)函数1:  将秒单位时间转为标准时间。  
        237562867493 -----xxxx年xx月xx日xx时xx分xx秒
(2)函数2:  将标准时间转为秒单位的时间。
       2018年6月1日19点41分23秒----------xxxxxxx秒
  闰年366,平年365。  区分: 每年二月份相差一天

将字符串转整数、整数转字符串、浮点数转字符串、字符串转浮点数 封装为函数。

3.封装字符串拼接函数:   函数功能实现将a和b字符串拼接在一起。   
比如: char a[100]=”123”;  char b[]=”456”;    调用函数之后:  a[]=”123456”

4.封装字符串的拷贝函数: 将a字符串拷贝到b字符串。
5.封装字符串的比较函数: 比较a字符串和b字符串是否相等。 通过返回值进行区分。

字符串解析(扩展):

分析GPS卫星返回的数据

提取最基本的数据:

  • (1)UTC时间

  • (2)海拔高度

  • (3)经纬度

char gps_data[]={"$GNGGA,114955.000,2842.4158,N,11549.5439,E,1,05,3.8,54.8,M,0.0,M,,*4F \$GNGLL,2842.4158,N,11549.5439,E,114955.000,A,A*4D \$GPGSA,A,3,10,31,18,,,,,,,,,,5.7,3.8,4.2*37 \$BDGSA,A,3,07,10,,,,,,,,,,,5.7,3.8,4.2*2A \$GPGSV,3,1,10,10,49,184,42,12,16,039,,14,54,341,,18,22,165,23*7B \$GPGSV,3,2,10,22,11,318,,25,51,055,,26,24,205,,29,13,110,*7C \$GPGSV,3,3,10,31,50,287,36,32,66,018,*7F \$BDGSV,1,1,04,03,,,07,05,,,29,07,79,246,33,10,52,232,19*62 \$GNRMC,114955.000,A,2842.4158,N,11549.5439,E,0.00,44.25,061117,,,A*4D \$GNVTG,44.25,T,,M,0.00,N,0.00,K,A*14 \$GNZDA,114955.000,06,11,2017,00,00*47 \$GPTXT,01,01,01,ANTENNA OK*35"};

以上就是关于“C语言函数封装及变量的作用域实例分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网其他教程频道。

--结束END--

本文标题: C语言函数封装及变量的作用域实例分析

本文链接: https://www.lsjlt.com/news/329248.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言函数封装及变量的作用域实例分析
    这篇“C语言函数封装及变量的作用域实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言函数封装及变量的作用域实例分析...
    99+
    2023-06-30
  • C语言函数封装及变量的作用域
    目录1. for循环示例2. 模拟实现投票系统。switch3. 计算字符串空格、数字等数据数量4. 字符串转整数。5. 整数转字符串6. 浮点数转字符串7. 字符串转浮点数8. 函...
    99+
    2024-04-02
  • 函数变量作用域的示例分析
    这篇文章将为大家详细讲解有关函数变量作用域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。局部变量:在函数中,定义的变量就是局部变量,其作用范围仅限函数的内容;形参也是函数内部的变量,也是局不变量...
    99+
    2023-06-15
  • JavaScript的变量作用域实例分析
    这篇文章主要讲解了“JavaScript的变量作用域实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript的变量作用域实例分析”吧!1.变量作用域的分析首先,我们先研究一...
    99+
    2023-06-29
  • C语言全局变量实例分析
    本篇内容主要讲解“C语言全局变量实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言全局变量实例分析”吧!我们知道,全局变量是C语言语法和语义中一个很重要的知识点,首先它的存在意义需要从...
    99+
    2023-06-30
  • JS变量及其作用域的示例分析
    小编给大家分享一下JS变量及其作用域的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、 变量及其作用域:变量分为“全局...
    99+
    2024-04-02
  • JavaScript变量类型以及变量作用域的示例分析
    这篇文章主要介绍JavaScript变量类型以及变量作用域的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!变量类型ECMAScript变量可能包含两种不同类型的数据值:基本类...
    99+
    2024-04-02
  • Python中变量的作用域实例分析
    这篇“Python中变量的作用域实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中变量的作用域实例分析”文...
    99+
    2023-06-29
  • C语言函数使用实例分析
    这篇文章主要介绍了C语言函数使用实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言函数使用实例分析文章都会有所收获,下面我们一起来看看吧。函数的声明和定义函数声明告诉编译器有一个函数叫什么,参数是什么...
    99+
    2023-06-30
  • JavaScript中变量的作用域实例分析
    本篇内容主要讲解“JavaScript中变量的作用域实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript中变量的作用域实例分析”吧!一、变量的分类在JavaScript中变...
    99+
    2023-06-29
  • C语言的div()函数实例分析
    本文小编为大家详细介绍“C语言的div()函数实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言的div()函数实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2024-04-02
  • Python变量的作用域举例分析
    本篇内容主要讲解“Python变量的作用域举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python变量的作用域举例分析”吧!函数体内的变量为函数的局部变量,在函数体外不可使用>&...
    99+
    2023-06-21
  • 解析Golang函数变量的作用域
    Golang函数变量作用域解析,需要具体代码示例Golang是一种开源的静态类型编程语言,注重效率和简洁,其函数变量作用域的解析机制也是开发者需要了解的重要内容之一。本文将介绍Golang中函数变量的作用域以及与其相关的规则,同时提供代码示...
    99+
    2023-12-23
    作用域 解析 Golang函数变量
  • Shell中变量作用域的示例分析
    这篇文章主要为大家展示了“Shell中变量作用域的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell中变量作用域的示例分析”这篇文章吧。前言众所周知Shell 中的变量只作用于当前...
    99+
    2023-06-09
  • Angular模板引用变量及其作用域的示例分析
    小编给大家分享一下Angular模板引用变量及其作用域的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Angular模板引用变量如果你曾经参与过Angular项目的开发,那么你可能...
    99+
    2024-04-02
  • C语言中不定参数 ... 的语法以及函数封装
    目录Intro语法测试依赖库新函数使用测试:遍历并打印不定参数中的值总结 Intro 有一天看C代码看到某个方法有这样的定义:在函数形参列表处,有...的写法,就像Java...
    99+
    2023-01-28
    c语言不定参数函数 c语言不定参数 ... c语言参数
  • C语言详解strcmp函数的分析及实现
    目录1.函数介绍1.1.函数接口1.2.函数分析1.3.函数的简单使用1.4.函数使用结果分析2.库函数strcmp源代码2.1.库函数源代码2.2.库函数分析3.模拟实现 strc...
    99+
    2024-04-02
  • JavaScript中变量作用域及内存问题的示例分析
    这篇文章给大家分享的是有关JavaScript中变量作用域及内存问题的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。学习要点:1.变量及作用域2.内存问题JavaScri...
    99+
    2024-04-02
  • C语言中全局变量与局部变量的示例分析
    小编给大家分享一下C语言中全局变量与局部变量的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一:局部变量与全局变量1.1:局部变量局部变量:在函数内部定义...
    99+
    2023-06-25
  • JavaScript全局作用域和函数作用域实例分析
    本篇内容介绍了“JavaScript全局作用域和函数作用域实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作