C语言-----理论部分
   
一:软件开发概述
1.程序语言的发展:机器语言-->汇编语言-->高级语言。
2.软件开发的基本步骤与方法:分析问题,建立数学模型-->确定数据结构和算法-->编制程序-->调试程序。
3.算法的基本特征:有穷性 确定性 有效性 有零个或多个输入  有一个或多个输出。
4.编码实现:源代码 编译源代码 链接 。
5.调试程序:语法/逻辑/开发/运行时错误。
6.程序通过编译或解释的方法来执行的。

二:汇编语言概述
1.基本组成:字符集 标识符 关键字 语句 标准函数库。
2.C程序的上机执行过程一般的步骤:编辑 编译 链接 运行。

三:数据存储于输入输出
1.数据在计算机中的表现形式:用字节位中的最高位来表示正号、负号(称为符号位,
      如果符号位为0,则代表正数;如果符号位为1,则代表负数)
1.数值的分类:
  整型:   short  占两个字节;
           int    占四个字节;
           long   占四个字节;
 浮点型:  float   占四个字节;
           double  占八个字节;
           long double 占12个字节;
2.符号常量:形式————#define 标识符 常量 (标识符一般用大写字母表示)。
3.变量三要素:数据类型 变量名 初始值。
4.格式化输出函数printf:
    %d 整数; %f 小数;  %c 单个字符  %s  字符串
5.格式化输入函数scanf :
       &——取址符
6.变量名遵守的规制:
  变量名必须以字母字符(从a到z,从A到Z)开头;
  也可以是下划线开头,但是不推荐这样做;
 
在变量名中的任意地方都可使用任何字母、数字或下划线;
 
变量名长度不限;

变量名不允许出现空格或非字母字符,比如+或-;

变量名不能是C语言的关键字;

变量名对大小写敏感(字母的大小写都有含义,例如myBook并不等同于myBooK)。

四.运算符 表达式 语句

1.取模运算符 %。用于整数运算。
2.++x;--x;x++;x--;相等运算符(==);
不相等运算符(!=);逻辑与(&&);
逻辑或(||);
逻辑非(!)

3.逻辑非运算符“!”优先级最高,其次是算术运算符,
  然后是关系运算符,再次是逻辑与运算符“&&”和逻辑或运算符“||”,
  最低的是赋值运算符。
4.条件运算符:  表达式1?(表达式2):(表达式3)
5.语句的分类

五.选择结构的程序设计

1.if语句
  a:简单if语句
     if(表达式){
        语句1
}
 if-else语句

if(表达式){
     语句1     
}else {
  语句2
    }

嵌套的if语句;(三种)
 
2.switch 语句
   形式:
 switch (表达式){
     case 常量表达式1:语句1 break;
     case 常量表达式2: 语句2 break;
     ....
    default :语句n+1
      }
3.break 语句出现在switch语句与循环语句中:终止它所在的switch语句或循环语句的执行。

六.循环结构的程序设计

1.循环的基本概念
  a:当型循环:先判断 后循环
   b:直到型循环: 先循环  后判断。
2.用while语句设计循环结构程序——当型循环。
  while(表达式){
     循环体语句
  }
3.用do-while语句设计循环结构程序(循环体至少执行一次)——直到型循环。
  do{
  循环体语句
   }while(表达式);
4.用for语句设计循环结构程序——当型循环——多用于循环次数明确的问题。
  for(表达式1;表达式2;表达式3){
             循环体语句

}
表达式1:通常为循环变量赋初值;
表达式2:控制循环体;
表达式3:改变循环变量的值;
5.continue :结束本次循环并开始下一次的循环,只能出现在循环语句的循环体中。

七.数组与字符串
1.数组:按一定顺序排列,具有某种相同性质的同类型变量的集合。
2.一维数组
  形式 :数据类型 数组名[整型常量表达式];
     数组元素的下标一律从0开始。
  一维数组的引用。
  一维数组的初始化
    形式:数据类型 数组名[整型常量表达式]={初值1,初值2,...};
3.二维数组
  形式:数据类型 数组名[整型常量表达式1][整型常量表达式2];
            表达式1:相当于x轴;  表达式2:相当于y轴。
   二维数组的引用。
   二维数组的初始化
    形式:数据类型 数组名[整型常量表达式1][整型常量表达式2]={初始值数据};
4.字符数组与字符串
  " chian"(为字符串);' '(为字符)

八.复杂数据类型
  结构类型:
  结构体类型的声明:
  struct   结构名{
     数据类型1   成员名1;
   数据类型2    成员名2;
     ................
    数据类型n   成员名n;
} ;  (这里的分号是必须要的)

九.模块化程序设计方法与函数

1.函数的分类
  在C语言中的函数分为两类,一类是系统提供的标准函数,又称为库函数。
  标准函数由系统定义,在程序中可以直接调用。另一类是用户自己定义的函数。

2. 函数的一般格式:
   函数类型 函数名称 (形式参数表){
     说明语句列表
    可执行语句列表
  }
3.从函数的形式上看,函数分为两类:

无参函数:在调用无参函数时,主调函数不将数据传递给被调用函数,无参函数可以带或不带返回值。

有参函数:在调用函数时,在主调函数和被调函数之间有数据传输。
         也就是说,主调函数可以将数据传递给被调函数使用,被调函数中的数据也可以带回供主调函数使用。

4.函数的返回值由return语句来执行: return 表达式;
5.函数的调用:一般调用 嵌套调用  递归调用

C语言理论知识的更多相关文章

  1. 用VC进行COM编程所必须掌握的理论知识

    一.为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的.结构化编程 ...

  2. [转] DDD领域驱动设计(三) 之 理论知识收集汇总

    最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下: 我一直觉得不要盲目相信权威,比如不能一谈起领域驱动设计,就一定认为国外的那个Eric ...

  3. 关于mpi的理论知识以及编写程序来实现数据积分中的梯形积分法。

    几乎所有人的第一个程序是从“hello,world”程序开始学习的 #include "mpi.h" #include <stdio.h> int main(int a ...

  4. 线程概念( 线程的特点,进程与线程的关系, 线程和python理论知识,线程的创建)

    参考博客: https://www.cnblogs.com/xiao987334176/p/9041318.html 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运 ...

  5. 商业智能BI-基础理论知识总结 ZT

    因为要加入一个BI项目,所以最近在研究BI相关的知识体系,由于这个方面的知识都是比较零散,开始都很多概念,不知道从何入手,网上找的资料也不多,特别是实战案例方面更少,这里还是先把理论知识理解下吧,分享 ...

  6. python 全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python 理论知识,线程的创建)

    昨日内容回顾 队列 队列 : 先进先出.数据进程安全 队列实现方式: 管道 + 锁 生产者消费者模型 : 解决数据供需不平衡 管道 双向通信 数据进程不安全 EOFError: 管道是由操作系统进行引 ...

  7. 学习FPGA过程中的理论知识

    学习FPGA,先要有数电知识,最好有点C语言,,学好硬件描述语言,verilog或者vhdl.在有这些基础上,做一些小的模块不断积累.这里不再赘述. 下面介绍一下关于FPGA学习过程中的一些理论知识. ...

  8. Web前端理论知识记录

      Web前端理论知识记录 Elena· 5 个月前 cookies,sessionStorage和localStorage的区别? sessionStorage用于本地存储一个会话(session) ...

  9. 关于DDD领域驱动设计的理论知识收集汇总

    原文:关于DDD领域驱动设计的理论知识收集汇总 最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下: 我一直觉得不要盲目相信权威,比如不能一 ...

随机推荐

  1. Oracle SQL Trace 和 10046 事件

    http://blog.csdn.net/tianlesoftware/article/details/5857023 一. SQL_TRACE 当SQL语句出现性能问题时,我们可以用SQL_TRAC ...

  2. Android-Android7.0-java.lang.SecurityException: MODE_WORLD_READABLE no longer supported

    某个AndroidProject项目在Android5.0系统运行是OK的,在Android7.0以上版本运行,报以下错误❌ 2019-01-02 15:33:39.996 17067-17067/? ...

  3. .Net Core与跨平台时区

    由于开发者不熟悉不同操作系统管理时区的方式,当用.Net Core开发与时区相关的应用运行在不同操作系统上会出现错误.这片文章将会探索一下在不同操作系统上用.Net Core 使用时区信息出现的问题与 ...

  4. NetCore入门篇:(三)Net Core项目Nuget及Bower包管理

    一.创建项目 1.如何创建项目,参照上一篇文章 二.程序包介绍 1.Net Core的程序包分前后端两种,后端用nuget,前端用bower. 2.与Net 不同,Net Core引用nuget包时, ...

  5. NET Core应用框架之BitAdminCore框架应用篇系列

      BitAdminCore是基于NET Core2.0的后端快速开发框架,本篇主要目标是介绍如何使用框架开发应用.框架的一些特性等. BitAdminCore核心特性: 保留行业规范,减少学习成本. ...

  6. 网易云安全DDoS高防全新上线 ,游戏防护实力领先

    本文由  网易云发布.       10月24日,网易云安全(易盾)正式上线DDoS高防解决方案[点击查看].基于网易20年网络安全防护经验,网易云安全(易盾)DDoS高防可提供1T超大防护带宽,拥有 ...

  7. 【BZOJ3238】[AHOI2013]差异

    [BZOJ3238][AHOI2013]差异 题面 给定字符串\(S\),令\(T_i\)表示以它从第\(i\)个字符开始的后缀.求 \[ \sum_{1\leq i<j\leq n}len(T ...

  8. Android------------fragment数据传递

    一.activity向fragment的数值之间的传递 关键点:fragment.setArguments(bundle);---->activity发出的信息      Bundle bund ...

  9. 926. Flip String to Monotone Increasing

    A string of '0's and '1's is monotone increasing if it consists of some number of '0's (possibly 0), ...

  10. 847. Shortest Path Visiting All Nodes

    An undirected, connected graph of N nodes (labeled 0, 1, 2, ..., N-1) is given as graph. graph.lengt ...