![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
adlics_r
这个作者很懒,什么都没留下…
展开
-
字符串,数组,堆,栈
【0、2、1、4、3、9、5、8、6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是() A.【2、1、4、3、9、5、8、6、7】B.【1、2、5、4、3、9、8、6、7】C.【2、3、1、4、7、9、5、8、6】D.【1、2、5、4、3、9、7、8、6】正确答案: D 第二,堆是一种经过排序的完全二原创 2016-07-09 20:48:31 · 642 阅读 · 0 评论 -
sprintf的用法
sprintf函数 功能 把格式化的数据写入某个字符串缓冲区。 头文件 #include<stdio.h> 原型 int sprintf( char *buffer, const char *format, [ argument] … ); 参数列表 buffer:char型指针,指向将要写入的字符串的缓冲区。 format:格式化字符串。 [argument]…:可选参数,可以原创 2016-11-12 20:29:28 · 3849 阅读 · 0 评论 -
scanf,fscanf,sscanf函数
scanf 函数作用:格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 函数原型int scanf(const char * restrict format,...);函数参数:函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。 返回值:原创 2016-11-16 19:31:51 · 370 阅读 · 0 评论 -
fgets函数使用
fgets 函数使用 函数原型char *fgets(char *buf, int bufsize, FILE *stream);参数 *buf: 字符型指针,指向用来存储所得数据的地址。 bufsize: 整型数据,指明存储数据的大小。 *stream: 文件结构体指针,将要读取的文件流。 返回值 成功,则返回第一个参数buf; 在读字符时遇到end-of-file,则eof指示器被原创 2016-11-13 20:15:03 · 541 阅读 · 0 评论 -
fgets与gets的区别
1.fgets函数 功能:用于从文件中读取一字符串 函数原型char *fgets(char *buf, int bufsize, FILE *stream);参数 *buf: 字符型指针,指向用来存储所得数据的地址。 bufsize: 整型数据,指明存储数据的大小。 *stream: 文件结构体指针,将要读取的文件流。 返回值: 操作成功,返回的是msg的值,假如碰到文件结束或错误时原创 2016-11-14 20:31:41 · 726 阅读 · 0 评论 -
printf函数,fprintf函数,sprintf函数
printf 函数作用:格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。 原型 extern int printf(const char *format,...); 用法//以下程序用于获得输入值i,j并将其输出(i,j之间以逗号隔开)#include<stdio.h>int main(){ int i, j; scanf("%d, %d", &i, &j)原创 2016-11-15 20:07:44 · 1484 阅读 · 0 评论 -
动态链表和静态链表的区别
静态链表是用数组实现的,是顺序的存储结构,在物理地址上是连续的,而且需要预先分配大小。动态链表是用申请内存函数(C是malloc,C++是new)动态申请内存的,所以在链表的长度上没有限制。动态链表因为是动态申请内存的,所以每个节点的物理地址不连续,要通过指针来顺序访问。*所有结点都是在程序中定义的,不是临时开辟的,也不能用完后释放,这种链表称为“静态链表”。*/struct Student{原创 2016-11-20 21:00:15 · 2247 阅读 · 0 评论 -
基本数据结构:树(tree)
无论是链表,栈还是队列,它们都是线性结构的,每个节点的左边最多一个节点,右边也最多一个节点,对于大量的输入数据,线性表的访问时间太慢,不宜使用。这里我要说一种非线性的数据结构,其大部分操作的运行时间平均为O(logn)。我们涉及到的这种数据结构叫做树。在计算机科学中,树是非常有用的抽象概念。我们形象的去描述一棵树,一个家族的老祖可能有两个儿子,这两个儿子一个有一个儿子,一个有三个儿子,像这样发展下去原创 2016-11-21 20:02:44 · 568 阅读 · 0 评论 -
程序题——输出蛇形代码
编写一个程序,输出类似的蛇形代码: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9#include <stdio.h>#include <malloc.h>int main(){int n;int x,y,round;//a[x][y],x是二维数组的第一个下标,y是二维数组的第二个下标原创 2016-12-16 22:11:18 · 372 阅读 · 0 评论 -
程序题——递归判断递增
用递归算法判断数组是否为一个递增数组 bool fun( int a[], int n ) { if( n == 1 || n == 0 ) return true; if( n ==2 ) return a[n-1] >= a[n-2]; return fun( a,n-1) && ( a[n-1] >= a[n-2] ); }原创 2016-12-21 22:37:07 · 618 阅读 · 0 评论 -
程序题——打印空心正方形
请以尽量高效的方法用”*”打印出一个空心正方形,num为边长#include <stdio.h>int main(){ int x,y,num; printf("please input the num:\n"); scanf("%d",&num); for(x = 0; x < num; x++) { for(y = 0 ; y < num;原创 2016-12-23 22:08:47 · 5675 阅读 · 0 评论 -
程序题——链表倒数结点
编写一个程序,实现输出链表中倒数第K个结点ListNode * FindKthToTail(LisNode *head, unsigned int k){ if(head == NULL || K == 0) //入口参数检查!!! { return NULL; } int i; ListNode *pAhead = h原创 2016-12-18 22:14:05 · 348 阅读 · 0 评论 -
程序题——字符串转化成为数字
C语言库函数里是否有将字符串转化为数字的函数,若有则用自己的方式实现它。int atoi(const char * str){ if(str == NULL) //入口参数检查!!! { return -1; } long long num = 0; //溢出问题有没有考虑原创 2016-12-17 23:13:14 · 522 阅读 · 0 评论 -
程序题——清零和设置bit位
给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。#define BIT3 (0×1<<3)static int a;void set_bit3(void){ a |= BIT3;} void clear_bit3(void){ a &= ~BIT3;}原创 2016-12-25 21:43:38 · 1775 阅读 · 0 评论 -
程序题——strstr的自我实现
包含文件:extern char *strstr(char *str1, const char *str2);语法: strstr(str1,str2)str1: 被查找目标 string expression to search. str2: 要查找对象 The string expression to find.返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如原创 2016-12-19 21:02:52 · 389 阅读 · 0 评论 -
线性表和链表的区别
线性表,和链表。线性表在内存中是一块连续的存储空间;如:一个表中的内容是:【1,2,3】则它在内存中可能是如下存储的:123通过这个结构可以看出,只要知道了第一个元素在内存中所在的位置。就可以很容易的知道其他元素的位置。因为每一个元素占的空间是一样的。所以,如果我们知道第一个元素:1在内存号:1000;而每一个元素占8个内存空间;则第二个元素:2所在的内存空间为:1000 + 8;依此类推。所以,在转载 2016-11-09 16:51:27 · 323 阅读 · 0 评论 -
关键字const的扩展
1.定义 const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。 2.限定内容 例:下面的代码编译器会报一个错误,请问,哪一个语句是错误的呢?typedef char * const pStr;char string[4] = "bbc";const char *p1 =" string"; //1式const pStr p2 =" string"; //2式p1+转载 2016-10-14 22:21:50 · 221 阅读 · 0 评论 -
函数
函数原创 2016-07-21 14:51:33 · 402 阅读 · 0 评论 -
C语言概述和数据类型
C语言概述和数据类型原创 2016-07-11 10:18:46 · 407 阅读 · 0 评论 -
关键字
关键字 1.register 2.static(5.extern) 3.const 4.typedef 6.voliate 7.inline1.Register原创 2016-07-23 23:15:57 · 302 阅读 · 0 评论 -
复合数据类型
复合数据类型原创 2016-07-25 10:18:00 · 259 阅读 · 0 评论 -
格式化的输入scanf输出printf
格式化的输出与输入格式化的输入:scanf与输出printf·对于int型Int num;Scanf(“%d”,&num);·对于char型Char ch;Getchar();//以防出现’\n’Scanf(“%c”,&ch);Putchar(ch);·对于float型Float f_num;Scanf(“%f”,&f_num);·对于doubl原创 2016-07-14 15:28:29 · 661 阅读 · 0 评论 -
编译预处理
1.宏定义1)定义常量与命令 避免幻数 定义宏时,避免以__开头,以防与内置宏定义冲突。 宏和枚举的区别 a.枚举常量是实体常量中的一种,但宏不是实体 b.枚举常量属于常量,但宏不是常量 c.枚举常量具有类型,但宏没有类型。枚举类型主要用于限制性输入,宏只是预处理替换符 d.枚举只可以表示整型,宏可以定义所有。 2.宏函数(函数式宏定义)#define <stdio.h>#defi原创 2016-07-26 14:38:16 · 227 阅读 · 0 评论 -
运算符和表达式
运算符:1.算术运算符+ - * / % ++ --定义:int i=2;1) i++;i--;是在;使用完毕之后2) ++i;--i;是在++之后使用3) (i++)+(++i)是3+3//()+()是形成运算符的4) 函数是从右边开始传参,其中,);为结束标志例子1:func(i++,i++,i++,++i,i++);//(6,5,4原创 2016-07-15 20:18:22 · 343 阅读 · 0 评论 -
7.6所学内容
嵌入式概念和编辑器gcc原创 2016-07-06 23:23:56 · 361 阅读 · 0 评论 -
GCC编译过程
1.GCC的定义GNU CC是GNU项目中ANSI C 标准的编译系统。可编译c,c++,java。gcc 是一个交叉平台编译器,他能够在当前cpu平台上为多种不同体系,结构的硬件平台开发软件2.GCC的过程源程序——预处理——编译——汇编——链接——可执行文件 1) 预处理:不做语法检查 命令行:gcc -E hello.c原创 2016-07-06 22:31:25 · 236 阅读 · 0 评论 -
7月7号所做习题
牛客网第一次作业原创 2016-07-07 17:32:23 · 1575 阅读 · 0 评论 -
调试器gdb
调试器gdb原创 2016-07-08 20:39:54 · 413 阅读 · 0 评论 -
工程管理器makefile的解释及简单模型
工程管理器makefile原创 2016-07-09 11:16:37 · 551 阅读 · 0 评论 -
指针
指针一、指针1.定义指针是变量,保存的是地址,固定4字节int num = 5;int num = 5;int *p = =#num++:对num所对应的内存空间加一0x1001 p++:p对应的内存空间的值加一0x1004 (*p)++:6*p:根据对应内存空间里保存的地址找到其对应的内存空间P==#*p==num==*(&num);i原创 2016-07-20 20:07:24 · 311 阅读 · 0 评论 -
自我实现字符串函数
字符串函数:比较:strcmp; strncmp拷贝:strcpy; strncpy长度:strlen;连接:strcat;比较 #include int strcmp(const char *s1, const char *s2); int strncmp(const char *s1, const char *s2, siz原创 2016-07-16 15:17:07 · 325 阅读 · 0 评论 -
数组及数组和指针的区别
一维数组二维数组三维数组数组和指针的区别原创 2016-07-21 10:09:23 · 269 阅读 · 0 评论 -
程序题——字符串逆序
void reverse(char *str,int len){ int i; char *str1 = str; if(len <= 0 || *str1 == NULL) { return ; } char temp; for(i = 0; i < len; i++) { temp = *(str1原创 2016-12-20 19:50:20 · 513 阅读 · 0 评论