C语言学习
*pan
不能当咸鱼的潘
展开
-
C语言学习(三)表达式
1.表达式一个表达式是一系列运算符与算子的组合,用来计算一个值。运算符:进行运算的动作算子:可以是值、常数或者变量。例1:计算时间差输入两个时间,每个时间分别输入小时与分钟的值,然后输出两个时间之间的差。分析:① 输入两个时间: int hour1,minute1; int hour2,minute2; scanf("%d %d",&hour1,&min...原创 2019-01-25 22:31:32 · 1599 阅读 · 0 评论 -
C语言学习(十七)全局变量 宏定义
1.全局变量①全局变量的定义与性质定义在函数外面的变量是全局变量,全局变量具有全局的生存期和作用域,它们与任何函数都无关,在任何函数内部都可以使用它们。例1:全局变量#include<stdio.h>int f(void);int g=12; //定义全局变量int main(int argc, char const *argv[]){ printf(...原创 2019-02-22 20:30:58 · 5790 阅读 · 1 评论 -
C语言学习(十八)大程序
在编写比较复杂的程序时,为了使程序看起来更加有条理,我们需要采取一些措施。之前我们已经学习了函数,但是有的时候只使用函数还是会看起来很混乱,这里我们就学习一下怎么使用多个.c文件来编写大程序。1. 多个.c文件main()里面的代码太长,适合分为几个函数;一个源代码文件太长适合分为几个文件;两个独立的源代码文件不能编译形成可执行的程序;例1:多个.c文件的项目首先新建一个项目,在源文件...原创 2019-02-24 20:35:51 · 1305 阅读 · 0 评论 -
C语言学习(十六)结构
在程序中需要表达数据就需要有一个变量,也会对应一种类型,我们之前所学的基础类型有int、char、double等。但是如果我们所需要表达的不是一个值,我们又希望可以用一个整体来表达,那么我们就需要用到结构。一个结构就是一种特殊的数据类型,里面可以由很多的成员,也就是用一个变量来表达多个数据。1.结构类型① 结构声明形式1:struct point //声明结构{int x;int ...原创 2019-02-20 20:42:29 · 453 阅读 · 0 评论 -
C语言 文件读写的实现
关于C语言的文件读写,我将介绍下面这几种方式:字符的读写:使用 fgetc() 函数 和 fputc() 函数;字符串的读写:使用 fgets() 函数和 fputs() 函数;格式化的读写(主要用于文本文件):使用 fscanf() 函数和 fprintf() 函数。字符读写:1. fputc()函数fputc(c,fp); //用于将一个字符写入文件其中,...原创 2019-04-26 11:55:33 · 16762 阅读 · 5 评论 -
C语言 实现一个简单的电子词典
首先使用TCC完成文本文件的读取,另外使用文本文件写一个关于郑码的编码输入与汉字对应关系,再使用TCC完成输入编码时输出对应汉字的功能,也就是完成一个小字典软件。TCC需要完成的内容就是实现文本文件的读取和查询。...原创 2019-04-26 14:28:04 · 4191 阅读 · 0 评论 -
使用TCC编译器以及notepad++完成TCC自己编译自己
这部分主要介绍几种常见的C语言编译器,以及常用的C语言文本编辑器notepad++。然后使用notepad++以及TCC编译器完成自己编译自己。一、常见C语言编译器介绍这里我们将介绍到的常见C语言编译器有:GCC、TCC、VC++6.0、Dev-C++、VS。1.GCCGNU编译器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、...原创 2019-04-21 08:32:35 · 2318 阅读 · 0 评论 -
C语言文本处理——提取单子码表
功能分析:现有包括郑码与拼音的一个词典TXT文件(incode.txt)共十万行内容,我们需要对郑码词典部分(也就是前58031行内容)进行内容提取。将中文只有一个字的内容进行整行提取,写入一个新的TXT文件(in.txt)中。编程思路:将 incode.txt 文件的内容进行读取,读取编码部分存储到p[i].key中,读取汉字部分存储到p[i].chinese中。对于前58031个p[i]...原创 2019-05-27 13:50:22 · 447 阅读 · 0 评论 -
C语言 带参数的main函数的编译运行
这里主要介绍的是C99标准下的C语言main函数形式。C语言中,main函数可以带参数也可以不带参数。不带参数的main函数格式为:main() //它实际上是 main(void)的简写C语言中如果miain函数需要带参数,带参数的main函数格式为:main(int argc, char *argv[]) //也可写成 main(int argc, char **arg...原创 2019-05-27 10:39:18 · 9187 阅读 · 0 评论 -
C语言文本处理——郑码与拼音兼容的输入法实现
功能分析文本文件的组成:文本构成的格式是 郑码以及拼音的编码+空格+对应的汉字如:原创 2019-05-29 10:12:05 · 620 阅读 · 0 评论 -
C语言产生抽样信号并使用gnuplot绘图
功能分析①产生采样率为8000次每秒的正弦信号,时长为1秒。正弦信号的幅度为0.6,频率为500Hz,或50Hz。② 用gnuplot软件画出这个信号的波形图。③ 将以上500Hz和50Hz的两个正弦信号相加。并用gnuplot画出相加后的波形图。首先分析正弦波信号的产生。设正弦信号的表达式为:f(t)=A sin(2 π f t),A为幅度,f为频率,t为时间。这样我们就设置好了幅度以及...原创 2019-06-01 10:56:04 · 1237 阅读 · 0 评论 -
C语言 使用DFT得到信号幅度谱
前面的两个部分分别完成了信号的抽样以及DFT的计算,我们最终的目的是利用DFT与FFT实现信号的幅度谱计算。也就是对一个信号进行抽样然后计算其DFT或者FFT的结果既可。另外,我们还将比较DFT与FFT计算得到幅度谱的速度。1.DFT实现信号幅度谱计算2.FFT实现信号幅度谱计算...原创 2019-06-06 14:52:54 · 1955 阅读 · 0 评论 -
C语言 使用FFT得到信号幅度谱
前面的一篇文章我们介绍了使用DFT得到信号的幅度谱的方法,现在我们来看一下FFT实现信号幅度谱。这里我们使用的FFT源程序是徐士良老师的C语言算法程序——快速傅里叶变换。另外,本文也会对DFT以及FFT实现信号幅度谱计算时,所需要的计算量以及花费的时间进行比较。1.FFT原理FFT(Fast Fourier Transformation)是离散傅氏变换(DFT)的快速算法,也就是快速傅里叶变换...原创 2019-06-06 19:24:02 · 8600 阅读 · 0 评论 -
C语言学习(十五) 字符串函数
在字符串的计算部分,C语言函数库里面有很多处理字符串的函数,下面我们就介绍一些关于字符串处理函数的用法。具体包含字符串的输入输出getchar与putchar,还有string.h中的strlen、strcmp、strcpy、strcat、strchr、strstr等函数。1. getchar与putchar函数putchar函数int putchar(int c);向标准输出写一个字符,...原创 2019-02-18 18:33:26 · 2032 阅读 · 0 评论 -
C语言学习(十四)字符串
1. 字符串1.1字符数组char word[] = {‘H’,’e’,’l’,’l’,’o’,’!’};这是一个字符数组,并不是字符串,也不能用字符串的计算方法进行计算字符串1.2字符串char word[] = {‘H’,’e’,’l’,’l’,’o’,’!’,’\0’};以0结尾的一串字符,可以当做字符串进行计算;0标志字符串的结束,在但它 字符串的一部分,计算字符串长度...原创 2019-02-16 17:11:30 · 279 阅读 · 0 评论 -
C语言学习(一)程序编译运行
这里会介绍到两种编译运行的方式,一种是vistual studio,另一种是借助sublime在tcc编译器下进行程序的运行。1. 使用visual studio 2010软件安装:由于假期里刚重新安装了电脑系统,又重新进行了软件的安装,visual studio 2010我是在msdn网站进行安装的。关于程序整个的编写以及运行流程,写一个hello world简单说明一下。①新建项目-&amp;amp;amp;amp;...原创 2019-01-22 15:58:07 · 435 阅读 · 0 评论 -
C语言学习(四)判断与分支
1. 关系运算计算两个值之间的关系,叫做关系运算,关系运算符有如下几种:关系运算的结果:关系运算的结果只有两种,要么关系运算成立,结果为1;要么关系运算不成立,结果为0。优先级:① 关系运算符的优先级比算术运算的低,但是比赋值运算高。例如:printf(“%d\n”,7&amp;amp;gt;=3+4);输出的结果是1,也就是对3+4的结果进行了与7的关系运算得到的是成立,最后输出了1。表明算术运算...原创 2019-01-27 14:29:35 · 894 阅读 · 0 评论 -
C语言学习(五)循环 上
很多时候我们需要对算法进行重复,如果使用if语句会很繁琐,这时就需要用到循环对算法进行简化。本次学习主要内容是while与do while循环并完成关于循环应用的一些例题。1.while循环while(判断){循环体语句}当条件满足的时候,不断重复循环体的语句,如果条件不成立,就可能一次都不执行循环体语句。2. do while循环do{循环体语句}while(判断)先...原创 2019-01-29 16:06:14 · 216 阅读 · 0 评论 -
C语言学习(六)循环 下
这里除了之前的while与do while循环,还介绍了第三种循环:for循环。另外还有一些循环的例题进行练习。例1:阶乘分析:输入一个数,利用循环计算其阶乘。用变量n表示输入的数,利用中间变量i进行累加操作,用fact变量存放乘法的结果。方法一:使用while循环int main(){ int n; int fact=1; int i=1; scanf(&quot;%d&quot;,&amp;amp;n)...原创 2019-01-31 23:28:40 · 428 阅读 · 0 评论 -
C语言学习(九)函数
我们在编程的时候会遇到比较复杂的程序,有时候可以把一些含有特定功能的一部分写成一个函数,这一部分就是学习函数的写法。尤其是很多时候我们会遇到代码复制的情况,这时候用函数就会使代码变得更好,同时也方便进行修改和使用。1. 函数:函数是一块代码,可以接受0个或多个参数,做一件事情,并返回0个或1个值。例1.1求和函数:sum()函数部分void sum(int begin,int end){...原创 2019-02-06 09:55:09 · 1095 阅读 · 0 评论 -
C语言学习(十)数组初步
我们之前的平均数计算程序编写,是将所有需要的值输进去,到输入-1的时候停止,对输入的数进行求和计数,最后求平均数。这里并没有记录输入的每一个数,当我们需要记录这些数,我们会需要定义很多变量,并且因为无法确定输入了多少个数,这基本是无法完成的,因此我们将学习有关数组的问题。例1:输入一些数字,输出大于平均数的数int main(){ int x, i; double sum=0; int...原创 2019-02-08 17:33:41 · 293 阅读 · 0 评论 -
C语言学习(十一)数组运算以及二维数组
1.数组运算①数组集成初始化int a[]={2,3,3,4,4,5,5,6,6,7,13,23};直接用大括号给出数组所有元素的初始值,不需要给出数组的大小,编译器替你数数。int a[]={0};用这种方式可以将数组中全部元素初始化为0。②数组的大小sizeof(a)/sizeof(a[0]);sizeof给出整个数组占据的内存大小,单位是字节。该语句可以判断出数组元素个...原创 2019-02-10 22:17:13 · 7670 阅读 · 0 评论 -
C语言学习(二)变量
本次学习了C语言中的变量问题,这里穿插了两个例子的分析,分析了变量使用的一些问题,包括变量名、变量定义赋值、变量输入等。例1:找零代码如下:#include&lt;stdio.h&gt;int main(){ int price = 0,change = 0; printf(“请输入金额\n”); scanf(“%d”,&amp;price);change =100-pri...原创 2019-01-23 14:05:10 · 806 阅读 · 0 评论 -
C语言学习(十二)指针介绍
1. 指针基础① 运算符&amp;amp;“scanf(“%d”,i)”中的&amp;amp;表示获得变量i的地址,它的操作数必须是变量,地址的大小取决于编译器。&amp;amp;不能对没有地址的东西进行取地址,如&amp;amp;(a+b)、&amp;amp;(a++)都是不可以的。② 指针我们要取得地址并用其进行运算,可以用来存储地址的就是指针。int I;int* p=&amp原创 2019-02-12 17:42:42 · 220 阅读 · 0 评论 -
C语言学习(十三)指针运算及动态内存分配
1. 指针运算① 算术运算:给指针进行加减运算,+1、- 1、++、- -等运算,实际是地址计算。例1:指针加一int main(void){ char ac[]={0,1,2,3,4,5,6,7,8,9}; char *p=ac; int ai[]={0,1,2,3,4,5,6,7,8,9}; int *q=ai; printf("p=%p\n",p); printf("...原创 2019-02-14 23:46:07 · 388 阅读 · 0 评论 -
C语言学习(七)数据类型 整数篇
这里主要讲了C语言的基本数据类型分类、内存占用,并且主要学习了关于整数的计算机内部表达,类型选择等。1. C语言数据类型:① 整数char short int long② 浮点数float double③ 逻辑bool④ 指针⑤ 自定义类型2. 类型的不同类型名称:int long double输入输出的格式化:%d、%f、%ld、%lf...原创 2019-02-02 20:14:36 · 492 阅读 · 0 评论 -
C语言学习(八)数据类型 浮点数与字符
这部分学习的是数据类型的浮点数与字符这两个类型,主要关于它们的类型介绍、输入输出等的问题,另外还学习了类型转换的方法。1. 浮点类型float 32字长 有效数字:7double 64字长 有效数字:152. 浮点数输入输出:例1:double的输出int main(){ double a=1234.5678; printf("%f,%e\n",a,a); ...原创 2019-02-04 10:01:32 · 1062 阅读 · 2 评论 -
C语言有限长序列的DFT实现及gnuplot作图
离散傅里叶变换(Discrete Fourier Transform,缩写为DFT),是傅里叶变换在时域和频域上都呈离散的形式,将信号的时域采样变换为其DTFT的频域采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号作DFT,也应当将其看作其周期延拓的变换。...原创 2019-06-01 21:09:48 · 1692 阅读 · 0 评论