栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

郭炜-C语言程序设计-程序设计与算法(一)-第一周

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

郭炜-C语言程序设计-程序设计与算法(一)-第一周

第一周 一、信息在计算机中的表示 1.用0/1表示各种信息
  1. 计算机的电路由逻辑门电路组成。一个逻辑门电路可以看成一个开关,每个开关的状态是“开"(高电位)或“关”(低电位),即对应于1或0 。

  2. 二进制数的一位,取值只能是0或1,称为一个“比特”(bit),简写:b 。

  3. 八个二进制位称为一个“字节”(byte),简写: B。

  4. 1024(210)字节称为1KB ,1024KB称作1MB(1兆),1024MB称作1GB,1024GB称作1TB。

  5. 用8个连续的0或1(即1个字节)来表示一个字母、数字或标点符号,一共有28即256种不同的组合,这就足以表示10个阿拉伯数字以及英语中用到的所有字母和标点符号了。此即为ASCII编码方案。

  6. 图片、视频和可执行程序,也可以用0和1表示。

2.给定一个K进制数,求它是多大

数就是数,没有进制之分,只有数的表示形式,才有进制之分。

假设有一个n+1位的K进制数,它的形式如下:

AnAn-1An-2…A2A1A0

则其大小为:

A0×K0 + A1×K1 + ……+ An-1×Kn-1+ An×Kn

所谓“十进制数”,是“数的十进制表示形式" 的简称。

(1723)8=3 * 80+2 * 81+7 * 82+1 * 83 =(979)10

3.给定一个数,求其K进制表示形式

求数的K进制表示形式 – 短除法

给定一个整数N和进制K,那么N可表示成以下形式:

N = A0×k0+A1×K1+A2×K2+……+An-1×Kn-1+An×Kn

= A0 +K (A1 +A2×K1+……+An-1×Kn-2+An×Kn-1)

N除以K所得到的余数是A0,商是A1+A2×K1+……+An-1×Kn-2+An×Kn-1。将这个商再除以K,就得到余数A1,新的商是A2 + A3×K1+……+An-1×Kn-3+An×Kn-2

不停地将新得到的商除以K,直到商变成0,就能依次求得得A0、A1、 A2 …… An-1 、An

显然,Ai

AnAn-1An-2……A2A1A0

(125)10 =

125/2=62……1 A0

62/2=31……0 A1

31/2=15……1 A2

15/2=7……1 A3

7/2=3……1 A4

3/2=1……1 A5

1 A6

= A6A5A4A3A2A1A0 =(1111101)2

4.k进制小数

K进制小数 0.A0A1……An的值是:

A0×k-1+A1×K-2+……+An×K-(n+1)

(0.12)10 = 1 ×10-1 + 2 ×10-2

(0.1)3 = 1 ×3-1 即1/3, 表示成10进制就是无限循环小数

可见,n进制下的有限位小数,在m进制下可能就无法精确表示。

5.十六进制数
123456789101112131415
123456789ABCDEF

大小写无所谓

6.十六进制和二进制互化
十六进制数二进制数十六进制数二进制数
0000081000
1000191001
20010a1010
30011b1011
40100c1100
50101d1101
60110e1110
70111f1111
3ad0011 1010 1101
110 1111 00106f2

TIP:二进制的四位: 23 22 21 20

​ 8 4 2 1

(0110)2=4+2=6

(1111)2=8+4+2+1=f

(0010)2=2

二、C语言快速入门

我们要学的,是C++的一部分,基本上就是:

C语言+ STL (STL是C++中能让你节省大量编程时间的神兵!)

因为暂时不写大程序,因此不用关心“面向对象”的事情!

1.第一个C语言程序
#include 
#include 
using namespace std;
int main()
{
printf("Hello,world!"); //printf用来输出函数 ""字符串要用它括起来
return 0;
}
#include 
#include 
using namespace std;
int main()
{
int a = 3;//变量a用来存放数据,int表示存放整型变量
printf("I have %d dollars.n",a);//%d表示输出一个整数 /n换行
printf("I want to buy:na book.");//每条语句结束后都要有;
return 0;
}
#include
#include
using namespace std;
int main() {
	int a, b;
	scanf("%d%d", &a, &b);//scanf输入函数 %d输入一个整数 &a把输入整数放入a中
	printf("%d", a + b);
	return 0;
}
#include 
#include 
using namespace std;
int main()
{
char a,b,c;
scanf("%c%c%c",&a,&b,&c);//%c表示输入一个字符不会跳过空格
printf("%c%c%c",a,b,c);
return 0;
}
//单行注释

//程序文件结尾应用.cpp
三.变量和数据类型 1.什么是变量
  1. 变量就是一个代号,程序运行时系统会自动为变量分配内存空间,于是变量就代表了系统分配的那片内存空间,对变量的访问,就是对其代表的内存空间的访问。

  2. 变量有名字和类型两种属性,不同变量的名字就对应了内存中的不同地址(即不同位置),而变量的类型,决定了一个变量占用多少个字节。变量名相当于房间号,类型相当于户型。

  3. 在C++语言中,变量要先定义,然后才能使用。“使用”有时也称为“引用”。读取或修改一个变量的值,都叫使用这个变量。定义变量的语句,要出现所有使用该变量的所有语句之前。

2.变量的定义

类型名 变量名1,变量名2 ……变量名n;

int number,price;

  • 一个变量不能定义两次
  • 变量由大小写字母,数字,下划线组成,中间不能有空格,长度不限,不能以数字开头。
  • 变量名是大小写相关的name 和Name是两个变量
  • 变量名不能和c++系统保留字重复
3.变量的初始化
  • 变量在定义的时候,给定一个初始值叫做变量的初始化,没有初始化的变量,其值一般是不确定的。
int a=4,b=3,c;
char ch='a';
3.数据类型

“数据类型”能够说明一个变量表示什么样的数据(整数,实数,

还是字符等)。不同数据类型的变量,占用的存储空间大小不同。

除了基本数据类型外,C++还允许程序员自定义数据类型。

  • int long short char最左边是符号位1表示负数0表示非负数。
  • 可以用sizeof(变量名) sizeof(类型名)可以得到某一变量或者某一类型变量占用的字节数。
四.有符号整数和无符号整数
  • short、 int、 long 、longlong 类型变量,可以表示正数可以表示负数,称为有符号整数类型。
  • unsigned short 、unsigned int 、unsigned long、umsigned long long类型变量 ,看作非负数 ,称为无符号整数类型。
1.有符号整数的表示方式

将最左边的位看作符号位:

符号位为0,表示非负数,其绝对值就是除过符号位以外的地方。

符号位为1,表示负数 ,其绝对值是所有位取反再加1。

整数表示为short的二进制位十六进制
10000 0000 0000 00010001
-11111 1111 1111 1111ffff
(1)将一个负整数表示为二进制的方法
  1. 设置符号位为1。
  2. 其余位等于绝对值取反再加1。
整数表示为short 的二进制位十六进制
327670111 1111 1111 11117fff
-327681000 0000 0000 00008000
(2)给定一个负数的二进制表示形式求该负数
  • 全取反,再加一,前缀负号。
五.数据类型自动转换
  • 有些不同的数据类型之间是相容的,可以互相赋值,
    这叫数据类型的自动转换
#include 
#include 
using namespace std;
int main() {
int n1 = 1378; //1378的十六进制形式是 0x562
short n2;
char c = 'a';
double d1 = 7.809;
double d2;
n2 = c+1; //n2变为98 , 97是'a' 字符型数据可以转换成整型数据
printf("c=%c,n2=%dn",c,n2); //输出 c=a,n2=98
c = n1; // n1是0x562, 0x62被当做ASCII码赋值给c,c变为 'b'
    //char为一个字节(8位)整型数据可以转换为字符型数据,但只    //会留下最右边的一个字节(第0位到第7位),其他字节丢弃
printf("c=%c,n1=%dn",c,n1); //输出 c=b,n1=1378
n1 = d1; // d1=7.809, 去掉小数部分后赋值给n1,n1变为7
printf("n1=%dn", n1); //输出 n1=7
d2 = n1; //d2变为7
printf("d2=%fn",d2); //输出 d2=7.000000 保留小数点后六位
return 0;
六.常量

常量就是在程序运行过程中值不会发生改变的量。

1.整数型常量
  • 十进制常量
  • 十进制常量o开头
  • 十六进制常量ox开头
2.字符型常量
  • 用''括起来。
  • 给char 和 unsigned char 赋值
  • 字母和数字的ASCII十进制编码:
    ‘0’~’9’: 48 ~ 57
    ‘A’~’Z’: 65 ~ 90
    ‘a’~‘z’: 97 ~ 122
3.字符串常量
  • 用""括起来
  • 括中无东西表示空串,其中可以包含转义字符。
4.符号常量

#define 常量命 常量值

  • 常量名命名规范和变量一直,最好全大写。
  • 整体性命名便于修改。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938368.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号