1、C编程预备计算机知识
一、数据类型
基本数据类型
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编程预备计算机知识的更多相关文章
- 编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器
计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...
- 一、Android NDK编程预备之Java jni简介
转自: http://www.eoeandroid.com/thread-264384-1-1.html 游戏开发 视频教程 博客 淘帖 论坛›eoe·Android应用开发区›Androi ...
- python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- java第九节 网络编程的基础知识
/** * * 网络编程的基础知识 * 网络协议与TCP/IP * IP地址和Port(端口号) * 本地回路的IP地址:127.0.0.1 * 端口号的范围为0-65535之间,0-1023之间的端 ...
- Java并发编程学习前期知识下篇
Java并发编程学习前期知识下篇 通过上一篇<Java并发编程学习前期知识上篇>我们知道了在Java并发中的可见性是什么?volatile的定义以及JMM的定义.我们先来看看几个大厂真实的 ...
- React实战教程之从零开始手把手教你使用 React 最新特性Hooks API 打造一款计算机知识测验App
项目演示地址 项目演示地址 项目代码结构 前言 React 框架的优雅不言而喻,组件化的编程思想使得React框架开发的项目代码简洁,易懂,但早期 React 类组件的写法略显繁琐.React Hoo ...
- 三、Android NDK编程预备之Java jni入门创建C/C++共享库
转自: http://www.eoeandroid.com/thread-264971-1-1.html 应网友回复,答应在两天前要出一篇创建C/C++共享库的,但由于清明节假期,跟朋友出去游玩,丢手 ...
- 二、Android NDK编程预备之Java jni入门Hello World
转自: http://www.eoeandroid.com/forum.php?mod=viewthread&tid=264543&fromuid=588695 昨天已经简要介绍了J ...
- 关于python,完善我计算机知识的一步。
因为身为理科男,所以特别喜欢涉及其他领域的知识.而对我来说,计算机是很有诱惑力的--尤其是程序语言设计,懂得一门“外语”是多么的重要.大一时候接触过包括有计算机的基本知识,c语言,这个新的学期也开始接 ...
随机推荐
- Android webkit 事件传递流程通道分析
前言:基于android webview 上定制自己使用的可移植浏览器apk,遇到好多按键处理的问题.所以索性研究了一下keyevent 事件的传递流程. frameworks 层 keyevent ...
- typeof操作符返回一个字符串,表示未经计算的操作数的类型。
typeof操作符返回一个字符串,表示未经计算的操作数的类型. 语法 typeof运算符后跟操作数: typeof operand or typeof (operand) 参数 operand 是 ...
- 2016 Multi-University Training Contest 1 GCD【RMQ+二分】
因为那时候没怎么补所以就分到了未搞分组里!!!然后因为标题如此之屌吧= =点击量很高,然后写的是无思路,23333,估计看题人真的是觉得博主就是个撒缺.废话不多说了,补题... update////2 ...
- bzoj 1058: [ZJOI2007]报表统计【set】
我想写FHQtreap的!是set自己跑进代码的!因为太好写了 是有点慢--洛谷上不吸氧会T一个点 就是,用一个set p维护所有点值,ans维护MIN_SORT_GAP的答案,每次insert一个点 ...
- Java--------------Mysql中时间按要求查询
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...
- Android SDK Manager 无法下载Android8.1.0(API 27) SDK Platform
在Android SDK Manager 中安装Android 8.1.0 SDK Platform时报错导致无法安装. 错误信息:Downloading SDK Platform Android 8 ...
- Udp实现省略编码
class My_Socket(socket.socket): def __init__(self, encoding='utf-8'): self.encoding = encoding super ...
- scikit-learning教程(三)使用文本数据
使用文本数据 本指南的目标是探讨scikit-learn 一个实际任务中的一些主要工具:分析二十个不同主题的文本文档(新闻组帖子)集合. 在本节中,我们将看到如何: 加载文件内容和类别 提取适用于机器 ...
- 洛谷 P4135 作诗
分块大暴力,跟区间众数基本一样 #pragma GCC optimize(3) #include<cstdio> #include<algorithm> #include< ...
- 在CATIA中通过OUTGEN 生成OUT 文件 教程
前言: 本教程基于CATIA V5R2014版本. 关于大众数据标准格式:OUT/DMU/PCA文件的说明,如图1所示. 图1:关于OUT/DMU/PCA文件的说明 1.创建KPR文件,下挂所有子文件 ...