C语言学习记录(二)

一、知识要点(C语言概述)

1、C语言的发展历史和特点

  • C语言的发展历史

    • C语言最早在B语言的基础上开发出来,并于1972年在一台计算机上首次实现。
    • C语言最开始只是为描述和实现Unix操作系统而设计的。
    • C语言又称为中级计算机语言,这是因为它把高级语言的成分同汇编语言的功能联系起来,它既可以编写软件又可以编写操作系统。
  • C语言的特点
    • 可移植性强:相比于汇编语言,C语言的抽象层次比较高,离硬件比较远,具有更好的移植性。
    • 语言简洁紧凑,使用方便灵活:C语言的关键字和控制语句都很少,相比于其他编程语言,代码更加简洁。
    • 数据类型和运算符丰富多样:C语言的34种运算符和15个等级的运算优先顺序 使得C的运算类型极其丰富;C语言的的数据类型能够实现各种复杂的数据结构;C语言提供指针,可以直接访问内存。
    • C语言生成的目标代码质量好,执行效率高。

2、C语言程序结构

  • C语言程序的构成

    • #include <stdio.h>
      int main()
      {
      printf("Welcome to C program!\n");
      return 0;
      }
    • 预处理部分#include <stdio>:它提供标准输入输出函数的有关信息,也就是数据库。#include把能够提供函数信息的stdio.h包含进程序。

    • int main():main()是主函数,main是函数名,()用于定义函数参数。int表示此函数为int类型。函数体用{}括起来。

    • printf()表示将括号内的信息输出,return 0是将整数0返回主函数。

    • #include <stdio.h>
      int main()
      {
      int a,b,c;//变量声明,定义整形变量
      int add(int x,int y);//函数声明。声明本函数要调用add函数
      scanf("%d%d",&a&b);
      c=add(a,b);//调用add函数
      printf("%d",c);
      return 0;
      }
      int add(int x,int y)//定义函数值为整形,形式参数x,y为整形的add函数
      {
      int z;
      z=x+y;
      return (z);
      }
    • 每个c语言函数有且只有一个主函数,可以包含任意多个不同名的函数。被调用的函数可以是系统提供的库函数,也可以是自己做的函数。

    • 函数的首部和函数体

      • 函数首部是函数第一行,包括函数类型、函数名、参数类型,参数名。函数参数可省略。
      • 函数体是{}部分,前面一部分是声明部分,用于定义变量,后面一部分是执行部分,负责执行。
    • 每个C语言程序都是从main函数开始执行的。

  • C语言程序的书写格式

    • c语言所有语句都必须以分号”;“结束。
    • 注释可用//,也可用/* */。

3、C语言程序的运行

  • 运行代码的基本步骤:编辑、编译、连接、执行。

    • 编辑C语言源程序:把源程序代码输入计算机或修改代码的过程就是编辑,建立以.c为扩展名的源程序文件。
    • 编译C语言源程序生成目标程序:用专门的编译器将C语言代码转化为机器码文件(扩展名为.obj)。
    • 连接生成可执行文件:将编译后的文件与系统的函数库或者其他文件进行连接装配,形成可执行文件(扩展名为.exe)
    • 执行可执行程序文件

二、问题解答

1、试说明C语言的特点。——C语言既能编写各大软件,又能编写操作系统,可以说得上是一个全能语言。

2、举例说明C语言程序的基本构成和书写格式。——基本构成:由主函数和各个子函数构成,函数内部又由首部和函数体构成,函数体里又有声明部分和执行部分;书写格式:自己看着办。。。。

C语言学习记录(二)的更多相关文章

  1. R语言学习记录(二)

    4.对象改值 4.1.就地改值 比如: vec <- c(0,0,0,0,0,0,0) vec[1]<-100 #vec向量的第一个值就变为100 ####对于数据框的改值的方法,如下面的 ...

  2. Material Calendar View 学习记录(二)

    Material Calendar View 学习记录(二) github link: material-calendarview; 在学习记录一中简单翻译了该开源项目的README.md文档.接下来 ...

  3. Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客

    ==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...

  4. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  5. JavaScript学习记录二

    title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  6. 2.VUE前端框架学习记录二

    VUE前端框架学习记录二:Vue核心基础2(完结)文字信息没办法描述清楚,主要看编码实战里面,有附带有一个完整可用的Html页面,有需要的同学到脑图里面自取.脑图地址http://naotu.baid ...

  7. GO语言学习(二)Windows 平台下 LiteIDE 的安装和使用

    1. 安装 Go 语言并设置环境变量 参考GO语言学习(一) 2. MinGW 的下载和安装 Windows 下的 Go 调试还需要安装 MinGW. 2.1 下载安装工具的安装 最新版本下载安装工具 ...

  8. C语言学习记录之二

    各种语句及编程笔记记录 1.if & else #include<stdio.h> int main(){     int if (situation) {         //m ...

  9. C语言学习笔记二

    第二章 数组 一,定义: 数组是有序数据的结合,同一数据类型 整型数组     int arr[10]={0,1,2,4,5,6,7,8,9}; 字符数组     char str[6]={'h',' ...

  10. 学习iOS笔记第一天的C语言学习记录

    c语言基础学习 int num1 = 15; int num2 = 5; int temp = 0; //先把num1放到temp里 temp = num1; //先把num2放到num1里 num1 ...

随机推荐

  1. 【USACO 2021 February Contest, Platinum】Problem 1 No Time to Dry

    \(\text{Solution}\) 一个点可与另一个颜色相同点同时涂色当且仅当两点间颜色都大于等于这两点 那么我们可以预处理一个点向左向右最远能到的位置,记为 \(l_i,r_i)\) 当 \(l ...

  2. HashTable HashMap concurrentHashMap区别

    HashTable HashMap concurrentHashMap区别 HashMap.HashTable.ConcurrentHashMap都是map接口的实现类 1.(同步性)HashTabl ...

  3. 9.【go-kit教程】go-kit集成Prometheus

    在 Go kit 中集成 Prometheus 进行 API 监控可以帮助开发人员更好地了解系统的性能和行为,提高系统的可观察性和可靠性.下面是一个简单的示例,演示如何在 Go kit 中集成 Pro ...

  4. 英国学者在真实世界早期RA队列研究中发现较高比例的临床缓解患者仍存在能量多普勒超声活性

    标签: 类风湿关节炎; 目标治疗策略; 能量多普勒活性; 预测因子 英国学者在真实世界早期RA队列研究中发现较高比例的临床缓解患者仍存在能量多普勒超声活性 电邮发布日期:2016年4月6日 本研究的重 ...

  5. 都在用 AI 生成美少女,而我却。。。

    最近 AI 画画特别的火,你能从网上看到非常多好看的图片,于是我就开始了我的安装之旅,我看到的图是这样的. 这样的. 还有这样的. 然后我就开始了我的 AI 安装生成计划. 安装环境 首先我们需要安装 ...

  6. vue的两种服务器端渲染方案

    作者:京东零售 姜欣 关于服务器端渲染方案,之前只接触了基于react的Next.js,最近业务开发vue用的比较多,所以调研了一下vue的服务器端渲染方案. 首先:长文预警,下文包括了两种方案的实践 ...

  7. 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(9)-Charles如何修改请求参数和响应数据-上篇

    1.简介 宏哥之前一直用postman调接口比较多(web端),也非常容易上手和操作.但有时候想要去修改APP的页面展示,造数据又会比较麻烦,你自己造相对还好些,要是让开发造,还得低眉顺眼的去求人.通 ...

  8. Vue中实现异步加载的组件进行分割介绍

    一,传统方式 如上图所示,不管我们前端页面是否访问了About组件的内容,打包之后的代码都会将其打包到js文件中,缺点:这样是无畏的增加了请求的负担,加载了我们不需要的js代码 如果运用webpack ...

  9. sd 买送服务,自动带出销售订单行项目

    需要先配置自动带出一行行项目,然后增强代码里去修改带出来的数量,注意事务码的判断,不然影响程序效率 FV45PF0N_NATRAB_SELECTION IF SY-TCODE = 'VA03'. EL ...

  10. java.io.StreamCorruptedException: invalid stream header: 00013174

    java.io.StreamCorruptedException: invalid stream header: 00013174 at java.io.ObjectInputStream.readS ...