C语言问答九问
C语言问题观:
一、环境搭建问题:linux,(可以是w10下linux子系统);vim(notepad++),gcc编译器,gdb调试器,make自动编译工具,ddd分析工具和valgrind分析工具
二、输入输出问题:输出函数和输入函数
三、条件选择问题:if……else或switch……case或if语句块
四、重复操作问题:for语句块、do……while语句块、while语句块
五、批量数据问题:数组或字符串
六、操作封装问题:函数的实现
七、内存管理问题:内存分配与释放
八、文件操作问题:文件的读取与写入
九、结构数据问题:
计算机硬件:处理器(运算器和控制器)、存储器、I/O系统和总线系统
C语言要素:标识符、变量、复合类型、自定义类型、运算符、格式(注释、空白、分块)、语句、函数、库
复合类型:数组、结构、联合、枚举、字符串、指针
C语言分析:自顶向下,功能不停细分、流程图、伪码、实现
C语言设计:自下而上,语句、函数、接口、库等
计算机技术是个人成长路上很重要的一门科学,关乎大学能否顺利毕业,影响工作的范围,甚至在很多职业中也是以计算机为工作基础。主要有以下三种思维方式:
1、以观察和总结自然规律为特征的实证思维(以物理学科为代表)。
2、以推理和演绎为特征的推理思维(以数学学科为代表)。
3、以设计和构造为特征的计算思维(以计算机学科为代表)。
其中计算思维包括三个步骤:理论、设计和实现三个方面。
C语言学习的五各层次:
一、C语言入门
1、硬件系统:内存和寄存器还有I/O系统、指针是硬件和软件的桥梁
2、开发环境:OS(Linux)、编辑器(VIM)、编译器(GCC)、调试器(GDB)、自动编译工具(make)、调试工具ddd和valgrind
3、开发步骤:编辑源码、编译、链接和执行
4、代码规范:标识符、注释、空白字符、空行、空格、tab键、逻辑块
5、关键字:C语言有32各关键字
6、内存管理:内存分配和内存释放
7、文档和库:内置库和man文档
二、C语言基础
0、数据及类型:数值和数据、基本类型
1、变量:类型、数据和地址;自定义类型(typedef)
2、运算符:基本的和自定义、位运算
3、语言单位:语句,语句块、逻辑块
4、结构控制:分支控制和循环控制、条件控制
5、数组和字符串、指针
6、预处理和宏定义
7、流程图和函数
8、复合类型:结构体、联合体和枚举类型、其他类型(变量、数组、字符串、指针、函数、结构体、联合体、枚举类型、自定义类型)和指针的结合
9、结构体中的特殊:内存对齐和位操作
10、指针的特殊:函数指针、数组指针、结构体与指针、常量与指针、指针与硬件等
11、文件操作
三、算法:
1、查找:
2、排序
3、递归
四、C语言高级
1、接口:头文件与实现文件的定义及实现
2、多线程:
3、网络:
4、自动编译make
5、程序调试和分析gdb和valgrind
6、程序测试
五、C语言专家:
1、神样的编辑器vim
2、防御性编程
3、打包库文件
4、重构代码
5、代码同步git使用
六、C数据结构:
1、线性表
2、栈和队列
3、数和二叉树
4、图
C语言问答九问的更多相关文章
- 《12个有趣的C语言问答》(4)
C语言面试问答——<12个有趣的C语言问答>评析(4) 前文链接:http://www.cnblogs.com/pmer/p/3324063.html 8,Making changes i ...
- 12个有趣的C语言问答(详解)
本文参照博文<12个有趣的C语言问答>,在原文的基础上增加来对应的知识点的详细介绍. 1 gets()方法 Q:下面的代码有一个被隐藏的问题,你能找到它吗? #include <st ...
- Java语言基础(九)
Java语言基础(九) 一.自增运算(++) 自减运算(--) i++ 就是将i+1再赋给 i i-- 是将i-1再赋给 i 对变量i,j来说,i++ 或++i 这里没什么区别,都是将i的值加1后,再 ...
- Swift语言指南(九)--基本运算符
原文:Swift语言指南(九)--基本运算符 运算符(operator)是用来检查,改变或合并值的一种特殊符号或短语.例如,加号运算符让两个数字相加(如:let i = 1 + 2),还有些更复杂的运 ...
- 《12个有趣的C语言问答》评析2
<12个有趣的C语言问答>评析(2) 前文链接:http://www.cnblogs.com/pmer/p/3313913.html (没存盘,遭遇过热保护.至少4个问答的评论白写了.默哀 ...
- C语言实现九大排序算法
C语言实现九大排序算法 直接插入排序 折半插入排序 希尔排序 冒泡排序 快速排序 直接选择排序 堆排序 归并排序 基数排序 C语言实现九大排序算法 直接插入排序 将数组分为两个部分,一个是有序部分,一 ...
- [No000060]冷读热读:读书九问
兵无常势,水无常形,读书亦无法.彼之砒霜,我之佳肴.然读书无法却有道.你我都是使用同一颗大脑在读书.这颗大脑受制于那千千万万年以来,星辰起落,狩猎采集,演化大道. Q1:读物如何分级? 坏书.可用的书 ...
- 12个滑稽的C语言面试问答——《12个有趣的C语言问答》评析(5)
前文链接:http://www.cnblogs.com/pmer/archive/2013/09/17/3327262.html A,局部变量的返回地址 Q:下面的代码有问题吗?如果有,如何修改? # ...
- 羽夏闲谈—— C 语言入门之问
前言 最近加入了一个QQ频道,有很多想学C的纯小白.为什么这么说呢?因为他们会问一些环境用啥?为啥我配置不行?看了教程配置环境我也不会,咋配置?为啥这里代码这里有错误?啥语言好不好?诸如此类的问题 ...
随机推荐
- CentOS下 .Net Core 1.0 升级到 3.0 遇到的一个小问题
之前.net core 1.0的安装方式,不是用yum方式安装的,所以,在用yum安装3.0之后,用dotnet --version还是1.0的版本,想起了之前 做过链接映射dotnet目录,删除之前 ...
- java 框架-缓冲-Redis 1概述
https://www.jianshu.com/p/56999f2b8e3b Redis 概述 在我们日常的Java Web开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在 ...
- .NET中AOP实现
静态织入,如:PostSharp(收费)动态织入1.使用Castle DynamicProxy不太方便的是需要在AOP的方法上加上virual关键字,配置较繁琐https://blog.csdn.ne ...
- XCode下在不同位置声明变量的用法(转)
XCode下在不同位置声明变量的用法 方式一:直接在.h文件@interface中的大括号中声明. @interface Test : NSObject { NSString *str; // 私有变 ...
- Navicat MySql 连不上 本地开发环境 MySQL8.0
原因: 新版mysql数据库的加密方式改变,进而导致Navicat连接输入的密码不能与安装时输入的密码匹配,那如何解决这个问题呢?很简单,只需要一句代码的事儿~ 1.打开MySQL 8.0 Com ...
- springboot系列(四)springboot 配置
在springboot出现之前,spring项目会存在多个配置文件,如web.xml,配置spring的多个spring-xxx.xml,xxx代表配置spring的某一功能,如aplication- ...
- 查看SVN当前登录用户
一般用户登录svn并记住用户密码后,下次再登录的时候将不需要输入用户密码,导致电脑使用着登录的时候,不知道到底登录的是个用户,只能将数据清除,现在给出查看登录用户的方法. 记录svn登录用户的文件,存 ...
- Windows10系统里安装SCons
1. 安装python2.7 执行python2.x的安装包程序python-2.7.12.amd64.msi进行安装即可 2. 安装scons 下载scons-2.5.0.zip压缩包并解压缩 CM ...
- 在linux中安装VM tools
step 1:虚拟机选择安装 Vmware tools ,在DVD中将.tar.gz的文件包拖到桌面中: step 2:打开终端,切换到桌面,cd /home/whoami/桌面 cd /home/u ...
- Python+request+ smtplib 测试结果html报告邮件发送(下)《六》
目录结构如下: 1.cfg.ini的配置信息写法如下: [email] ;--------------------------使用腾讯企业邮箱作为发件人的操作如下------------------- ...