c语言
文章平均质量分 69
Niya-m
这个作者很懒,什么都没留下…
展开
-
记一个小游戏 ---- “井子”小游戏
代码分为三部分: game.h#ifndef __GAME_H__#define __GAME_H__#include<stdio.h>#include<stdlib.h>#include<time.h>#pragma warning(disable:4996)#define ROW 3#define COL 3 void Ini...原创 2018-04-15 21:47:59 · 171 阅读 · 0 评论 -
C语言之模拟字符和字符串操作函数
1.模拟实现strcpy #include&amp;amp;lt;stdio.h&amp;amp;gt;#include&amp;amp;lt;stdlib.h&amp;amp;gt;#include&amp;amp;lt;assert.h&amp;amp;gt;char* mystrcpy(char* dest, const char* str){ char*ret = dest;原创 2018-05-13 16:57:25 · 245 阅读 · 0 评论 -
C语言之打印杨辉三角
杨辉三角:是二项式系数在三角形中的一种几何排列,在欧洲,帕斯卡(1623—-1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。int main(){ int a[10][10] = { 0 }; int i = 0; int j = 0; for (i=0; i < 10; i++) { for (j=0; j...原创 2018-05-15 20:37:07 · 362 阅读 · 0 评论 -
C语言之复杂指针简析
指针数组和数组指针指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在 32 位系统下永远是占 4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。那么下边俩个分别叫做什么呢? int *p1[4]; int (*p2)[4]; ...原创 2018-05-22 21:49:36 · 1021 阅读 · 3 评论 -
C语言之自定义类型
结构体C语言允许用户自己建立由不同类型数据或相同类型的数据组成的组合型的数据结构,称为结构体。- 结构体创建Struct 结构体类型名 { 成员1的数据类型名成员1名称; 成员2的数据类型名成员2名称; . . 成员n的数据类型名成员n名称; }结构体变量表={成员初始化}; 例如: Struct student { Long num; Char name; ...原创 2018-05-30 20:16:21 · 2578 阅读 · 0 评论 -
动态内存开辟
动态内存开辟为什么存在动态内存分配? 因为有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。这样就只能用动态开辟了。动态内存函数malloc 和 freemalloc: void * malloc(size_t size) 这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。 若开辟成功,则返回一个指向开辟...原创 2018-06-06 21:58:04 · 403 阅读 · 0 评论 -
C语言之通讯录——文件存储的版本
将通讯录实现成文件存储的版本contact.h#ifndef __CONTACT_H__#define __CONTACT_H__#include <stdio.h>#include <string.h>#include<stdlib.h>enum OP{ EXIT, ADD, DELE, SER, M...原创 2018-06-06 22:15:43 · 232 阅读 · 0 评论 -
C语言之注释转换
简单操作:将以下注释全部转为c++注释风格 例如://1.一般情况 int num = 0; /*int i = 0;*/ //2.换行问题 /*int i = 0;*/int j = 0; /*int i = 0;*/ int j = 0; //3.匹配问题 /*int i = 0;/*xxxxx*/ //4.多行注释问题 /* int...原创 2018-06-15 22:45:09 · 169 阅读 · 0 评论 -
记一些小程序
1.在屏幕上输出以下图案: int main(){ int i, j; //打印上半部分 for (i = 0; i<7; i++) { for (j = 0; j< 6 - i; j++) printf(" "); for (j = 0; j<i * 2 + 1; j++) ...原创 2018-07-27 10:10:33 · 136 阅读 · 0 评论 -
C语言之I/O
文件流的概念概念:在C语言对文件的操作最终转化为对缓存中的数据进行操作,流实际上就是内存中的一种具有自动顺序操作的特殊数据,流如同流动的河水一样,它具有源和目标地 。 按方向来分:以缓存为中心:流入缓存的是输入,流出的是输出流 1:输入流:从文件读取的流 2:输出流:将数据输出到文件的流 按流的数据内容:根据文本文件和二进制文件来区分为文件流和二进制流 1:文件流,文本流就是...原创 2018-08-08 21:40:44 · 1228 阅读 · 0 评论 -
一些常用的预处理指令
#define:宏定义1.数值宏常量: #define PI 3.141592654 2.字符串宏常量:#define ENG_PATH_1 E:\English\listen_to_this\listen_to_this_3 3.宏定义表达式:#define SEC_A_YEAR 60*60*24*365#undef :用来撤销宏定义#define X 3#define Y...原创 2018-04-25 19:26:03 · 252 阅读 · 0 评论 -
记一个简单的扫雷游戏
游戏概述:每次输入一个坐标,必然要判断当前坐标是不是雷,如果不是就要显示当前坐标和其周围8个非雷坐标点的周围8个点的雷的数量。 分为三部分代码: game.h#ifndef _GAME_H_#define _GAME_H_#include<stdio.h>#include<stdlib.h>#include<time.h>#includ...原创 2018-04-21 20:21:40 · 218 阅读 · 0 评论 -
c语言操作符概要
算术操作符在C语言中有两个单目和五个双目运算符。符号 功能 +. 单目正 - 单目负 * 乘法 / 除法 % 取模 + 加法 - 减法下面是一些赋值语句的例子, 在赋值运算符右侧的表达式中就使用了上面的算术运算符: Area=Height*Width; num=num1+num2/nu...原创 2018-04-04 18:37:32 · 263 阅读 · 0 评论 -
一个有趣的程序---三色球问题
问题一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少种可能的颜色搭配?分析根据问题描述可设任取的8个球中红球为m个,白球为n个,则黑球为8-m-n个。已知12个球中有3个红球,3个白球,6个黑球,因此,m的取值范围为[0, 3],n的取值范围因此为[0, 3],黑球的个数小于等于6,即 8 - m - n ≤ 6。算法设计循...原创 2018-04-04 19:27:20 · 5451 阅读 · 0 评论 -
static关键字简析
在说明static关键字之前,先要说明以下几个概念:局部变量:局部变量指在代码块{}内部定义的变量,只在代码块内部有效(作用域),其缺省的存储方式是自动变量或说是动态存储的,即指令执行到变量定义处时才给变量分配存储单元,跳出代码块时释放内存单元(生命期)。全局变量:全局变量指在所有代码块{}之外定义的变量,它缺省为静态变量,编译时分配内存,程序结束时释放内存单元。同时其作用域很广,整个文件...原创 2018-04-11 16:53:03 · 256 阅读 · 0 评论 -
传值和传址
在对函数传参时,一般分为传值传参和传址传参。 传值时就是在内存中新开辟一个空间,将值赋给这个新开辟的空间,其生命周期为该函数调用结束时释放该空闲,计算结果不影响原调用数据内存空间的值。 传址时同样新开辟一个空间,但不同的是将所用数据空间的内存地址存在新开辟的空间中,即指针,函数在数据处理过程中由于是指针,即对源数据进行操作,操作后结果影响原数据。用以下例子加以说明://传值void ...原创 2018-04-11 17:42:33 · 257 阅读 · 0 评论 -
递归小练习
1.递归和非递归分别实现求第n个斐波那契数。 #include&amp;lt;stdio.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;#include&amp;lt;assert.h&amp;gt;//1.//递归实现菲波那切数列int fib(int num){ if (num&amp;lt;= 2) retur原创 2018-05-08 23:01:10 · 150 阅读 · 0 评论 -
有关数组的运算简析
可以看一下下边的代码#include<stdio.h>#include<stdlib.h>int main(){ int a[] = { 1, 2, 3, 4 }; printf("%p\n", a); printf("%p\n", &a); printf("%p\n", a + 0); printf("%p\n.原创 2018-04-20 16:58:12 · 150 阅读 · 0 评论 -
C语言之用可变参数实现函数
1.使用可变参数,实现函数,求函数参数的平均值。 #include<stdio.h>#include<stdlib.h>#include<stdarg.h>int avg(int n, ...){ va_list arg; int i = 0; int sum = 0; va_start(arg, n); ...原创 2018-05-09 16:39:44 · 304 阅读 · 0 评论 -
宏和函数的比较以及程序翻译总结(一)
宏和函数的不同就以以下两个例子进行说明:宏函数:#define MAX(a,b) ((a)>(b)?(a):(b))普通函数:MAX(a,b) {return a>b?a:b}可以看出,宏和函数有明显的不同: 1.宏做的是简单的字符串的替换,而函数是参数的传递,参数是有数据类型的。 2.宏的参数替换是直接替换的,不经任何计算,而函数调用时将形参的值传给形参。 3.宏在...原创 2018-04-25 15:44:09 · 231 阅读 · 0 评论 -
C语言之栈桢
一、内存分布一般我们把进程的地址空间分为:栈区(heap)、堆区(stack)、未初始化静态全局区、已初始化静态全局区、字符常量区、代码区。如图: 二、栈帧的建立与撤销我们知道每一次函数调用的过程都要为函数开辟栈空间,用于本次函数调用中临时变量的保存,现场保护。这块栈空间称之为函数栈桢。每一个函数都有自己的栈帧空间,并且独占自己的栈帧空间。 系统提供两个特殊的寄存器用于标识栈桢的顶...原创 2018-05-09 21:11:47 · 508 阅读 · 0 评论 -
位运算
1.编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。 #include&amp;lt;stdio.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;#include&amp;lt;math.h&amp;gt;int reverse_bit(in原创 2018-04-25 17:22:26 · 350 阅读 · 0 评论 -
【面试题】跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。假设,一级台阶,有f(1)种方法,二级有f(2)种,以此类推,n级有f(n)种方法。 可以看出,f(1)=1;f(2)=2。那么,假设n级台阶,那么第一步就有两种情况,跳一步,跟跳两步。情况一:跳一步,那么接下去的就是f(n-1);情况二:跳两步,那么接下去的就是f(n-2)。所以总数...原创 2018-08-27 20:51:26 · 525 阅读 · 0 评论