
C语言
文章平均质量分 61
lucky52529
跳出自己的舒适区
展开
-
[c语言]——柔性数组
什么是柔性数组?解释:c99中,结构体中最后一个元素允许是未知大小的数组,这个数组就叫做柔性数组成员举个栗子typedef struct st_type{ int i; int a[0];//柔性数组成员}type_a;个别编译器需要如下定义typedef struct st_type{ int i; int a[];//柔性数组成员}type_a;柔性数组的特点...原创 2019-02-07 20:12:40 · 191 阅读 · 0 评论 -
[c语言]——sizeof & strlen计算笔试题
1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址。3. 除此之外所有的数组名都表示首元素的地址。**#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int a[]={1,2,3,4}; pri...原创 2018-11-07 17:23:42 · 629 阅读 · 0 评论 -
[c语言]——翻转序列
1.编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:2...原创 2018-11-06 20:46:27 · 1148 阅读 · 0 评论 -
[c语言]——有关指针的经典例题
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main()*{ int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int *)(&a + 1); printf( "%d,%d&原创 2018-11-07 22:35:46 · 3593 阅读 · 0 评论 -
[c语言]——反转二进制数
1.编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:2...原创 2018-11-08 20:50:46 · 1495 阅读 · 0 评论 -
[c语言]——C语言实现井字棋游戏
游戏介绍:井字棋(Tic Tac Toe)是由德国人发明的三连棋游戏,要求玩家轮流在一有九格方盘上划加字或圆圈,谁先把三个同一记号排成横线、直线、斜线,,即是胜者!此文章将教初学者如何利用简单的c语句完成井字棋游戏。框架介绍:在此次完成游戏的过程中我们将游戏的文件分成3个部分。1. game.h 部分为我们存放游戏的头文件,应该将此部分放入编译器的头文件文件夹中。2. test.c 作为第二部分...原创 2018-10-18 23:34:48 · 11835 阅读 · 1 评论 -
[c语言]——跳水比赛
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C...原创 2018-10-28 15:00:59 · 399 阅读 · 0 评论 -
[c语言]——二进制中 1 的个数
写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1程序原型:int count_one_bits(unsigned int value){// 返回 1的位数}2.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。输出一个整数的每一位。4.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?...原创 2018-10-28 15:17:34 · 319 阅读 · 0 评论 -
[c语言]——斐波那契数
1.递归和非递归分别实现求第n个斐波那契数。2.编写一个函数实现n^k,使用递归实现写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19编写一个函数reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中...原创 2018-10-31 18:56:55 · 672 阅读 · 0 评论 -
[c语言]——输出9*9口诀表
实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出99口诀表,输出12,输出1212的乘法口诀表。使用函数实现两个数的交换。实现一个函数判断year是不是润年。创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。要求:自己设计函数的参数,返回值。5.实现一个函数,判断一...原创 2018-10-31 20:20:24 · 3161 阅读 · 2 评论 -
[c语言——]折半查找
1.完成猜数字游戏。2.写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)3.编写代码模拟三次密码输入的场景。最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。4.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输...原创 2018-11-01 16:47:45 · 327 阅读 · 0 评论 -
[c语言]——水仙花数
1.在屏幕上输出以下图案:* *** ***** ******* ********* *********** ************* *********** ********* ******* ***** *** *2.求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一...原创 2018-11-01 18:08:38 · 614 阅读 · 0 评论 -
[c/c++]——函数栈帧
函数栈帧相信作为程序员的你对于写代码来说可能已经是行云流水了,就拿最基础的c语言来说,c语言的基本组成单元是函数,而通过函数之间的互相调用就构成了我们的程序。但是,写了这么久的代码,你真的知道函数间底层是怎么进行调用的么?今天就让我们透过汇编带你一探函数栈帧中的奥秘。这幅图相信大家一定很熟悉,在学习c语言的时候老师没少提到这个东西,但是今天我们主要来聊一聊图中的栈,栈是向下生长的,也就是说高地...原创 2019-04-27 18:31:55 · 1520 阅读 · 2 评论 -
[c语言]——计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
1.将数组A中的内容和数组B中的内容进行交换。(数组一样大)2. 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。3. 编写程序数一下 1到 100 的所有整数中出现多少次数字9。1.#include<stdio.h>int main(){ int i=0; int arr1[5]={1,2,3,4,5}; int arr2[5]...原创 2018-11-10 16:34:55 · 684 阅读 · 0 评论 -
[c语言]——求一个数的n的k次方的高效解法
1.当我们解一个数的n的k次方时首先就会想到最简单的方法int my_print(int n,int k)//非递归求阶乘{int sum=1;int p=n;int q=k-1;int i=0;if(k<1){return 1;}if(k>=1){for(i=0; i<=q; i++)sum=sum*p;}return sum;}还有递归写...原创 2018-11-12 20:33:13 · 5664 阅读 · 0 评论 -
[c语言]——模拟实现字符串函数
1.strcpy实现字符串的拷贝char* my_strcpy(char* dest,const char* src){ char* temp = dest; assert(src != NULL); while(*dest++ = *src++) { ; } return temp;}2.strcat实现字符串的连接char* my_strcat(c...原创 2018-11-14 15:46:02 · 255 阅读 · 0 评论 -
[c语言]——memcpy和memmove区别
memcpy函数声明:void* memcpy(void* dest, const void* src, size_t count);头文件:#include<string.h>或者#include<memory.h>参数:dest:New buffersrc:Buffer to copy fromcount:Number of char...原创 2019-02-07 19:52:34 · 468 阅读 · 0 评论 -
[c语言]——运算符优先级
&nbsp; &nbsp; 每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖!C语言运算符优先级优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右--转载 2019-02-02 21:15:43 · 765 阅读 · 0 评论 -
[c语言]——深入剖析二维数组
ps:点进来的小伙伴如果能通过下面的小测验并且熟悉原因,那么右上角xx慢走不送,如果你不清楚,那么请你留下来好好看看这篇博客所需能帮助你学会什么- -!前言实际上相信大家对于二维数组并不是很陌生,我们每天在写程序时可能都会使用到二维数组,大多数人对于二维数组的使用都非常的熟悉,但是,仅仅局限于使用它的使用远远不够,我们得真正了解他的含义,遇到一些复杂的笔试题时迎刃而解。小测试这是笔者初始c...原创 2019-03-12 16:58:49 · 942 阅读 · 3 评论 -
[c语言]——转义字符表
原创 2019-01-30 21:33:25 · 4442 阅读 · 0 评论 -
[c/c++]——数据的存储
1.数据在内存中的存储1.1 源码,反码,补码源码: 直接将二进制按照正负数的形式翻译成二进制就可以反码:将原码的符号位不变,其他位依次按位取反就可以得到补码:在反码的基础上加一ps:在内存中,数据存放的都是补码,因为计算机只有加法器1.2机器的大小端(重点)由图可知数据在(vs2008)图中是倒着存的,这就是机器的大小端问题1.2.1什么是机器的大小端大端模式存储:数据的低...原创 2019-01-30 20:59:23 · 395 阅读 · 0 评论 -
[c/c++]——动态内存管理
动态内存管理前言首先我们要明白数据的内存分配原则来看几道题这些答案是怎么来的呢,博主做了下面的总结分配方式:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。静态分配的区域的生命期是整个软件运行期,就是说从软件运行开始到软件终止退出。只有软件终止运行后,这块内存才会被系统回收[2]在栈上创建。在执行...原创 2019-01-18 17:24:20 · 375 阅读 · 0 评论 -
[c语言]——自定义类型
1.结构体类型创建2.结构体初始化3.结构体内存对齐4.位段,位段计算机大小。5.枚举+联合1.struct Stu//结构体创建{ char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20];//学号};//分号不能丢struct Node//结构体的自引用{ int data; struct Nod...原创 2019-01-16 15:46:11 · 270 阅读 · 0 评论 -
[c语言]——怎么判断机器的大小端
大小端介绍大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中图中的变量地址是倒着存的,所以可以判断是小端存储怎么判断大小端方法一:#include<stdio.h>#include<stdlib.h>int check...原创 2018-12-22 12:21:58 · 586 阅读 · 2 评论 -
[数据结构]——模拟实现堆
头文件#pragma once#include<stdio.h>#include<assert.h>#include<stdlib.h>#include<string.h>#include<time.h>typedef int HPDataType;typedef struct Heap{ HPDataType..原创 2018-12-09 21:53:40 · 208 阅读 · 0 评论 -
[c语言]——文件操作
c语言文件操作什么是文件磁盘上的文件是文件。包含程序文件和数据文件。程序文件:包括.c文件,和可执行文件(exe.文件)。数据文件:程序从文件中读取,或者输出文件,比如存放数据的txt文件。文件名文件名包含文件名+文件主干+文件后缀。文件类型文件类型有文本文件(数据的组织形式)和二进制文件(以二进制存放的文件)。文件指针缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件...原创 2018-11-18 23:29:24 · 559 阅读 · 1 评论 -
[c语言]——C语言实现通讯录
通讯录的c语言实现源代码简单通讯录的实现还是包括三个源文件,test.c(实现通讯录主逻辑),txl.c(实现用到的各个函数),txl.h(存放txl中用到的各种头文件与声明)。txl.h#ifndef __TXL_H__//**txl.h**#define __TXL_H__#include<stdio.h>#include<string.h>#inc...原创 2018-11-18 20:52:08 · 3816 阅读 · 0 评论 -
[c语言]——模拟实现qsort函数
首先我们要知道qsort是一个对目标进行排序的函数,不管是数字,还是字符都可以使用qsort来实现,来看标准库中我们是怎么样来使用这个函数的,代码如下struct Stu{ char name[20]; int age;};int cmp_name(const void* e1,const void* e2){ return strcmp(((struct Stu*)e1)->...原创 2018-11-14 22:46:07 · 453 阅读 · 0 评论 -
[Linux]——文件缓冲区
文件缓冲区提到文件缓冲区这个概念我们好像并不陌生,但是我们对于这个概念好像又是模糊的存在脑海中,之间我们在介绍c语言文件操作已经简单的提过这个概念,今天我们不妨深入理解什么是文件缓冲区。为什么需要文件缓冲区当我们在程序中写下一条printf语句时,我们希望将这条语句的内容打印到屏幕上。但是如果你将语句放在循环中,难道你执行一次循环那么操作系统就要打印一次这条数据么?答案当然不是我们对于程...原创 2019-05-25 14:39:46 · 2126 阅读 · 0 评论