C程序设计知识总结

C程序设计

第一、二章 基础

计算机语言:计算机和人沟通的语言

程序:一组计算机可以识别和执行的指令

程序设计:从设计开始,到形成文档的整个过程

  • 机器语言:计算机能直接识别和接的二进制代码
  • 汇编语言:机器语言的符号化,用英文和数字表示指令的符号语言
  • 高级语言:接近人使用的自然语言,但也需要“翻译”,例如C语言、java
# include <stdio.h> # 预处理命令,<stdio.h>头文件
int main(){ # main表示主函数
    程序体
    return;
}
#include <stdio.h>
int main()
{
    int a,b,sum;
    a = 123;
    b = 456;
    sum = a+b;
    printf("sum is %d\n",sum);
    return 0;
}

// 单行注释。/* 多行注释 */

源程序:未编译的按照一定程序设计语言规范写的文本文件

目标程序:为源程序经编译可被计算机执行的代码集合

可执行程序:将所有编译后得到的目标模块连在一起,生成一个可供计算机执行的目标文件

算法:解决问题的求解步骤

五大特性:有穷性、确定性、可行性、输入输出

流程图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

N~S流程图的三种基本结构:顺序、选择、循环

顺序程序外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传c=5/9(f-32)

第三章 顺序程序设计

常量

整型常量:1000、123、-356、0等

实型常量:十进制形式;123.45,指数形式;12.34e3

字符常量:普通字符;‘a’,转义字符;‘\n’,‘\t’

字符串常量:‘boy’,‘123’

符合常量:# define PI 3.1416

标识符:只能由字母、数字、下划线组成,且第一位不能是数字

数据类型
整型int4字节
短整型short2字节
长整型long4字节
字符型char
布尔型bool
float4字节
double8字节

ASCII:‘A’:65;‘a’:97;‘0’:48;

强制类型转化

(类型名)(表达式)

输入输出
d输出一个有符号的十进制数
c输出一个字符
s输出一个字符串
f输出一个实数
u输出一个无符号的十进制数

putchar 输出一个字符

getchar 输入一个字符

第四章 选择结构设计

逻辑运算符
&&
||
if(表达式)

​	语句1

else

​	语句2
switch(表达式)
{
    case 常量:语句1
    case 常量:语句2
      。。。。。。
}

例句:
scanf("%c",&grade)
switch(grade)
{
    case 'A':printf("85~100\n");
    break;
    case 'B':printf("70~84\n");
    break;
}

第五章 循环结构

do

​ 语句

while(表达式);

先执行循环体,再判别表达式

第六章 利用数组处理批量数据

定义一维数组

类型符 数组名[常量表达式];不能是变量

一维数组初始化

int a[5] <==> int a[]={1,2,3,4,5}

定义二维数组

类型符 数组名[常量表达式] [常量表达式];

字符数组中以’\0’作为结束标志,不会输出

如果输入字符数组名,不需要加地址符&

puts 输出字符串的函数

puts (字符数组):puts(str)

gets 输入字符串的函数

gets (字符数组):gets(str)

注:gets、puts函数只能输入或输出一个字符串

strcat 字符串连接函数

strcat(字符数组1,字符数组2)

strcpy和strncpy 字符串复制函数

strcpy(字符数组1,字符数组2):将字符串2复制到字符串1中

strncpy(字符数组1,字符数组2,n):将字符串2前n个字符复制到字符串1中

strcmp 字符串比较函数

strcmp(字符数组1,字符数组2)

strclen 测字符串长度的函数

strclen(字符数组)

strupr 转换为大写的函数
strlwr 转换为小写的函数

第七章 模块化程序设计

函数调用

调用前需要先声明

#include <stdio.h>
int main
{
    void print_start();
    void print_message();
    print_start();
    print_message();
    return 0;
}
void print_start()
{
    printf("-----------------")
}
void print_message()
{
    printf("本人最帅,部接受反驳")
}

函数的返回值是通过函数中的return语句获得的。

如果调用库函数,需要用# include指令将调用有关库函数所需的信息“包含”到本文件中,如 #include <stdio.h>。

函数的声明方式
  • 函数类型 函数名(参数类型1 参数1,参数类型2 参数2)
  • 函数类型 函数名(参数类型1,参数类型2)
C的存储类别
  • 自动的(auto):调用时习题回给变量分配存储空间,但结束后也会自动释放
  • 静态的(statis):调用时习题回给变量分配存储空间,但结束后依然保留
  • 寄存器的(register):一般情况下存放在内存中,需用时再送到运算器中
  • 外部的(extern):
内部函数、外部函数
  • 内部函数:再定义函数时,前加static,即只能被本文件中其他函数所调用。static 类型名 函数名(形参)。
  • 外部函数:可供其他文件调用。extern int fun (int a,int b)

第八章 指针

用于通过地址能找到变量单元,地址指向该变量单元,将地址形象化称为“指针”。因此指针指向的时变量的地址。

通过指针引用数组元素
  • 下标法
  • 通过数组名计算数组元素地址,找出元素的值
int main()

{

int a[10];

int i;

printf("please enter 10 integer numbers:")

for(i=0;i<10;i++)

​	scanf("%d",&a[i])

for(i=0;i<10;i++)

​	printf("%d",*(a+i))

return 0;

}
  • 用指针变量指向数组元素
{

int a[10];

int i,*p;

printf("please enter 10 integer numbers:")

for(i=0;i<10;i++)

​	scanf("%d",&a[i])

for(p=a;p<(a+10);p++)

​	printf("%d",*p)

return 0;

}

两中运算结果相同,但第二种效率更高。用指针变量直接指向元素,不必每次都重新计算地址。

通过指针引用字符串
{
    char string[]="I love China!";
    printf("%s\n",string);
    printf("%c\n",string[7]);
    return 0;
}

第九章 结构体

结构体
struct Student

{

int num;

char name[20];

char sex;

int age;

float score;

char addr[30];

};

结构体初始化和引用

{
    long int num;
    char name[20];
    char sex;
    char addr[20];
}a={10101,"LILIN",'M',"BeiJing"}; # 初始化
pirntf("NO:%d.....",a.num,a.name....) # 引用

定义结构体数组

struct Person{
    char name[20];
    int count;
} leader[3];
struct Person leader[3]= {"Li",0},{"Zhang",0},{"Wang",0}; # 初始化

共用体

union Data{
    int i;
    char ch;
    float f;
} a,b,c; # 声明的同时定义变量
也可以拆开:union Data a,b,c;
  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值