C语言程序设计(Part I)

C语言程序设计(Part I)的整理笔记,若有错误,欢迎指正。

C语言程序设计(Part II)
C语言程序设计(Part III)
C语言程序设计(Part Ⅳ)

  • 最初的C语言只是为了编写UNIX操作系统提供一种工作语言而设计的。
  • C语言是一门结构化、模块化编程语言,采用自顶向下、逐步求精的程序设计方法,采用顺序、分支、循环三种基本控制结构构造程序。
  • 特点:①代码紧凑,灵活多变(程序书写自由,多行代码可写在一行中)
    ②允许直接访问物理地址,运行速度快(经过操作系统调用后可直接运行在硬件上)
    ③可移植性(源代码修改少部分甚至不用修改就可以在不同的机器上运行)
  • 应用领域:①操作系统 ②计算机游戏 ③智能机器人 ④电影特效 ⑤PC应用程序 ⑥物联网
/*
程序功能:
输出年龄
*/

#include<stdio.h>//

int main()//主函数

{//函数体开始标志
	
	int MyAge;//声明部分,定义一个整型变量
	
	scanf("%d",&MyAge);
	
	printf("Now My Age is ");
	printf("%d\n",MyAge);
	
	return 0;//返回语句
	
}//函数体结束标志
  1. 注释可用 // 或 /* */ ,通常情况下,前者用于单行注释,后者用于多行注释。
  2. “#”代表预处理,不参与编译;“stdio.h”是C编译系统提供输入输出支持的一个文件名。
  3. main函数是C源程序的必备函数,一个函数由函数首部+函数体构成。
  4. “scanf()”为标准输入函数;“&”的含义是"变量的地址";"printf()”为标准输出函数。C语言本身没有输入输出语句,输入输出的操作是由库函数scanf和printf等函数来完成的。
  5. “%d”是输入输出的“格式字符串",用来指定输入输出时的数据类型和格式,这里表示输入输出时用"十进制整数"形式表示;"\n"是换行符。
  6. return 0可看作是固定写法,表示"返回0",即把0作为函数的值。

在使用系统库函数时,要在程序中使用预编译指令“#include”。#include指令都是放在程序的开头,因此这类文件被称为头文件。它的作用是在程序编译时,系统会将“stdio.h”头文件的内容调出来放在此位置,取代本#include行。

!#include指令有两种形式:① <    > <\;> <>尖括号形式②“ ”双引号形式。
二者的区别是:第一种-编译系统直接找到C编译系统所在的子目录中去找所要包含的文件,这种方式称之为标准方式。第二种-在编译时,系统先在用户目录中寻找要包含的文件,若找不到,再按照标准方式查找。如果用户自己编写的文件不在当前目录中,可以再双引号中写出文件路径(如:#include"C:\temp\file.h")。

上机输入和编辑源程序(.c)->对源程序进行编译,得到目标程序(.obj)->将目标程序与库函数链接,得到可执行的目标函数(.exe)->运行可执行的目标程序
!上机运行一个C程序必须经过4个步骤:编辑、编辑、链接和执行。

C语句的分类:

语句说明
表达式语句表达式语句由表达式加上分号“;”组成。其一般形式为:表达式; 执行表达式语句就是计算表达式的值
函数调用语句由函数名、实参数加上分号“;”组成。其一般形式为:函数名(实参);执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值。
控制语句控制语句用于控制程序的流程,以实现程序的各种结构方式。它们由特定的语句定义符组成。条件判断语句、循环执行语句、转向语句。
复合语句把多个语句用括号{ }括起来组成的一个语句称复合语句。在程序中应把复合语句看成是单条语句,而不是多条语句。复合语句内的各条语句都必须以分号“;”结尾,在括号“ } ”外不能加分号。
空语句只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。

C语言常见数制:①二进制(0 1) ②八进制(1-7) ③十进制(0-9) ④十六进制(1-9,A-F)

数 据 类 型 { 基 本 类 型 { 整 型 类 型 { 基 本 整 型 ( i n t ) 短 整 型 ( s h o r t    i n t ) 长 整 型 ( l o n g    i n t ) 双 长 整 型 ( l o n g    l o n g    i n t ) 字 符 型 ( c h a r ) 布 尔 型 ( b o o l ) 浮 点 类 型 { 单 精 度 浮 点 型 ( f l o a t ) 双 精 度 浮 点 型 ( d o u b l e ) 复 数 浮 点 型 ( f l o a t _ c o m p l e x , d o u b l e _ c o m p l e x , l o n g    l o n g _ c o m p l e x ) 枚 举 类 型 ( e n u m ) 空 类 型 ( v o i d ) 派 生 类 型 { 指 针 类 型 ( ∗ ) 数 组 类 型 ( [    ] ) 结 构 体 类 型 ( s t r u c t ) 共 用 体 类 型 ( u n i o n ) 函 数 类 型 数据类型\begin{cases} 基本类型\begin{cases} 整型类型\begin{cases} 基本整型(int)\\ 短整型(short\;int)\\ 长整型(long\;int) \\ 双长整型(long\;long\;int)\\ 字符型(char)\\ 布尔型(bool)\\ \end{cases} \\ 浮点类型\begin{cases} 单精度浮点型(float) \\ 双精度浮点型(double)\\ 复数浮点型(float\_complex,double\_complex,long\;long\_complex)\\ \end{cases} \\ \end{cases} \\ 枚举类型(enum)\\ 空类型(void)\\ 派生类型\begin{cases} 指针类型(*) \\ 数组类型([\;]) \\ 结构体类型(struct) \\ 共用体类型(union)\\ 函数类型\\ \end{cases} \end{cases} (int)(shortint)(longint)(longlongint)(char)(bool)(float)(double)(float_complex,double_complex,longlong_complex)(enum)(void)()([])(struct)(union)

整数的存储方式:

  • 一个字节共有8个二进制位,左边第1位(即最高位)用来表示符号,当最高位为0时表示是正数,当最高位为1时表示是负数。
  • 在计算机中存储整数(不论整数和负数),都是按"补码"形式存放到存储单元的。
  • 正数:符号位为0,原码=反码=补码。
  • 负数:先求原码,再求反码,最后求补码。

正数10 (+10):

76543210
00001010

负数122 (-122):

76543210
原码11111010
反码10000101
补码10000110

求反码时,最高位符号位不变,其余位取反;求补码时,最高位符号位不变,将反码最低位加1。

在定义整型变量时,都可以加上修饰符"unsigned",以指定为"无符号数",默认为"signed"。
在这里插入图片描述

  • 实数在计算机语言中常称为浮点数,它有:十进制小数形式和指数形式。
  • 指数形式中,用字母e或E代表以10为底的指数,字母e或E前必须有字母,且e后面的指数必须为整数。
  • 一个实数在用指数形式输出时,是按标准化指数形式输出的,即:数值部分是一个小数,小数点前的数字是0,小数点后第一位数字不是0。如: 0.1234 × 1 0 3 0.1234×10^3 0.1234×103

实数的存储方式:
在计算机中一般以4个字节存储一个实数,其中3个字节存放数值部分(包括数值的符号),1个字节存放指数部分(包括指数的符号)。
0.1234 × 1 0 3 0.1234×10^3 0.1234×103实际上在计算机中是用二进制形式存储形式表示各数值,指数部分是以2为底的。
在这里插入图片描述
字符的存储方式:
char类型占一个字节数,计算机并不是将字符本身存放到存储单元中(因为存储单元只能存储二进制信息),而是将字符的代码存储到相应的存储单元。一般采用国际通用的ASCII代码。

  • 格式化输入输出中,若是整型,则用%d,若是字符,则用%c。如ASCII表中,F对应的十进制数为70,若输出符号F,则用%c,若输出数字70,则用%d。
  • 不同类型的数据进行运算,如果一个运算符两侧的数据类型不同,需要先自动进行类型转换,使两者具有同一类型,然后进行运算,规则为:占字节少的数据先转换为字节多的数据类型,然后进行运算,最后得到的结果是字节多的数据类型。
  • c h a r − > s h o r t − > i n t − > u n s i g n e d − > l o n g − > u n s i g n e d    l o n g − > f l o a t − > d o u b l e char->short->int->unsigned->long->unsigned\;long->float->double char>short>int>unsigned>long>unsignedlong>float>double
    ASCII表(一)
    ASCII表(二)
    Visual Studio2019的中的类型与相应的字节数:
    sizeof是C语言中的运算符,用来测定类型或变量的长度。用法是:sizeof(类型名)
    字节数测试
    各数据类型的取值范围:
    limits.h 头文件决定了各种变量类型的各种属性。
#include<stdio.h>
#include<limits.h>
#include<float.h>

int main()
{
    printf("int取值范围为:%d ~ %d\n",INT_MIN,INT_MAX );
    printf("unsigned int最大的取值范围为:%d(即65536)\n\n", UINT_MAX);

    printf("short取值范围为:%d ~ %d\n", SHRT_MIN, SHRT_MAX);
    printf("unsigned short最大的取值范围为:%d\n\n", USHRT_MAX);

    printf("long取值范围为:%ld ~ %ld\n", LONG_MIN, LONG_MAX);
    printf("unsigned long最大的取值范围为:%ld\n\n", ULONG_MAX);

    printf("long long取值范围为:%lld ~ %lld\n", LLONG_MIN, LLONG_MAX);
    printf("unsigned long long最大的取值范围为:%ld\n\n", ULLONG_MAX);

    printf("char取值范围为:%d ~ %d\n", CHAR_MIN, CHAR_MAX);
    printf("unsigned char最大的取值范围为:%d\n\n", UCHAR_MAX);

    printf("float取值范围为:%e ~ %e\n", FLT_MIN, FLT_MAX);
    printf("double取值范围为:%e ~ %e\n\n", DBL_MIN, DBL_MAX);

    printf("float精度为:%d\n", FLT_DIG);
    printf("double精度为:%d\n", DBL_DIG);
    return 0;
}

在这里插入图片描述

转义字符:用来表示作为输出信息时的控制符号。

  • ‘\ddd’:1~3位8进制数所代表的字符。
    如:’\101’代表ASCII码为八进制数101的字符
  • ‘\xhh’:1~2位16进制数所代表的字符。
    如:’\x41’代表ASCII码为十六进制数41的字符,即字符’A’
    在这里插入图片描述
  • '\0’的ASCII码为0,而’0’的ASCII为48,二者的含义是不同的。
  • 字符常量和字符串常量的含义也是不同的,一个字符常量只能存放一个字符,而字符串常量相当于"多个字符的集合";字符常量用单引号,而字符串常量用双引号。
  • 另外,C语言编译系统在处理字符串时,在每一个字符串常量的阶为加一个字符’\0’,作为字符串结束的标志,而’\0’的ASCII码为0,意味着它是一个"空操作字符",不引起任何操作制动,也不是一个可显示的字符。
    在这里插入图片描述
  • C语言规定变量名/函数名/数组名/类型名等(用来标识对象名字的标识符)的第一个字符必须是字母或下划线,其后的字符必须是字母、数字或下划线。
  • C语言中把标识符分为三类:关键字,预定义标识符,用户自定义标识符,不能把C语言关键字作为用户标识符。
    C语言关键字
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值