![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux下C语言基础编程
goodman_liqifei
这个作者很懒,什么都没留下…
展开
-
Linux下的c基础编程——十进制转二进制(递归法)
今天我们来用递归法写一个十进制转二进制的小程序。首先大家要明白十进制转二进制的算法。第一步先对2进行取余。余数就是二进制的最后一位。第二步对2进行整除所得的数再进行对2取余第三步用递归循环往复以上过程。例如求5的二进制。5先对2取余,余1,最后一位就是1.然后5/2等于2,再对而进行取余,余0,倒数第二位就是0。然后2/2等于1,1再对2取余,余1,所以5的二进制就是101原创 2016-10-08 23:38:55 · 2476 阅读 · 0 评论 -
Linux下的C语言编程——指针实现矩阵转置
今天我刚刚学习了指针,对它掌握的并不是很了解。现在我们来写一个通过指针来实现矩阵转置的程序。原先在学习数组的时候,我曾经练习过通过数组来实现矩阵转置。矩阵转置的核心是如何交换a[i][j]和a[j][i]的值。下面我先附上我原先写的代码,大家可以看一下。#includevoid transpos(int arr[4][4]){ int i; int j; int temp;原创 2016-10-10 22:24:38 · 4804 阅读 · 0 评论 -
Linux下的C语言编程——计算子串的次数
输入一个字符串,计算字符串子串出现的次数。#include #include int count(char *str,char *str1){ int i; int j; int len; i = 0; j = 0; len = 0; while(str[i] != '\0') { if(str[i] != str1[j]) { i++; }原创 2016-11-02 22:11:30 · 311 阅读 · 0 评论 -
Linux下静态库的建立
首先我们先来说一下静态库的建立静态库的创建:创建: gcc –c 源文件.c ar rcs 静态库名 目标文件1 目标文件2 rc:静态库不存在,就创建该库文件 s:更新库文件原创 2016-09-26 20:54:02 · 233 阅读 · 0 评论 -
Linux下的C语言编程——判断大端小段字节序
今天学习了大端字节序:高字节位放在低地址 小端字节序:低字节位放在低地址例如0x12345678 低地址 高地址 大端字节序 0x12 0x34 0x56 0x78 小段字节序 0x78 0x56 0x 34 0x12现在我们通过union来写一个程序来判断自己电脑上的内存原创 2016-10-22 23:08:24 · 2286 阅读 · 0 评论 -
Linux下的C语言编程——找出字符串中最长的数字串并指出它的起始位置
今天我们来完成一个比较有意思的程序。题目:输入一个字符串,找出最长的数字子串,并指出从第几个字符开始的这个题目的思路 第一:求最长的子串maxlen; 第二:确定子串的起始位置; 第三输出子串下面我附上我的代码#include int main(){ char str原创 2016-10-22 23:39:36 · 754 阅读 · 0 评论 -
Linux下的C语言编程——合法帧
题目:输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.提示:帧头和帧尾分别是head和tail 字符串”asdheadhauboisoktail”中headhauboisoktail是合法帧#include #include void legal_string(char *str,char *str1,char *str2)原创 2016-11-03 22:48:45 · 317 阅读 · 0 评论 -
Linux下动态库的建立
昨天我们讨论了Linux下静态库的建立和使用,今天我们将讲述一下动态库的建立和使用 首先还是说一下规则 动态库的创建: gcc -shared –fPIC –o 库名.so 源文件.c原创 2016-09-27 21:09:00 · 504 阅读 · 0 评论 -
Linux下的C语言编程——字符串排序
今天我们完成一个在主函数10个等长的字符串。用另一个函数对他们排序。然后在主函数输出者10个已经排好的序的字符串下面是我的代码#include #includevoid sort(char s[10][6]){ int i,j; char *p; char temp[10]; p=temp; for (i = 0; i < 9; i++) for (j = 0原创 2016-10-12 21:57:56 · 1489 阅读 · 0 评论 -
Linux下的C语言编程——从指定位置复制
今天我在学习指针的时候,练习了一个题目现在分享给大家。题目的要求是:有一个字符串,包含n个字符。写一个函数,将此字符串从第m个字符开始的全部字符复制成为另一个字符串。其实这个题目用指针比较好实现,比如设指针为*p,则从第m个开始复制就是 b[i] = *(p+n-1+i)。下面我附上我的代码,如有不妥之处请大家指正!#include mygets(char a[]){ i原创 2016-10-13 20:09:48 · 1006 阅读 · 0 评论 -
Linux下的C语言编程
编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的整数,从而生成有n/2个元素组成的整数数列;统计该数列中不同整数各自出现的次数,并将统计结果保存到c指向的二维数组中。函数返回不同整数的个数。#include int原创 2016-11-04 21:29:33 · 244 阅读 · 0 评论 -
Linux下的C语言编程——统计1-n之间9的个数
这个程序是统计1-n之间的9的个数,下面附上我的代码#include int count_9(int n){ int i; int r; int temp; int j = 0; for(i = 1; i <= n; i++) { temp = i; while(temp != 0) { r = temp % 10; temp = temp / 1原创 2016-10-24 22:26:03 · 444 阅读 · 0 评论 -
Linux下简单的c编程——选择法排序
针对函数和数组的C语言的学习,我今天来写一个比较典型的数组和函数的结合的例子——选择法排序选择法顾名思义,先选择最大和最小的数,然后再进行排序第一步首先附上我的代码。第一段代码是实现从大到小排序,建立selectionsort.c文件#include void arrange(int a[10]){ int k; int j; int i; int temp; for(i =原创 2016-09-28 21:11:14 · 901 阅读 · 0 评论 -
Linux下的C语言编程——头插法建立单链表
建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。#include #include struct node//瀹氫箟涓€涓粨鏋勪綋{ int num; struct node *next;};typedef struct node Node;typedef struct node * Link;int ini原创 2016-11-05 22:17:32 · 583 阅读 · 0 评论 -
Linux下的c基础编程——按原顺序插入元素
我们昨天写了选择法排序,今天我们将用它进行一个小规模的扩展,今天我们写一个插入函数,其中我们先用选择法对数组进行排序,再按照原顺序进行插入一个元素。 首先我们还是来展示一下我们的代码,这个代码的长度相比于前几篇的代码都要长一些。#include void choic_arrage(int a[10])/*先通过选择法对数组元素进行排序*/{ int i; int j; int原创 2016-09-29 21:14:20 · 291 阅读 · 0 评论 -
Linux下的C语言基础编程——倒序储存输出
今天在学习C语言时,看到了一题让把字符串先倒序储存再输出的函数。倒序输出很简单,只要找到字符串的末尾再把它打印出来就好了,可是现在要求先储存,所以要把第一个元素和最后一个交换,第二个和倒数第二个元素交换等等。为了省事情我使用了指针,下面我附上我的代码。#include int Strlen(const char *str){ int len; len = 0; while(原创 2016-10-15 22:53:23 · 1028 阅读 · 0 评论 -
Linux下的C语言基础编程——统计字符
输入一行文字,找出其中大写字母、小写字母、数字、空格、数字及其他字符各有多少。这是谭浩强老师主编的书上的一道题,今天把代码给大家附上#include int main(){ int upper = 0; int lower = 0; int digit = 0; int space = 0; int other = 0; int i=0; char *p; char翻译 2016-10-14 23:16:34 · 338 阅读 · 0 评论 -
Linux下的c基础编程——杨辉三角形
今天由于时间紧迫我们就介绍一个简单的小程序——杨辉三角形。其实杨辉三角形在C语言基础中算是一个经典的例子。我刚刚才接触C语言,所以我的水平很有限。我感觉杨辉三角形的主要代码不是a[i][j] = a[i-1][j-1] + a[i-1][j],而是怎么把两边的1打印出来所以for(i = 0; i { a[i][i] = 1; a[i][0] = 1;}原创 2016-09-30 22:20:59 · 2149 阅读 · 0 评论 -
Linux下的C语言基础编程——“分数求和”
今天我们来完成一道数学题计算前20项的和?其实我们可以写一个不止完成20项,还可以完成更多项的函数、这个函数核心是求第n个加数的表达式,这个表达式不难看出f(n) = 1/f(n-1) + 1;接下来就是很典型的递归函数了。然后把f(1)到f(n)相加就可以了,下面放上我的第一遍代码,比较粗糙,以后再仔细修改。如果打家有好的建议请提出来,O(∩_∩)O谢谢!下面是我的代原创 2016-10-16 23:59:55 · 2273 阅读 · 0 评论 -
Linux下的C语言编程——编写函数void change(char *a,char *b,char*c)
编写函数void change(char *a,char *b,char*c)。 函数功能是首先把b指向的字符串逆向存放,然后将a指向的字符串和b指向的字符串按排列顺序交叉合并到c指向的数组中,两个字符串中过长的剩余字符接在c指向数组的尾部。例如,当a指向的字符串为"abcdefg",b指向的字符串为"1324"时,c指向的数组中字符串应为"a4b2c3d1efg"。原创 2016-10-26 22:29:13 · 3186 阅读 · 0 评论 -
Linux下的C语言简单编程——求质数
今天我们来通过函数来求质数。质数在数学中的定义是除了本身没有其他约数。下面附上我的代码,此函数中用到了sqrt函数,其实我不会C语言质数的求解方法。我是百度的算法,然后自己写的代码,敬请见谅!#include#includeint prime(int a){ int i; int flag = 1; for(i = 2; i <= a/2&&flag ==1; i++原创 2016-10-01 22:33:44 · 1119 阅读 · 0 评论 -
Linux下的C语言编程——队列
队列基本功能的实现#include #include #define MAX 10struct queue_data{ int queue[MAX]; int top; int buttom;};typedef struct queue_data Queue;typedef struct queue_data *Data;void creat_queue(Data原创 2016-11-07 22:13:08 · 396 阅读 · 0 评论 -
Linux下的c基础编程——魔方阵
魔方阵就是这一的一个矩阵 8 1 6 3 5 7 4 9 2就是对角线和,一行的和,一列的和怎么相加都相等。用数组实现,我想了很久都没有想出来,所以下面的代码是我抄袭的,只是给我自己一个借鉴,如果大家有兴趣也可以翻译 2016-10-02 21:05:01 · 354 阅读 · 0 评论 -
Linux洗C语言基础编程——折半查找法
今天我们写一个选择法排序与折半查找法相结合的程序。主要实现先排序在查找。前面我们已经详细的讲过了选择排序法,现在我们来说下折半查找法折半查找法的主要思想是 number与mid的比较 mid = (butt+top)/2如果number大于mid,则top = mid+1;如果number小于mid,则b原创 2016-10-03 23:16:23 · 479 阅读 · 0 评论 -
Linux下的c基础编程——字符串连接
今天我们讲字符串的连接,字符串的连接重点有两个。第一是先确定两个字符串的长度,第二个是要给它加一个‘\0’的字符串标志下面我将附上我的程序,程序里面有一个strlen的源码,这是为了计算两个字符串的长度。#include int StrLen(const char *s){ int i = 0; while(*s++) { i++; } return i;}in原创 2016-10-04 22:37:21 · 697 阅读 · 0 评论 -
Linux下的C语言编程——用链表实现栈操作
用链表实现栈操作#include #include struct stack{ int num; struct stack *next;};typedef struct stack STACK;typedef struct stack *Link;void creat_stack(Link *head){ *head = (Link)malloc(sizeof(ST原创 2016-11-08 22:29:00 · 630 阅读 · 0 评论 -
Linux下的C语言编程——查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数
查找介于n1与n2(0)之间所有满足下列条件的整数:(1)该数的十进制表示中有且仅有两个相同的数字位;(2)该数是素数。今天我们要写的程序如题下面附上我的代码#include int prime(int n){ int temp; int i; temp = sqrt(n); for(i = 2; i < temp; i++) { if原创 2016-10-26 22:26:41 · 1075 阅读 · 0 评论 -
Linux下的C语言编程——计算π的值
用π/4=1-1/3+1/5-1/7……公式求π的近似值,直到最后一项的绝对值小于10^-7这个题目不怕大家笑话我写了很久,真的是气。因为我没有给sum赋初值。然后老是打印错误。下面我附上我的代码#include int main(){ int sign; double f; double m; double sum; sign = 1; m =原创 2016-10-18 21:03:18 · 2157 阅读 · 0 评论 -
Linux下的C语言基础编程——求100-200之间的质数
求100~200间的所有素数,每行打印5个素数每次我都想把博客写的生动一些,但是我表达不好。。。。。。。。。。所以我还是切入正题吧。质数的定义是除了本身和 1没有其他约数。所以其中我们用到了sqrt这个函数给被求数开方,然后循环2到sqrt(i)之间不能被二取余的并且i>sqrt(i)的就是质数。下面附上我的代码#include#includeint main ()原创 2016-10-18 21:17:17 · 1028 阅读 · 0 评论 -
Linux下c基础编程——strlen、strcat、strcpy、strcmp源码
今天我通过查找资料找到了strlen、strcat、strcpy、strcmp源码的源码,可能对大家有帮助,所以我就贴出来。这样对一些需要的人可能方便些。code:strcmp源码 windowsint __cdecl strcmp (const char *src, const char *dst) { int ret = 0 ; whil原创 2016-10-05 20:51:11 · 1074 阅读 · 0 评论 -
Linux下的C语言编程——链表实现队列操作
用链表实现队列的操作#include #include struct queue_data{ int num; struct queue_data *next;};typedef struct queue_data Queue;typedef struct queue_data *Link;void creat_queue(Link *head){ *head =原创 2016-11-09 22:03:32 · 692 阅读 · 0 评论 -
Linux下的c基础编程——空格输出
所谓的空格输出就是你输入一个字符串,它每输出一个字符中间都会有一个空格。也就是在原先的字符串里插入了空格。比如五个字符中间插入4个空格下面我将附上我的代码,纯属个人编写,其中用到了昨天我们收集的strlen函数。#include int Strlen(const char *s){ int len = 0; while(*s++) { ++len; } return le原创 2016-10-06 22:46:35 · 1657 阅读 · 0 评论 -
Linux下的C语言编程——合并两个字符集合
合并两个字符集合为一个新集合,每个字符串在新集合中仅出现一次,函数返回新集合中字符串。 如: s1集合{“while”,”for”,”switch”,”if”,”continue”} s2集合{“for”,”case”,”do”,”else”,”char”,”switch”} 运行结果: while for swit原创 2016-10-28 23:28:33 · 1663 阅读 · 0 评论 -
Linux下的C语言编程——冒泡法对字符串排序
字符串数组的冒泡排序,从小到大#include #define N 20int main(){ char str[N][N];//瀹氫箟涓€涓?0琛?0鍒楃殑鏁扮粍 char (*p)[N];//瀹氫箟涓€涓寚閽堟暟缁? char str1[N]; int num; int i; int j; p = str;//浣挎寚閽堟寚鍚戞暟缁? printf("原创 2016-10-28 23:31:07 · 763 阅读 · 0 评论 -
Linux下的C语言编程——位运算
题目:输入一个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果提示:0 ^ 0 = 0; 1 ^ 1 = 0; 0 ^ 1 = 1; 1 ^ 0 = 1;#include int creat_bit(int n){ int b; int num[32]; int i; b = 0原创 2016-10-29 22:51:44 · 402 阅读 · 0 评论 -
Linux下的c基础编程——冒泡排序法
今天我们来写一下冒泡排序法,其实我也是才学的,现学现卖,大家莫要笑话!冒泡法主要是你要熟悉它的原理。第一点:元素一先和元素二比较判断谁大,哪一个大就放在元素二上,挨个比较找出最大的元素放在在后面。第二点:循环次数,例如10个元素,第一个元素要比较9次,第二个元素要比较8次,第三元素要比较7次,以此类推下面我附上我的代码#include int main(){ i原创 2016-10-08 00:14:09 · 2162 阅读 · 0 评论 -
Linux下的C语言编程——10进制转16进制和二进制
如题,今天我们来写十进制转16进制和 2进制。二进制前面我们写过。16进制的算法和二进制差不多。都是先对进制本身进行取余作为第一位,然后对进制做除法得到的商再对进制取余作为第二位。。循环往复下面我附上我的代码#include void to_binary(unsigned long num){ int r; r = num % 2; if(num >= 2) { to原创 2016-10-19 21:59:24 · 3033 阅读 · 0 评论 -
Linux下的C语言编程——栈操作
栈的基本#include #include #define MAX 10enum return_result{FULL_OK,FULL_NO,EMPTY_OK,EMPTY_NO,PUSH_OK};struct queue_data{ int queue[MAX]; int top; int buttom;};typedef struct queue_data Queue原创 2016-11-10 22:00:17 · 251 阅读 · 0 评论 -
Linux下的C语言——位运算
1. 题目:输入一个整数a,再输入两个整数p(p将该整数a的p位设置为v,输出修改后的该整数的二进制表示.#include void replacebit(int n,int p,int v,int num[]){ int i; int mask; int temp; int len = 0; temp = n & (1 << (p - 1)); if(v ==原创 2016-10-30 22:10:07 · 248 阅读 · 0 评论 -
Linux下的C语言编程——链表实现通讯录
用链表实现简单的通讯录#include #include #include #define N 15struct contact// 瀹氫箟缁撴瀯浣?{ char name[N];//濮撳悕 char sex[N];// 鎬у埆 char number[N];//鍙风爜 char QQ[N];// qq char addr[2*N];// 鍦板潃 struct contac原创 2016-11-11 20:26:52 · 585 阅读 · 0 评论