c语言

C语言第四次作业

拟墨画扇 提交于 2020-03-30 08:13:50
视频学习3.21 3.22 3.23 一:纸质笔记 二:代码 三:看视频问题 %i的含义是什么? 结果:在 printf 格式串中使用时,没有区别。在 scanf 格式串中使用时%d 只与十进制形式的整数相匹配。而%i 则可以匹配八进制、十进制、十六进制表示的整数。例如: 如果输入的数字有前缀 0(018、025),%i将会把它当作八进制数来处理,如果有前缀0x (0x54),它将以十六进制来处理。 四、PTA作业遇到的问题: 1、对于以下结构定义,++p->str中的++加在() A、指针str上 B、指针P上 C、str指的内容上 D、以上均不是 来源: https://www.cnblogs.com/jhy12/p/12596395.html

关于FSM的C语言实现与详解

好久不见. 提交于 2020-03-30 04:50:06
最近一个项目有一个需求,考量了一下决定使用状态机,实现完需求以后,不得不感慨,状态机在处理逻辑上面实现起来很有优势,也便于管理。 在这里分享一下我所修改的状态机实现。改动的地方不多,参考了《 C语言 最优状态机 规范 - 投机者 》 和原作者的实现一样,状态机的跳转通过函数指针实现,将有关的状态函数实现入口放进一个数组,为了方便维护,数组的下标采取枚举型变量对应。 只要枚举变量中的下标顺序和函数指针数组对应,状态函数中返回下一次的状态,在主体函数中读取到上一次的状态,就可以完成状态机了。 为了方便控制和外部调用,我引入了一个专门记录状态的数据域(st),存放了当前的状态和下一个状态,还引出了一个能够重置状态机状态的接口; 以下是我的实现,使用的时候最简单的方法便是修改头文件中的step_*函数,以及Steps数组与states。高级一点可以将后2者引出,通过外部传参的方式实现。 完整的项目地址请点我 。    这里是其中的一个可用的简单版本 /* # File : fsm.h # Author : toujizhe, schips # Git : https://gitee.com/schips/ # Ref : https://www.cnblogs.com/toujizhe/articles/5473489.html # Date : 2016-05-09 12:20,

Linux系统C语言开发环境学习

强颜欢笑 提交于 2020-03-30 03:13:05
项目 内容 这个作业属于哪个课程 课程链接 这个作业的要求在哪里 作业要求 学号-姓名 17043229-钟亮 作业学习目标 了解Linux系统C语言编程环境 ,学习Linux环境C语言开发步骤 1.安装C语言开发环境 gcc -v ##查看gcc版本信息 sudo yum groupinstall "Development Tools" ##安装gcc make -v ##查看make版本信息 2.简单C语言练习 (1)通过man命令查看帮助文档 man gcc ##查看gcc帮助 (2)命令行模式简单C语言编译链接等操作 通过vim编辑器编写一个简单的C语言程序,如写一个输出自己学号的程序。 我们输入完了源程序,接下来我们进行C语言程序编译的四个阶段,预编译,编译,汇编,链接 a) 预编译 b)编译 c)汇编 这里生成的不是文本文件了,是二进制文件,我们可以通过objdump命令来反汇编该文件来分析文件内容 d)链接 可执行文件是二进制文件,同样需要用objdump命令来反汇编该文件分析文件内容 objdump -d test e)运行 (3) 多文件编译 我们在exp4文件夹下面再建一个文件夹mfc(multi-fifiles compile) 在该文件夹下面创建5个文件,文件名分别如下: 每个文件的内容分别如下: 完成上面的代码输入,接下来我们进行编译,对于多文件编译

C语言-二叉树

邮差的信 提交于 2020-03-29 18:46:19
使用tree定义一个node指针地址,作为树块,node里面定义当前的val,左子树和右子树 02tree.h的定义 /* 二叉树 */ #include "02tree.h" void tree_init(tree *p_tree) { p_tree->p_node = NULL; //把方块里的指针形成一个空树(没有圆圈的树) } void tree_deinit(tree* p_tree) { if (!p_tree->p_node) { return ; } tree_deinit(&(p_tree->p_node->left)); tree_deinit(&(p_tree->p_node->right)); free(p_tree->p_node); p_tree->p_node = NULL; } tree* tree_search(tree* p_tree, int val) { if (!p_tree->p_node) { return (tree* )p_tree; } if (p_tree->p_node->val == val) { return (tree* )p_tree; } else if (p_tree->p_node->val > val) { return tree_search(&p_tree->p_node->left, val); }

期末总结2019春

走远了吗. 提交于 2020-03-29 16:42:48
一、我学到的内容 二、我的收获我的收获 作业 我的收获:在这个学期当中,收获不小,在老师和曹助教的帮助下,我认识到了学习c语言的重要性,在这期间,也有过迷茫和困惑,但是经过曹助教的细心开导下学到了编程的重要性 三、自我检讨 我觉得我做的不够好,上课有时候不听,作业有时候不能很好的完成。 四、本学期的改进与优化(结合上学期的总结,谈谈自己改进和优化了什么,起到了什么作用) 本学期学会了很多软件的使用,接触到了一个与长一学期不一样的c语言世界,本学期在c语言中遨游了很久,并且改进了背不了基础的代码,优化了作业时间,起到了改进的作用。 五、量化的自我评价(指标包括:代码行数、博客字数、总计学习小时数、成绩曲线,指标请用图形的方式给出,并请根据指标分析自己的学习情况) 学习量化指标图参考: 对比其他大佬我的时间代码行数太少了,平时没有花太多时间在学习C语言上,接下来要加以努力,大改以往风格,多加自学,多去学习专业知识。 六、我努力的方向 通过这次见习,我了解到了该行业的发展前景,我对JAVA比较感兴趣,比较想往软件开发的方向发展 来源: https://www.cnblogs.com/xgblz/p/11068947.html

C语言中字符数组库函数

拈花ヽ惹草 提交于 2020-03-29 04:04:25
以下内容摘自《C程序设计教程》(美)H.M.Deitel P.J.Deitel著,薛万鹏等译,机械工业出版社。 void *memccpy (void *dest, const void *src, int c, size_t n); 从sr*所指向的对象复制*个字符到*est所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。 void *memcpy (void *dest, const void *src, size_t n); 从sr*所指向的对象复制*个字符到*est所指向的对象中。返回指针为dest的值。 void *memchr (const void *s, int c, size_t n); 在s所指向的对象的前n个字符中搜索字符c。如果搜索到,返回指针指向字符c第一次出现的位置;否则返回NULL。 int memcmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符。返回值是s1与s2第一个不同的字符差值。 int memicmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符,忽略大小写

c语言字符串处理函数

这一生的挚爱 提交于 2020-03-29 04:03:21
很高效的字符串处理函数: void *memccpy (void *dest, const void *src, int c, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。 void *memcpy (void *dest, const void *src, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中。返回指针为dest的值。 void *memchr (const void *s, int c, size_t n); 在s所指向的对象的前n个字符中搜索字符c。如果搜索到,返回指针指向字符c第一次出现的位置;否则返回NULL。 int memcmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符。返回值是s1与s2第一个不同的字符差值。 int memicmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符,忽略大小写。返回值是s1与s2第一个不同的字符差值。 void *memmove (void *dest, const void

恶心的C语言strtok函数

喜你入骨 提交于 2020-03-29 04:00:05
从C#、JAVA到C ,让我觉得像是从公产主义社会回到了原始社会,不顺手,所以很心里憋气!!! 函数名: strtok 功 能: 查找由在第二个串中指定的分界符分隔开的单词 用 法: char * strtok( char * str1, char * str2); 程序例: #include < string .h > #include < stdio.h > int main( void ) { char input[ 16 ] = " abc,d " ; char * p; /**/ /* strtok places a NULL terminator in front of the token, if found */ p = strtok(input, " , " ); if (p) printf( " %s\n " , p); /**/ /* A second call to strtok using a NULL as the first parameter returns a pointer to the character following the token */ p = strtok(NULL, " , " ); if (p) printf( " %s\n " , p); return 0 ; } 下面是恶心的strtok函数,用作分割字符串

C语言字符串函数大全

天大地大妈咪最大 提交于 2020-03-29 03:54:47
C语言字符串函数大全 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: 1 #include <stdio.h> 2 3 #include <string.h> 4 5 6 7 int main(void) 8 9 { 10 11 char string[10]; 12 13 char *str1 = "abcdefghi"; 14 15 16 17 stpcpy(string, str1); 18 19 printf("%s\n", string); 20 21 return 0; 22 23 } 函数名: strcat 功 能: 字符串拼接函数 用 法: char *strcat(char *destin, char *source); 程序例: 1 #include <string.h> 2 3 #include <stdio.h> 4 5 6 7 int main(void) 8 9 { 10 11 char destination[25]; 12 13 char *blank = " ", *c = "C++", *Borland = "Borland"; 14 15 16 17 strcpy(destination, Borland); 18 19

c语言字符函数

送分小仙女□ 提交于 2020-03-29 03:54:04
函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio.h> #include <string.h> int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(string, str1); printf("%sn", string); return 0; } 函数名: strcat 功 能: 字符串拼接函数 用 法: char *strcat(char *destin, char *source); 程序例: #include <string.h> #include <stdio.h> int main(void) { char destination[25]; char *blank = " ", *c = "C++", *Borland = "Borland"; strcpy(destination, Borland); strcat(destination, blank); strcat(destination, c); printf("%sn", destination); return 0; } 函数名: strchr 功 能: