计算机硕士专业基础 —C 语言 赵海英 t.qq/flytianshan2012...

23
计计计计计计计计计— C 计计 计计计 http://t.qq.com/flytianshan2012 http://c.koolearn.com/subject/zyk/js j.jsp

description

计算机硕士专业基础 —C 语言 赵海英 http://t.qq.com/flytianshan2012 http://c.koolearn.com/subject/zyk/jsj.jsp. 目的:两个 (1) 掌握基础知识是考研专业是否取得高分一个关键。 (2) 转型:非计算机专业 ——> 计算机专业 方法: 以 C 语言为主线,以考研综合课程为点,进行穿针引线。. C 语言与考研课程关系 ★★ C 语言是数据结构的前导课 C 语言是操作系统的工具和应用 C 语言是计算机组成原理的辅助工具和表示形式 C 语言是计算机网络中二进制计算的保证. - PowerPoint PPT Presentation

Transcript of 计算机硕士专业基础 —C 语言 赵海英 t.qq/flytianshan2012...

Page 1: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

计算机硕士专业基础— C 语言

赵海英http://t.qq.com/flytianshan2012

http://c.koolearn.com/subject/zyk/jsj.jsp

Page 2: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

目的:两个(1) 掌握基础知识是考研专业是否取得高分一个关键。

(2) 转型:非计算机专业—— > 计算机专业

方法:以 C语言为主线,以考研综合课程为点,进行穿针引线。

Page 3: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

C 语言与考研课程关系★★

C语言是数据结构的前导课

C语言是操作系统的工具和应用

C语言是计算机组成原理的辅助工具和表示形式

C语言是计算机网络中二进制计算的保证

Page 4: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

C 语言授课内容★★共十章,结合考研例题,紧密结合,考前先准备。 例题 /习题的精选考试应用

讲授要求:以有助于专业综合课程考试,表现在: ( 1 )读题 ( 2 )解题 ( 3 )规范答题

Page 5: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

授课目标:考研基础范围 + 考研题型 + 规范答题 + 思考方法

以求“高分”为目标

零基础,前期充分准备

框架+ 执行过程+ 基本标志

Page 6: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

C 语言的组成结构 main()

{ int

tmp1,tmp2,count;

count=1; tmp1=count;

tmp1++;

count=tmp1;

tmp2=count;

tmp2=tmp2+2;

count=tmp2;

}

main()

{ /*int count=1;*/

fun1();

fun2();

}

int count=1;void fun1(){ int tmp1; tmp1=count;

tmp1++;

count=tmp1;

}

void fun2(){ int tmp2; tmp2=count;

tmp2=tmp2+2;

count=tmp2;

}

Page 7: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

C 语言的组成结构 main()

{

int tmp1,tmp2,count;

count=1;

tmp1=count;

tmp1++;

count=tmp1;

tmp2=count;

tmp2=tmp2+2;

count=tmp2;

}

执行过程:

结构(三句话)

main()

{

/*int count=1;*/

fun1();

fun2();

}

执行过程:

复合框架

主子调用(三个要点)

int count=1;void fun(){ int tmp1; tmp1=count;

tmp1++;

count=tmp1;

}

void fun2(){ int tmp2; tmp2=count;

tmp2=tmp2+2;

count=tmp2;

}

Page 8: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

C 语言的组成结构 形式的标志:() { }

“ ”

‘ ’

\

\0

L

%

#

0

0x

;

struct union enum

运算的标志++

--

=

struct node

{ datatype data;

struct node *next;

};

执行的标志:%s

%c

*

&

[ ]

Page 9: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

章节 标题 内容 适用课程 例题 / 习题

第一章 基础知识 数制及转换计算机字长内存与地址

计算机组成计算机网络操作系统

考研真题

第二章 C 语言组成 C 数据组成、数据及数据类型

数据结构计算机组成操作系统

考研真题C 语言考研

第三章 顺序结构程序设计 框架语句输入、输出

C 语言考研 C 语言考研

第四章 选择结构程序设计 if---elseswitch(){…}

数据结构 C 语言考研

Page 10: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

章节 标题 内容 适用课程 例题 / 习题

第五章 循环结构程序设计

3 种结构双循环break

continue

数据结构操作系统计算机组成

考研真题C 语言考研

第六章 数组 一维数组二维数组字符串

数据结构操作系统计算机组成

考研真题C 语言考研

第七章 函数与预编译 定义 / 调用 / 原型分析过程

传值

数据结构操作系统

考研真题C 语言考研

Page 11: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

章节 标题 内容 适用课程 例题 / 习题

第八章 指针 列指针行指针函数指针等

数据结构 链表C 语言考研

第九章 结构体 sturct类型typedef构造 - 定义 - 使用

数据结构计算机组成

考研真题C 语言考研

第十章 位运算 / 文件

打开 / 关闭读写指针定位 / 测试

数据结构 C 语言考研

Page 12: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

数制及转换 以二进制为例 (单位、内存、 ASCII 、编码、地址等考点)

( 1 )定义 ( 2 )二进制与十进制的转换

( 3 )二进制应用 内存与地址

Page 13: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

  2012-15.某计算机存储器按字节编址,采用小端方式存放数据。假定编译器规定 int和 short型长度分别为32位和 16位,并且数据按边界对齐存储。某 C 语言程序段如下:   struct{   int  a;   char b;   short c;   }  record;   record. a=273;  若 record变量的首地址为 0xC008,则地址0xC008中内容及 re-cord. c 的地址分别为

Page 14: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

  2012-15.某计算机存储器按字节编址,采用小端方式存放数据。假定编译器规定 int和 short型长度分别为 32位和 16位,并且数据按边界对齐存储。某 C 语言程序段如下:   struct{   int  a;   char b;   short c;   }  record;   record. a=273;  若 record变量的首地址为 0xC008,则地址 0xC008中内容及 re-cord. c 的地址分别为

这是一道计算机组成的考研题

Page 15: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

2010-44.  ( 12 分) 某计算 机的主 存地址 空间大小为 256M B,按 字节编 址。指令 Cache 和数 据 Cache 分离 ,均有 8 个 Cache 行,每 个 Cache 行大 小为 64B,数 据 Cache 采用 直接映 射方式 。现有 两个功 能相同 的程 序 A 和 B ,其伪代码 如下所 示:

假定 int  类型 数据用 32位补 码表 示,程 序编译 时 i , j , s u m 均分 配在寄 存器中 ,数 组 a 按 行优先 方式存 放,其首地址 为 320(十 进制数 )。 请回答 下列问 题,要 求说明 理由 或给出 计算过 程。(1)  若不考 虑用 于 cache 一致性 维护和 替换算 法的控 制位, 则数 据 Cache 的总容 量为多 少?(2)  数组元 素 a[0][31]和 a [1][1]各自所 在的主 存块对 应的 Cache 行 号分别 是多少 ( Cache 行号从 0 开 始)?(3)  程序 A 和 B 的 数据访 问命中 率各 是多少 ?哪个 程序的 执行时 间更短 ?

 程序 A:int a[256][256]„„int sum_array1(){int i, j, sum=0;for(i=0; i<256; i++)for(j=0; j<256; j++)sum += a[i][j];return  sum;}

 程序 B:int a[256][256]„„int sum_array2(){int i, j, sum=0;for(j=0; j<256; j++)for(i=0; i<256; i++)sum += a[i][j];return sum;}

Page 16: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

2010-44. ( 12 分) 某计算 机的主 存地址 空间大小为 256M B ,按 字节编 址。指令 Cache 和数 据 Cache 分离 ,均有 8 个 Cache 行,每 个 Cache 行大 小为 64B ,数 据 Cache 采用 直接映 射方式 。现有 两个功 能相同 的程 序 A 和 B ,其伪代码 如下所 示:

 程序 A :int a[256][256]„„int sum_array1(){int i, j, sum=0;for(i=0; i<256; i++)for(j=0; j<256; j++)sum += a[i][j];return sum;}

 程序 B :int a[256][256]„„int sum_array2(){int i, j, sum=0;for(j=0; j<256; j++)for(i=0; i<256; i++)sum += a[i][j];return sum;}

假定 int 类型 数据用 32 位补 码表 示,程 序编译 时 i , j , s u m 均分 配在寄 存器中 ,数 组 a 按 行优先 方式存 放,其首地址 为 320 (十 进制数 )。 请回答 下列问 题,要 求说明 理由 或给出 计算过 程。(1) 若不考 虑用 于 cache 一致性 维护和 替换算 法的控 制位, 则数 据 Cache 的总容 量为多 少?(2) 数组元 素 a[0][31] 和 a [1][1] 各自所 在的主 存块对 应的 Cache 行 号分别 是多少 ( Cache 行号从 0 开 始)?(3) 程序 A 和 B 的 数据访 问命中 率各 是多少 ?哪个 程序的 执行时 间更短 ?

Page 17: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

C语言的线性表的链式存储结构(动态创建、访问、插入、删除)举例:输出一个链表中最大结点(数据域)

标志 结构体使用规则 链表遍历三要点 数据域与指针域要分清

C语言的访问方式:四类 链表访问的特点

Page 18: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

C语言的作用★★——软件设计师 ————2011上半年软件设计师下午试题

1 void sort(int n,int a[],int b[]) {2 int c[R],i;3 for(i=0;i< (1) ;i++) {4 c[i]=0;5 }6 for(i=0;i<n;i++) {7 c[a[i]]= (2) ;8 }9 for(i=1;i<R;i++){10 c[i]= (3) ;11 }12 for(i=0;i<n;i++) {13 b[c[a[i]]-1]= (4) ;14 c[a[i]]=c[a[i]] -1;15 }16 }

Page 19: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

C 语言的作用★★——程序面试宝典

#include<stdio.h>

main(){

int b=3;Int arr[]={6,7,8,9,10};Int *ptr=arr;*(ptr++)+=123;Printf(“%d,%d\n”,*ptr,*(++ptr));

}A 、 8 8 B 、 130 8 C 、 7 7 D 、 7 8

Page 20: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

分析问题的能力:int fun(int t){ int f1,f2,f3; f1=0; f2=1; f3=f1+f2; while(f3<=t) { f1=f2; f2=f3; f3=f1+f2; } return f3;}

解决问题的能力:求大于 t 的最小斐波纳契数列( Fibonacci

Sequence )的数据

Page 21: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp

C 语言小技巧:

1 、 C 语言两类变量 内容值 地址值

2 、指针变量的定义 类型名 * 指针变量名;

3 、指针变量的使用 定义且初始化后才能使用

Page 22: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp
Page 23: 计算机硕士专业基础 —C 语言  赵海英 t.qq/flytianshan2012 c.koolearn/subject/zyk/jsj.jsp