这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战
- C语言概述
- C语言标识符
- C语言数据类型
- 常量
01 Part One C语言概述
初探考纲
/*第一个程序*/
#include <cstdio>
int main() {
printf("Hello World");
return 0;
}
复制代码
代码举例
类型1:数据结构定义
/*栈的顺序存储描述*/
#define MaxSize 50//定义栈中元素的最大个数
typedef struct{ //结构体
elemtype data[MaxSize];//存放栈中元素
int top;//栈顶指针
}SqStack;
复制代码
类型2:算法的函数实现
/*出栈逻辑*/
Bool Pop(SqStack & S,ElemType & x){
if(S.top==-1)
return false;
x=S.data[S.top--];//先出栈,指针 再减1
return true;}
复制代码
举例
- 【2009年计算机408统考】41.(13分)设线性表 L=(a1,a2,a3,…,an-1,an)采用带头结点的单链表
保存,链表中结点定义如下:
typedef struct node
{int data ;
struct node * next: }NODE;
复制代码
请设计一个空间复杂度为O(1)且时间上尽 可能高效的算法,重新排列L中的各结点, 得到线性表L=(a1,a2,a3,…,an-1,an)。
要求:
(1)给出算法的基本设计思想
(2)根据设计思想,采用C或C++语言描述
算法,关键之处给出注释
(3)说明你所设计的算法的时间复杂度。
- 【2009年408统考真题】43.有n(n≥ 3)位哲学家用坐在一张圆桌边,每位哲学家交替地就餐和思考。在国桌中心有 m(m≥ 1) 个碗,每两位哲学家之间有l根筷子。 每位哲学家必须取到一个碗和两侧的筷子之后,才能就餐, 进餐完毕,将碗和筷子放回原位,并继续思考。 为使尽可能多的哲学家同时就餐,且防止出现死锁 现象,请使用信号量的 P、V操作(wait()、 signal()操作)描述上述过程中的互斥与向步,并说明所用信号量及初值的含义。
注意事项
1.考法
- 单独考查C语言语法知识
- 数据结构与算法中考查
2.复习策略
- 掌握C语言的基本语法,包括数组、指针、结构体、函数等;
- 自己C语言实现常见算法,如排序算法、查找算法。
3.算法建议
- 考试时字写好,代码规范,条理清晰,然后检查是否完成了题目的目标,最后考虑优化,如果实在想不出最优解法,暴力解法也能得分!
02Part Two C语言标识符
标识符
标识符简而言之就就是咱们自己去的名字,如变量名,数组名,结构体名等,这些取名要遵循一定 的规范:
- 只能由英文字母、数字和下划线构成;
- 必须以字母或下划线开头;
- 严格区分大、小写字母,如A和a是不一样的;
- 不能以关键字(如int,double等)作为标识符,关键字:
Goto, break, case, continue, default, do, else, for, if, return, switch, while
char, enum, double, long, float, int, short, signed, struct, unsigned, union, void
auto, extern, register, static, const, sizeof, typedef, volatile
- 标识符选用一般能让人一目了然,如age,height等;
书写格式
1.所有语句都必须以分号“;”结束,如:
printf(“hello world”);
复制代码
- 建议写注释,帮助阅读与理解;
- 注释格式:
- 单行注释://哈哈
- 多行注释:/注释内容写在这/
- 注释举例
/*注释起头在这儿:
const double pi = 3.14; // pi是一个常量
注释结尾在这儿*/
复制代码
03 Part Three C语言数据类型
数据类型
这里是一般情况,具体平台不太一样,如32位平台和64位平台不太一样,具体可 以用sizeof 关键字测试。
04 Part Four 常量
程序运行中不变的量称为常量,常量分为整型常量,实型常量,字符串常量,字符型常量。
- 整型常量:
由数字组成,可用十、八、十六进制表示。
前缀:0x表示十六进制,0表示八进制,不带前缀则默认表示十进制。
后缀:U表示无符号整数(unsigned),L表示长整数(long)。
如 123,0456,0x123、30l等。
- 实型常量
由整数部分、小数点、小数部分和指数部分组成。
小数形式:由数字和小数点组成,如 3.14159
指数形式:用字母e将幂隔开,如 1.2e-5。
#include <cstdio>
#define pi 3.14//指定pi为3.14常量 int main() {
int r=2;double s=pi*r*r;
printf("s=%lf",s);
return 0;}
复制代码
- 字符型常量
用单引号括起来。
普通字符:可以是单个的英文字母,数字或者是标点符号。 如:
‘A’,‘2’,‘*’,‘$’ 等。
转义字符:不能显示的ASCII字符。
如:
‘\r’(回车),‘\n’(换行),‘\t’(制表符)等。
- 字符串常量
用一对双引号括起来的字符串序列。
如“hello, world!”, “123”