
C语言
blog_zhangxu
美好的年华,别让自己失望
展开
-
C语言编写简单的朗读小工具
朗读小工具大家可能和我一样,在学完c语言之后,觉得很枯燥,今天无聊之时,我就将理论结合实践一下,做一个简单的c语言朗读器。(此处结合vbs脚本,保证很简单,人人都能够学会)包含c语言基础知识c语言基本框架c语言基本输入输出c语言文件相关操作c语言system函数vbs指令CreateObject(“SAPI.Spvoice”).Speak " " 此处为简单的朗读指令...原创 2019-03-10 22:34:09 · 2042 阅读 · 1 评论 -
C语言之字符串库函数八(strncmp)
要求:模拟实现strncmp函数具体实现过程如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>int my_strncmp(const char* dest,const char* src, int n){ assert(dest);...原创 2019-02-21 20:19:46 · 275 阅读 · 0 评论 -
C语言之字符串库函数七(strstr)
要求:模拟实现strstr()函数#include<stdio.h>#include<stdlib.h>#include<assert.h>char* my_strstr(const char*str1, const char*str2){ const char *s1 = str1; const char *s2 = str2; const ...原创 2019-02-06 21:43:58 · 251 阅读 · 0 评论 -
C语言之字符串库函数六(memmove)
要求:模拟实现memmove()函数#include<stdio.h>#include<stdlib.h>#include<assert.h>void* my_memmove(void* dest, void* src, int count){ void* ret = dest; assert(dest != NULL); assert(src ...原创 2019-02-06 21:42:32 · 276 阅读 · 0 评论 -
C语言之字符串库函数五(memcpy)
要求:模拟实现memcpy()函数#include<stdio.h>#include<stdlib.h>#include<assert.h>void* my_memcpy(void* dest, void* src, int count){ void* ret = dest; assert(dest != NULL); assert(src ...原创 2019-02-06 21:40:38 · 286 阅读 · 0 评论 -
C语言之字符串库函数四(strcmp)
要求:模拟实现strcmp()函数#include<stdio.h>#include<stdlib.h>//模拟实现strcmpint my_strcmp(const char* src,const char* dest){ if (src != NULL && dest != NULL) { while (*src == *dest)...原创 2019-02-06 21:38:19 · 488 阅读 · 0 评论 -
C语言之字符串库函数三(strchr)
要求:模拟实现strchr()函数#include<stdio.h>#include<stdlib.h>//模拟实现strchrchar* my_strchr(char* src, char c){ while (*src != '\0'&& *src != c) { *src++; } return *src == c ? src ...原创 2019-02-06 21:35:24 · 223 阅读 · 0 评论 -
C语言之字符串库函数二(strcat)
要求:模拟实现strcat()函数#include<stdio.h>#include<stdlib.h>//模拟实现strcatchar* my_strcat(char* src, const char* dest){ char* ret = src; if (src != NULL && dest != NULL) { while (...原创 2019-02-06 21:33:25 · 269 阅读 · 0 评论 -
C语言之字符串库函数一(strcpy)
要求:模拟实现strcpy()函数,具体实现过程如下#include<stdio.h>#include<stdlib.h>//模拟实现strcpychar* my_strcpy(const char* src, char* dest){ char* ret = dest; if (src != NULL && dest != NULL) {...原创 2019-02-06 21:31:28 · 418 阅读 · 0 评论 -
C语言之字符串库函数九(strncpy)
要求:模拟实现strncpy具体实现过程如下:#include<stdio.h>#include<stdlib.h> #include<string.h>#include<assert.h>char* my_strncpy(char* dest, char* src, int n){ assert(dest); assert(sr...原创 2019-02-21 20:22:31 · 186 阅读 · 0 评论 -
C语言之字符串库函数十(strncat)
要求:模拟实现strncat具体实现过程如下:#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>char* my_strncat(char* dest, char* src, int n){ assert(dest); assert(src...原创 2019-02-21 20:24:18 · 165 阅读 · 0 评论 -
C语言之简单通讯录制作
手机在人们生活中越来越普遍了,每个人的手机中都有一个通讯录,那么今天我就用c语言给大家实现一个简易版的手机通讯录,要求如下: 实现一个通讯录,通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法如下:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息清空所有联系人以名字排序所有联系人保...原创 2019-02-21 20:29:35 · 2411 阅读 · 0 评论 -
C语言之简单桶排序
说到排序,生活中无处不在,比如身高,成绩等等。在我们学习语言中排序也是最热门的一个话题,那么我今天来就给大家分享一下简单的桶排序。估计大多数人听到桶排序这三个字时和我一样是懵的,因为我们最熟悉的莫过于冒泡排序,插入排序,快速排序等,桶排序到底是个神马东东。今天看到这个排序时,确实觉得它很牛,所以来和大家分享一下。例:有6个同学考试成绩为 2 5 1 9 5 8 分,满分10分,现要求对其排序按...原创 2019-03-06 23:34:49 · 1612 阅读 · 0 评论 -
C语言总结六(结构体)
一、结构体1、结构体类型的声明2、结构体初始化3、结构体成员访问4、结构体传参二、结构体的声明1、结构的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。2、结构的声明例如描述一个学生:结构成员的类型结构的成员可以是标量、数组、指针,甚至是其他结构体。结构体变量的定义和初始化有了结构体类型,那如何定义变量,其实很简单。struct ta...原创 2019-02-26 20:57:52 · 341 阅读 · 0 评论 -
C语言之找数组中重复的数
要求如下:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。思路:拿到题目一看,感觉不是特别难,重复的数字怎么找出来,既然数字相同,那么必定相减为零,这便是最简单的思路,我们遍历...原创 2019-02-25 20:57:20 · 21179 阅读 · 4 评论 -
C语言总结五(指针)
谈到指针,我就不得不说一下,在c语言中最让人头疼的一个话题那就是指针,在我看来,指针单独并不可怕,难就难在它与内存结合起来产生的一些新的知识让人头疼不已,但反过来说指针也方便了我们许多,他可以极大限度的让我们去操作内存,总而言之,指针非常重要,下面就让我来简单的说一下关于指针的一些小问题。1.指针事实上是一种数据类型,和int 基本类型一样。指针也是一种变量,占有内存空间,保存的是内存地址。2...原创 2019-02-25 16:13:16 · 216 阅读 · 0 评论 -
C语言总结四(数组)
数组一维数组的创建和初始化一维数组的使用一维数组在内存中的存储二维数组的创建和初始化二维数组的使用二维数组在内存中的存储数组作为函数参数正文开始一维数组的创建和初始化。数组的创建数组是一组相同类型元素的集合。 数组的创建方式:素组创建的实例:注:数组创建, [] 中要给一个常量才可以,不能使用变量。数组的初始化数组的初始化是指,在创建数组的同时给数组的内容一些合理...原创 2019-02-25 15:50:36 · 362 阅读 · 0 评论 -
C语言总结三(函数)
函数在c语言中的地位也是相当之重,有了函数这个东西,我们便能将一定逻辑的语句封装成一个函数,当我们下次再使用时,便不需要将其再写一遍,直接调用函数,这就大大的方便了我们程序员,为我们除去了许多没必要的麻烦。C语言中的函数IO函数字符串操作函数内存操作函数时间/日期操作函数数学函数其它函数自定义函数我们举一个简单的例子:int getMax(int x,int y){ ...原创 2019-02-25 15:43:46 · 400 阅读 · 0 评论 -
C语言总结二(分支与循环语句)
本次我们要讨论的便是分支和循环语句,在c语言中我们用;作为一条语句的结束标志,在c语言中最重要的便是语句了,通过一条条语句的结合,我们才能实现一定的逻辑。分支语句if例:if(条件1){语句}else if(条件2){语句}…else{语句}注:if else 语句较容易理解,条件满足执行语句,不满足执行else语句,一大堆的if条件语句很复杂,故而我们又引入了swi...原创 2019-02-25 15:24:44 · 963 阅读 · 0 评论 -
C语言总结一(数据类型、常量变量、转义字符)
1、初始cC语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。2、数据类型int //整型float //单精度浮点型double //双精度浮点型char //字符型long //长整形short //短整型注:每种类型的大小要...原创 2019-02-21 21:18:41 · 1288 阅读 · 0 评论 -
C语言之字符串旋转二
c语言相比于其他编程语言来说还是相对有点麻烦,尤其是在字符串处理这一块还是很麻烦的此次我想和大家讨论的是关于字符串的旋转的相关话题,具体题目如下: 判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 =AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAA...原创 2019-01-28 19:33:31 · 418 阅读 · 0 评论 -
C语言之换汽水小游戏
今天我们来讨论一个简单的换汽水小游戏,这个游戏对于我们90后这这些老年人来说怕是不会陌生,具体题目如下:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。 思路:这个问题就相对来说比较简单了,我的思路便是这样的很简单,一个for循环便解决问题了,具体实现思路如下:#include<stdio.h>#include<stdlib.h&...原创 2019-01-31 19:30:53 · 390 阅读 · 0 评论 -
C语言之扫雷(递归、文件)
这是一个C语言版本的扫雷小游戏,自我感觉还比较完善,首先我们先来说一下扫雷的游戏思路//1、打印菜单(1、 开始游戏 2 、退出游戏)//2、开始游戏后,需要打印玩家地图//3、初始地图为*表示,字符‘o’代表地雷//4、玩家开始排雷(分三种情况:1、玩家踩雷,游戏结束 2、玩家没有踩雷,提示周围有多少颗雷 3、如果周围没有地雷,则递归找出该位置相应的没有地雷的位置 4、玩家排雷完成,游...原创 2018-12-17 23:42:55 · 754 阅读 · 1 评论 -
C语言之猜数字小游戏
//猜数字小游戏(数字范围为0-100)//游戏思路/*1、游戏界面函数(功能1开始游戏,功能2退出游戏)2、开始游戏函数(大于或者小于被猜数字输出提示,用户继续输入,直至猜中为止)3、退出游戏*/#define _CRT_SECURE_NO_WARNINGS#include&amp;amp;lt;stdio.h&amp;amp;gt;#include&amp;amp;lt;stdlib.h&amp;amp;原创 2018-12-06 21:34:57 · 395 阅读 · 1 评论 -
C语言之求两个数的最大公约数与最小公倍数
#define _CRT_SECURE_NO_WARNINGS#include&amp;amp;lt;stdio.h&amp;amp;gt;#include&amp;amp;lt;stdlib.h&amp;amp;gt;int gys_gbs(int a, int b){int c,m,n;m = a;n = b;while (b != 0) /* 余数不为0,继续相除,直到余数为0 /{c = a %原创 2018-12-01 16:58:18 · 248 阅读 · 0 评论 -
C语言之小练习题
1、编写代码模拟三次密码输入的场景。最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。#define _CRT_SECURE_NO_WARNINGS#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;#include&amp;lt;string.h&amp原创 2018-12-06 22:47:10 · 153 阅读 · 0 评论 -
C语言之递归应用(2)
1、 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和, 例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 以及一个数的阶乘#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int DigitSum(int n) //递归...原创 2018-12-09 22:49:15 · 324 阅读 · 0 评论 -
C语言之递归应用(1)
1.递归和非递归分别实现求第n个斐波那契数。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int Fib(int n) //递归方式计算斐波那契数列{ if (n == 1 || n == 2) { return 1; } return Fib(n-1)+Fib...原创 2018-12-09 22:45:07 · 245 阅读 · 0 评论 -
C语言之交换两个数(三种方法去理解学习)
#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;//方式一:采用中间变量int change1(int a, int b){int temp;temp = a;a = b;b = temp;printf(“方式一交换之后:a=%d b=%d\n”,a,b);return 0;}//方式二,不要中间变量,会溢出int原创 2018-12-01 16:54:13 · 2884 阅读 · 0 评论 -
C语言之折半查找简单应用
题目:写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)//写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;int search(int arr[], int size, int key) { if (arr == ...原创 2018-12-06 22:12:11 · 373 阅读 · 1 评论 -
C语言之for循环应用之断案篇----找凶手
本次任务主要是在几个嫌疑人当中找出谁是凶手,具体要求如下:#include<stdio.h>#include<stdlib.h>int main(){ //日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个 // 嫌疑犯的一个。以下为4个嫌疑犯的供词。 // A说:不是我。 // B说:是C。 // C说:是D。 // D说:C在胡说 /...原创 2019-01-05 14:15:30 · 1432 阅读 · 2 评论 -
C语言之跳水比赛
本次的主要人就是在五个运动员当中经过逻辑推理找出他们的名次,具体要求及操作代码如下:#include<stdio.h>#include<stdlib.h>int main(){ /*5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B==2&&A!=3 B!=2&&A==3 B选手说:...原创 2019-01-05 14:22:20 · 1661 阅读 · 0 评论 -
C语言之杨辉三角小游戏
本次的主任务就是用c语言实现一个杨辉三角的图案,具体要求及演示代码如下:#include<stdio.h>#include<stdlib.h>int main(){ int i = 0; int j = 0; int arr[10][10] = { 0 }; for (i = 0; i < 10; i++) { for (j = 0; j <...原创 2019-01-05 14:27:14 · 315 阅读 · 3 评论 -
C语言之数组数字异或
接着上次我们讨论的在一组数字中找出一个只出现一次的数,这次我们加大难度,在一组数字中找出两个只出现一次出现一次的数字。题目具体内容如下:一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。 例如:int arr[] = {1,2,4,5,3,5,1,2} 这组数中出现一次的数字位3和4. 思路:在上面这组数中如何找出3和4呢?我们知道这组数...原创 2019-01-31 19:07:14 · 4346 阅读 · 0 评论 -
C语言之字符串旋转
字符串在语言中也是非常重要的存在,所以对于字符串也有非常多的知识,而今天我就要和大家分享的是关于字符串的一些问题:具体问题如下:实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB思路:其实这个问题我感觉就比较容易了,就是将一个数组中字符的位置按顺序换位即可,那么我们可以先将要换位的字符串保存起来,然后依次换位,最后进行赋值操作即可。具...原创 2019-01-25 22:24:32 · 1109 阅读 · 0 评论 -
C语言之数组小练
数组在C语言中作用是很大的,这次我想要和大家讨论的便是关于数组的一些小问题,题目如下:实现一个函数,将一个数组中的奇数放置于数组的前半部分,偶数放置于数组的后半部分。看起来也挺简单的,但当你写着写着就会发现问题的存在了。思路:最开始我的想法是遍历数组,从前往后找到一个偶数将它放到数组的末尾,与其减缓,依次类推便可,但我忽视了一个最重要的问题那便是如果被交换的那个数(位于数组后面的数)也是个偶数怎...原创 2019-01-24 21:22:21 · 274 阅读 · 0 评论 -
C语言位运算之异或
运算符在任何一门编程语言中都占有不可磨灭的地位,今天我则要说一个运算符中的位运算中的异或,因为它不比其他运算符,也容易被我们忽视,但有时候他的作用还是蛮大的,下面我则以一道习题来和大家讨论一下异或这个运算符。例:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。 请找出这个数字。思路:乍一看,我也有点懵,看似简单的一道题,我却无从下手,但仔细想想我便想到了异或,它的规则如下:相同为...原创 2019-01-24 20:24:10 · 1814 阅读 · 5 评论 -
C语言之二进制习题四
本次编程要求如下:编写一个函数 unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。 如: 在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)100110000000000000000000000...原创 2019-01-24 20:10:24 · 619 阅读 · 1 评论 -
C语言之二进制习题三
本次编程要求如下:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同。 思路:本次要求我觉得和前两次的内容都差不多,要求出两个数二进制中有多少个位数不同,那么我们就得分别对两个数的每一位进行比较,然后将不同的位数用计数器记录下来,即可得到结果.那么这里的关键还是要求出每一位,那么依然要用(“&”)操作,具体实现过程如下: #define _CRT_SEC...原创 2019-01-24 20:01:52 · 390 阅读 · 0 评论 -
C语言之二进制练习题二
本次题目的要求为获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。其实仔细想想要获取一个数的二进制奇偶序列,那么我们就得知道它每一位上的数字,即这就是这道题的突破口,只要我们取得了每一位,便能求出序列,所以我就采用了与(“&”)操作来获取每一位数,具体实现过程如下:#define _CRT_SECURE_NO_WARNINGS#include<stdio....原创 2019-01-24 19:55:21 · 931 阅读 · 0 评论