阅读 538
考研数据结构第一讲-C语言基础(1)

考研数据结构第一讲-C语言基础(1)

这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战

  1. C语言概述
  2. C语言标识符
  3. C语言数据类型
  4. 常量

01 Part One C语言概述

初探考纲

image.png

/*第一个程序*/
#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”);
复制代码
  1. 建议写注释,帮助阅读与理解;
  2. 注释格式:
  • 单行注释://哈哈
  • 多行注释:/注释内容写在这/
  1. 注释举例
/*注释起头在这儿:
const double pi = 3.14; // pi是一个常量 
注释结尾在这儿*/
复制代码

03 Part Three C语言数据类型

数据类型

image.png

这里是一般情况,具体平台不太一样,如32位平台和64位平台不太一样,具体可 以用sizeof 关键字测试。

image.png

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”

文章分类
后端