C语言程序设计
文章平均质量分 51
C语言程序设计学习笔记
青崖嵌云
一位在沉稳硬件上,编织灵动智能的嵌入式行者。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux入门学习】Linux软件包管理(1)
流行的两种软件包管理机制(1)Debian Linux首先提出“软件包”的管理机制—Deb软件包将应用程序的二进制文件、配置文件、man/info帮助页面等文件合并打包在一个文件中,用户使用软件包管理器直接操作软件包,完成获取、安装、卸载、查询等操作。(2)Redhat Linux基于这个理念推出了自己的软件包管理机制—Rpm软件包(3)随着Linux操作系统规模不断扩大,系统中软件包间复...原创 2018-12-11 15:39:57 · 503 阅读 · 1 评论 -
【Linux入门学习】Shell基本命令
Shell简介随着各式Linux系统的图形化程度的不断提高,用户在桌面环境下,通过点击、拖拽等操作就可以完成大部分的工作。然而,许多Ubuntu Linux功能使用shell命令来实现,要比使用图形界面交互,完成的更快、更直接。英文单词shell可直译为“贝壳”。“贝壳”是动物作为外在保护的一种工具。可以这样认为,Linux中的shell就是Linux内核的一个外层保护工具...原创 2018-12-11 22:59:23 · 474 阅读 · 0 评论 -
【Linux入门学习】Linux的常用命令
一、初识Linux,常用命令——学习笔记Linux文件系统结构基本命令Linux文件系统结构文件系统层次结构标准FHS/ bin :bin是二进制(binary)英文缩写;/ boot :存放的都是系统启动时要用到的程序。/ dev :包含了所有Linux系统中使用的外部设备。/ etc :存放了系统管理时要用到的各种配置文件和子目录。/ lib :存放系统动态连接共享库...原创 2018-12-01 14:38:45 · 318 阅读 · 0 评论 -
【Linux入门学习】Linux软件包管理(2)
APT高级软件包管理工具工作原理Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。因此,对于用户,这些镜像服务器就是他们的软件源(reposity)。在Ubuntu系统中,使用软件源配置文件/etc/apt/sources.list 列出最合适访问的镜像站点地址。软件源配置...原创 2018-12-11 20:47:21 · 685 阅读 · 0 评论 -
【Linux入门学习】Shell中的特殊字符
通配符当需要用命令处理一组文件,例如file1.txt、file2.txt、file3.txt……,用户不必一一输入文件名,可以使用shell通配符。shell命令的通配符含义如下表管道管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。就像通过使用“|”符连成了一个管道。linux@u...原创 2018-12-11 23:15:54 · 381 阅读 · 0 评论 -
【开源工具链】GCC编译器
三、初识Linux,GCC编译器GCC的编译流程分为以下4个步骤GCC所支持不同后缀名的处理方式GCC编译流程语法GCC警告提示GCC的编译流程分为以下4个步骤预处理(pre-processing)编译(compiling)汇编(assembling)链接(linking)编译器通过程序的扩展名来分辩编写源程序所用的语言。由于不同的程序所需要执行编译的步骤是不同的,因此GCC根据不...原创 2018-12-01 19:38:12 · 584 阅读 · 0 评论 -
用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。
用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。程序实现以及注释如下:#! /bin/bash#cp.sh#shell脚本的第一行是必须按照上面那种格式写,因为它表示的含义是#当前的shell脚本使用/bin/bash处理;第二行一般写脚本的文件名。#1.echo 在屏幕上输出后面的字符串,和C的printf功能一样。echo -e “pleas...转载 2018-12-14 19:50:37 · 4950 阅读 · 0 评论 -
【Linux入门学习】初次认识Linux
1、Linux的发展Unix的起源1969年,由kenthompson在AT&T贝尔实验室实现的。使用的是汇编语言。1970年,KenThompson和DennisRitchie是使用C语言对整个系统进行了再加工和编写,是的Unix能够很容易的移植到其他硬件的计算机上。Unix发展历史什么是Linux?GNU&GPLGNU = GNU is ...原创 2018-12-09 21:00:46 · 309 阅读 · 0 评论 -
【Vim基础】Vi基本使用
二、初识Linux,Vi基本使用Vi的基本模式Vi的基本操作Vi的基本模式Vi编辑器具有三种工作模式,分别 是命令行模式(command mode)、插入模式(insert mode)和底行模式(last mode)。1、命令行模式在命令行模式(command mode)下用户可以输入命令来控制屏幕光标的移动,删除字符、单词或行,移动复制某区段,也可以进入到底行模式或者插入模式。2、...原创 2018-12-01 14:41:37 · 436 阅读 · 0 评论 -
利用指针函数实现strcat的功能
利用指针函数实现strcat的功能#include <stdio.h>#include <string.h>char *mstrcat(char *dest, const char *str){ char *pt = dest; while(*dest){ dest++; } while(*str) { *dest = *str; *str++; } *dest = '\0原创 2020-12-30 12:52:24 · 2221 阅读 · 2 评论 -
二维数组实现杨辉三角
本文展示了一个C语言程序,用于生成并打印杨辉三角。程序首先定义了一个20x20的二维数组,通过用户输入控制打印的行数(1-20行)。核心算法使用双重循环计算每个元素的值:首尾元素设为1,中间元素等于上一行相邻两数之和。最后通过格式化输出,使用空格对齐使三角形显示美观。该程序实现了经典的杨辉三角生成算法,并注重了输出排版的可视化效果。原创 2018-11-19 19:59:08 · 1421 阅读 · 0 评论 -
c语言打印乘法口诀表
该程序使用C语言嵌套循环打印九九乘法表。外层循环控制行数(1-9),内层循环控制每行的列数(1到当前行数)。通过printf函数以"ij=ij"格式输出乘法算式,并用制表符\t对齐。每行结束后用puts("")换行。最终输出标准的阶梯式九九乘法表,如"11=1","21=2 22=4"等,直至99=81结束。程序结构简洁,通过双重循环实现了乘法表的规律性输出。原创 2018-11-15 16:52:37 · 859 阅读 · 0 评论 -
利用函数实现strlen函数的功能。
利用函数实现strlen函数的功能。#include <stdio.h>#include <string.h>size_t mstrlen(const char *s){ if(s == NULL){ return 0; } int len = 0; while(*s++ != '\0'){ len++; } return len;}int main(int argc, const原创 2020-12-30 12:59:23 · 1293 阅读 · 0 评论 -
用C语言计算水分子的个数
该程序计算给定夸脱水量中的水分子数量。基于1夸脱=950g,1个水分子质量=3.0e-23g,程序通过输入夸脱数,先计算总质量,再除以单个分子质量得出分子总数。输出包括输入的夸脱数、总质量及科学计数法表示的分子数量。程序使用预处理定义常量,并通过格式化输出精确显示结果。原创 2018-11-15 21:25:55 · 3380 阅读 · 0 评论 -
输入字符串,逆序输出(两种方法)
问题描述从键盘上输入一组字符串,实现逆序输出。解题思路方法一:输出的时候从(n-1)的数据往前依次输出。方法二:假设输入n个字符,字符串默认末尾补上' \0 ',将第0个字符和第(n-1)个字符交换,依次交换中间的数据输入的数据H E L L O \0 第1次交换后的数据O E L L H \0 第...原创 2018-11-20 16:07:36 · 61390 阅读 · 3 评论 -
用C语言实现冒泡排序
这段C语言代码实现了两个功能:1) 输入固定11个数字进行排序;2) 输入不超过100个随机数字进行排序。两个程序都采用冒泡排序算法对输入数据进行升序排列。第一个程序严格接收11个数字,第二个程序可接收最多100个数字,当输入回车时结束输入。程序会先输出原始数据,再输出排序后的结果。核心排序部分通过双重循环实现相邻元素的比较和交换。原创 2018-11-18 18:50:33 · 421 阅读 · 0 评论 -
利用递归函数实现5!。
利用递归函数实现5!。(温馨提示5!= 5 * 4 * 3 * 2 * 1)#include <stdio.h>// 5!int fac(int n){ if(n == 0 || n == 1) return 1; return n * fac(n-1);}int main(int argc, const char *argv[]){ int n = 5; printf("5!= %d\n",fac(n)); return原创 2020-12-30 13:00:52 · 2580 阅读 · 0 评论 -
用C语言打印水仙花数(for ,while,goto三种方法)
水仙花数是三位数,其各位数字立方和等于该数本身。本文通过for、while和goto三种循环方式实现查找100-999范围内的水仙花数。算法核心是分离百位、十位和个位数字,计算立方和进行判断。运行结果显示153、370、371和407是水仙花数。代码示例展示了不同循环结构的实现方法,并介绍了数字分离和立方计算的具体操作。原创 2018-11-14 23:21:53 · 6977 阅读 · 0 评论 -
利用指针实现strncmp函数功能
利用指针实现strncmp函数功能#include<stdio.h>#include<string.h>int mstrncmp( char *s1, char *s2, size_t n){ while(*s1 && *s2 && (*s1 = *s2) && (n--)) { s1++; s2++; }#if 1 if((*s1 - *s2) > 0原创 2020-12-30 12:54:52 · 2331 阅读 · 2 评论 -
判断101-200之间有多少个素数,并输出所有素数。
该程序用于找出101-200之间的所有素数。采用平方根范围判断法:对每个数i,检查2到sqrt(i)是否能整除i。若不能整除则为素数,计数器加1并输出结果。每行输出5个素数,最终统计共有21个素数。算法通过leap变量标记素数状态,并利用取模运算实现高效判断。原创 2020-12-30 13:04:23 · 544 阅读 · 0 评论 -
一道经典面试题“I love china”的实现
来看一道经典的面试题,题目要求如下:给定一个字符串“I love china”,编写程序完成以单词为单位的逆序,如“china love i”,并要求不允许使用第三方变量保存数据,但可以使用辅助指针变量等。这道题主要考察字符串的遍历查找以及分类处理,首先确定算法,我们可以这样处理字符串:将字符串整体导致:“anihc evol i”然后再次遍历字符串,将每个单词倒置:“china lov...转载 2018-12-11 21:39:02 · 4544 阅读 · 3 评论 -
查找二维数组中的最大值
文章介绍了C语言中查找二维数组最大值的四种方法:1)使用双重循环遍历数组元素;2)通过指针访问数组元素;3)动态输入数组后查找;4)将查找过程封装为函数。每种方法都给出了完整代码示例,适用于不同大小的二维数组,可根据实际需求选择适合的实现方式。原创 2018-11-19 20:28:00 · 3993 阅读 · 0 评论 -
从终端输入10个数字(乱序),利用简单选择排序法对这10个数字排序,结果从小到大排列。
从终端输入10个数字(乱序),利用简单选择排序法对这10个数字排序,结果从小到大排列。#include<stdio.h>#define ARRAY_SIZE(buf) (sizeof(buf) / sizeof(buf[0]))void scanf_nu(int *buf, int n){ int i; for(i = 0; i < n; i++) scanf("%d",&buf[i]);}void swap(int *a, int原创 2020-12-30 12:58:06 · 2569 阅读 · 0 评论 -
两种字符串输出方式
C语言中字符串输出常用两种方法:printf函数支持格式化输出,需手动换行;puts函数自动换行但不支持格式化。printf灵活但代码稍复杂,puts简洁适合简单输出场景。两种方式都需要包含stdio.h头文件,根据实际需求选择使用。原创 2018-11-19 21:58:51 · 1257 阅读 · 0 评论 -
输入字符welcome,输出字符emoclew,实现方法
#include<stdio.h>int main(int argc, const char *argv[]){ char str[] = "welcome"; int i, n; n = sizeof(str) / sizeof(char); for(i = n-1; i >= 0; i--) putchar(str[i]); putchar('...原创 2018-11-20 16:01:35 · 1372 阅读 · 0 评论 -
【C语言基础】控制语句
本文总结了C语言中的控制语句分类,包括分支语句(if-else, switch)、循环语句(for, while, do-while, goto)和辅助控制语句(continue, break, return)。详细介绍了每种语句的语法形式、使用注意事项和区别,特别强调了if-else的嵌套配对规则、switch中break的重要性、循环语句的变体形式以及辅助控制语句的应用场景。此外还提供了素数判断等示例代码,帮助理解控制语句的实际应用。原创 2020-12-30 13:18:49 · 469 阅读 · 0 评论 -
【C语言基础】数据的进制互换
本文系统介绍了计算机中常用进制(二、八、十、十六进制)的表示方法及相互转换规则。重点阐述了二进制与十进制转换的除2取余法和按权展开法,二进制与八/十六进制的3位/4位分组转换法,以及十进制与八/十六进制的直接转换方法。同时详细说明了原码、反码、补码之间的转换规则:原码转反码符号位不变数值位取反;原码转补码需数值位取反末位加1;补码转原码同样操作。文中通过具体示例演示了各种转换过程,并提供了在线参考资料链接。原创 2020-12-30 13:15:50 · 491 阅读 · 0 评论 -
【C语言基础】GCC编译器
GCC编译流程包括预处理、编译、汇编和链接四个步骤,根据文件后缀名(如.c、.cpp、.s等)自动执行对应操作。常用命令选项包括-E(预处理)、-S(编译)、-c(汇编)和直接生成可执行文件。GCC提供丰富的警告提示功能,如-Wall开启常见警告,-ansi和-pedantic确保符合ANSI标准。合理使用这些选项能帮助开发者编写更规范的代码。原创 2020-12-30 13:12:58 · 573 阅读 · 1 评论 -
【C语言基础】常量
本文介绍了C语言中的几种常量类型:整型常量(十进制、八进制、十六进制)、浮点常量(一般形式和指数形式)、字符常量(ASCII码值)、字符串常量(以\0结尾)和标识常量(宏定义)。通过代码示例展示了字符常量的数值特性、字符串常量的存储方式,以及宏定义的使用方法。文章最后还演示了宏定义的嵌套使用,说明了一个宏可以在其他宏定义中被引用。这些内容涵盖了C语言中常量的基本概念和使用方式。原创 2018-12-02 16:43:32 · 644 阅读 · 0 评论 -
【C语言基础】变量
本文介绍了C语言中变量的基本概念和使用规范。变量由变量名标识,命名需遵循特定规则(字母、数字、下划线组成,不以数字开头)。变量需预先声明存储类型和数据类型,存储类型包括auto(默认)、register(寄存器)、static(静态)和extern(外部引用)。auto变量在函数内有效,register变量尝试使用寄存器加快速度,static变量生命周期延长且保留值,extern变量允许跨文件引用。文章通过代码示例展示了static修饰的局部变量与非static变量的区别,并指出static全局变量不能跨文原创 2018-12-02 19:26:30 · 2813 阅读 · 11 评论 -
【C语言基础】数据类型
一、C语言,数据类型——学习笔记数据类型基本数据类型数据类型基本数据类型bool类型使用bool类型 需要引入&amp;amp;amp;amp;amp;amp;lt;stdbool.h&amp;amp;amp;amp;amp;amp;gt;类型bool的值域类型名称值域bool非零(true),零(false)举例如下:#include &amp;amp;amp;a原创 2018-12-01 23:39:58 · 460 阅读 · 0 评论 -
【C语言基础】运算符
本文系统整理了C语言中各类运算符的用法和特性。主要包括算术运算符(+ - * / %)、关系运算符(> < ==等)、逻辑运算符(&& || !)、位运算符(~ & | ^ >> <<)以及赋值运算符(=及其复合形式)等基本类型。文章通过表格详细展示了每种运算符的描述、结合性和运算规则,并配有具体示例说明。特别介绍了特殊运算符如条件运算符(?:)和逗号运算符(,)的使用方法,通过代码片段演示了它们的实际应用场景。这些内容为C语言学习者提供了全面的运原创 2018-12-03 11:04:05 · 561 阅读 · 1 评论
分享