一、数据类型

基本数据类型
1.整数

  • 整形 -- int -- 4
  • 短整型 -- short int -- 2
  • 长整型 -- long int --8

2.浮点数(实数)

  • 单精度浮点数 -- float -- 4
  • 双精度浮点数 -- double -- 8

3.字符

  • char

复合类型数据

  • 结构体
  • 枚举
  • 共用体

    2、什么是变量

# include <stdio.h>

int main(void)
{
    int i;
    i = 3;  //3最终是存放在内存中,程序终止之后3所占的空间被释放掉
    printf("i = %d\n", i);

    return 0;
}

变量的本质是内存中一段存储空间

2-1 变量为什么必须初始化(即赋值)

1.软件在运行前需要向操作系统申请存储空间,在内存空间足够空闲时,操作系统将分配一段内存空间并将该外存中软件拷贝一份存入该内存空间中,并启动该软件运行。

2.在软件运行期间,该软件所占内存空间不再分配给其他软件。

3.当该软件运行完毕后,操作系统将回收该内存空间(注意:操作系统并不清空该内存空间遗留下来的数据),以便再次分配给其他软件使用。综上所述,一个软件所分配到的空间中极可能存在着以前其他软件使用过后的残留数据,这些数据被称之为垃圾数据,所以通常情况下我们为一个变量,为一个数组,分配好存储空间之前都要对该内存空间初始化。

3 对应进制数图解

3-1 字节

字节:
> 存储数据的单位,并且是硬件所能访问的最小单位。内存中存储的最小单位是位bit(0或1),但是硬件控制的时候不能精确到位,只能精确到字节(8位),是通过地址总线来控制的,而精确到位是通过软件来控制的,叫做位运算符来精确到位的。

1字节 = 8 位 1K = 1024 字节
1M = 1024 K 1G =1024 M 1T = 1024 G

3-2 什么是ASCII

4-1 printf的用法

# include <stdio.h>

int main(void)
{
    //printf("哈哈!\n");  //\n表示换行

//  int i = 10;
//  printf("%o\n", i);  //d是十进制

    int j = 3;
    int k = 5;
    //printf("%d %d\n", j, k);  //OK
    //printf("%d\n", j, k);  //error 输出控制符和输出参数的个数不匹配
    printf("i = %d, j = %d\n", j, k);

    return 0;
}

4-2 输出控制符包含如下:

4-3 Scanf 的用法

1.用法一

代码实现

# include <stdio.h>

int main(void)
{
    int i;
    char ch;
    scanf("%d", &i);//&i 表示i的地址 &是一个取地址符
    printf("i = %d\n", i);
    scanf("%c", &ch);
    printf("ch = %c\n", ch);

    return 0;
}

一次性给多个变量赋值

# include <stdio.h>
int main(void)
{
    int i, j, k;

    printf("请输入三个值,中间以逗号分隔: ");
    scanf("%d,%d,%d", &i, &j, &k);
    printf("i = %d, j = %d, k = %d\n", i, j, k);

    return 0;
}

4 - 4 注意事项

# include <stdio.h>

int main(void)
{
    int i;
    printf("请输入一个值:")
    //scanf("%d\n", &i);  //非常不好的格式, 不要加 \n
    scanf("%d", &i);
    printf("i = %d\n", i);

    return 0;
}

二、流程控制

2-1 互换两个数字

# include <stdio.h>

int main(void)
{
    int i = 3;
    int j = 5;
    int t;  //定义临时变量

//6和7行代码无法完成i和j的互换
//  i = j;  // 6行       i = 5; j = 5;
//  j = i;  // 7行       i = 5; j = 5;

    //正确的互换i和j的方法
    t = i;
    i = j;
    j = t;

    printf("i = %d, j = %d\n", i, j);

    return 0;
}

2-3 对任意的三个数字进行排序

# include <stdio.h>

int main(void)
{
    int a, b, c;  //等价于:  int a; int b; int c;
    int t;

    printf("请输入三个整数(中间以空格分隔): ");
    scanf("%d %d %d", &a, &b, &c);

    //编写代码完成a是最大值  b是中间值  c是最小值

    if (a < b)
    {
        t = a;
        a = b;
        b = t;
    }

    if (a < c)
    {
        t = a;
        a = c;
        c = t;
    }

    if (b < c)
    {
        t = b;
        b = c;
        c = t;
    }

    printf("%d %d %d\n", a, b, c);

    return 0;
}

1、C编程预备计算机知识的更多相关文章

  1. 编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器

    计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...

  2. 一、Android NDK编程预备之Java jni简介

    转自:  http://www.eoeandroid.com/thread-264384-1-1.html 游戏开发 视频教程 博客 淘帖     论坛›eoe·Android应用开发区›Androi ...

  3. python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  4. java第九节 网络编程的基础知识

    /** * * 网络编程的基础知识 * 网络协议与TCP/IP * IP地址和Port(端口号) * 本地回路的IP地址:127.0.0.1 * 端口号的范围为0-65535之间,0-1023之间的端 ...

  5. Java并发编程学习前期知识下篇

    Java并发编程学习前期知识下篇 通过上一篇<Java并发编程学习前期知识上篇>我们知道了在Java并发中的可见性是什么?volatile的定义以及JMM的定义.我们先来看看几个大厂真实的 ...

  6. React实战教程之从零开始手把手教你使用 React 最新特性Hooks API 打造一款计算机知识测验App

    项目演示地址 项目演示地址 项目代码结构 前言 React 框架的优雅不言而喻,组件化的编程思想使得React框架开发的项目代码简洁,易懂,但早期 React 类组件的写法略显繁琐.React Hoo ...

  7. 三、Android NDK编程预备之Java jni入门创建C/C++共享库

    转自: http://www.eoeandroid.com/thread-264971-1-1.html 应网友回复,答应在两天前要出一篇创建C/C++共享库的,但由于清明节假期,跟朋友出去游玩,丢手 ...

  8. 二、Android NDK编程预备之Java jni入门Hello World

    转自:  http://www.eoeandroid.com/forum.php?mod=viewthread&tid=264543&fromuid=588695 昨天已经简要介绍了J ...

  9. 关于python,完善我计算机知识的一步。

    因为身为理科男,所以特别喜欢涉及其他领域的知识.而对我来说,计算机是很有诱惑力的--尤其是程序语言设计,懂得一门“外语”是多么的重要.大一时候接触过包括有计算机的基本知识,c语言,这个新的学期也开始接 ...

随机推荐

  1. C++ 多项目dll调用-隐式

    将DAA人脸检测做成动态库以便其他程序调用,采用隐式调用完成. 给出部分关于dll制作的关键代码: 1.DLL 多项目DLL编写注意将其他相关项目设置成静态库,以及各库涉及的版本一致性. DLL.h ...

  2. 自定义HTML中select控件

    HTML中默认的select控件比较难看,大家可以参考,本文提供一种解决思路,当然也可以用CSS实现. function selectInit(tid,isIn){ if(!$("#&quo ...

  3. python多线程批量下载远程图片

    python多线程使用场景:多线程采集, 以及性能测试等 . 数据库驱动类-简单封装下 mysqlDriver.py #!/usr/bin/python3 #-*- coding: utf-8 -*- ...

  4. 日志系统:一条sql更新语句是如何执行的?--Mysql45讲笔记记录 打卡day2

    下面是一个表的创建语句,这个表有一个主键id和一个整型字段c: create table t(id int primary key,c int); 如果要将 id = 2 这一行的值加 1,sql语句 ...

  5. Python中lambda表达式的应用

    lambda表达式 Python中定义了一个匿名函数叫做lambda表达式,个人理解实现的作用就是代替一些简单的函数,使得代码看上去更简洁并且可读性高.举个例子,我们有一个元组列表[(‘a’,1),( ...

  6. P1211 街道赛跑

    又是一下午的杠题,累啊~~~ 这道题第一问很简单,只需去掉一个点,判断能不能到达终点就行了: 第二问其实仔细想想也不难,就是判断去掉一个点后是否形成两个图:首先要知道是建立在第一问的基础上的:在加边的 ...

  7. LuoguP2657 [SCOI2009]windy数 【数位dp】By cellur925

    题目传送门 题目大意:在A和B之间,包括A和B,总共有多少个不含前导零且相邻两个数字之差至少为2的正整数? 显然是数位dp啦=w=. 显然与上一位有关,我们$dfs$的时候就要记录$pre$.因为这是 ...

  8. 跟我一起玩Win32开发(17):启动和结束进程

    这里我再次说明一下,我不知道为什么,现在的人那么喜欢走极端,估计是价值观都“升级”了的缘故吧. 我撰写这一系列Win32相关的文章,并不是叫大家一定要用Win32去开发项目,仅仅是给大家了解一下,Wi ...

  9. Lucky Array Codeforces - 121E && Bear and Bad Powers of 42 Codeforces - 679E

    http://codeforces.com/contest/121/problem/E 话说这题貌似暴力可A啊... 正解是想出来了,结果重构代码,调了不知道多久才A 错误记录: 1.线段树搞混num ...

  10. iOS常用第三方库 -转

    转自 http://www.cnblogs.com/jukaiit/p/4956419.html 1.AFNetworking 轻量级的通讯类库,使用非常简单. 下载地址:https://github ...