首页人工智能c语言基本语句大全,c语言编程题经典100例

c语言基本语句大全,c语言编程题经典100例

编程之家2026-05-161068次浏览

大家好,今天来为大家解答c语言基本语句大全这个问题的一些问题点,包括c语言编程题经典100例也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

c语言基本语句大全,c语言编程题经典100例

求大神整理c语言指令符号及用法大全。

编译指令

编译指令

说明

#include

包含另一个文件

#define

c语言基本语句大全,c语言编程题经典100例

定义一个宏(macro)或是常量

#undef

取消一个宏常量的定义

#asm和#endasm

在程序中加入汇编语言的程序

#ifdef、#ifndef、#else、#endif

c语言基本语句大全,c语言编程题经典100例

用于条件式的编译

注解://—单行注解;

基本数据类型(int,float,double,char,void)

数据类型

类型说明

长度(位)

数据长度

bit

1

0,1

char

字符

8

—128~127

unsigned char

无符号字符

8

0~255

signed char

有符号字符

8

—128~127

int

整型

16

—32768~32767

short int

短整型

16

—32768~32767

unsigned int

无符号整型

16

0~65535

signed int

有符号整型

16

—32768~32767

long int

长整型

32

—2147483648~2147483647

unsigned long int

无符号长整型

32

0~4294967295

signed long int

有符号长整形

32

—2147483648~2147483647

float

浮点数(实数)

32

0.175e-38~0.402e38

double

双精度浮点

32

0.175e-38~0.402e38

void

0

没任何数据

用户自定义数据类型格式

typedef struct{

数据类型变量序列1;

数据类型变量序列1;

...

}自定义数据类型的名称;

保留字

_at_,alien,bdata,break,bit,case,char,code,compact,const,continue,data,

default,do,double,far,else,enum,extern,float,for,goto,if,funcused,idata,int,

inline,interrupt,large,long,pdata,_priority_,reentrant,return,sbit,sfr,sfr16,

short,sigend,sizeof,small,static,struct,switchc_task_,typedef,using,union,

unsigned,void,volatile,while,xdata

常量表示法

常数

规则

范例

十进制

一般十进制格式

1234567890

二进制

开头加上0b

0b00001110

八进制

开头加上O

O0123

十六进制

开头加上0x

0xFF45

无符号整数常量

结尾加上U

30000U

长整数常量

结尾加上L

299L

无符号长整数常量

结尾加上UL

327800UL

浮点数的常量

结尾加上F

4.234F

字符常量

以单引号括起来

‘a’

字符串常量

以双引号括起来

“hello”

-----------------------------------------------------运算符-----------------------------------------------------

算术运算

运算符

说明

范例

执行结果

+

c=a+b;

c等于10

d=a—b;

d等于6

*

e=a*b;

e等于16

/

f=a/b;

f等于4

%

取余数

g=a%b;

g等于0

++

加1

c++;相当于c=c+1;

c等于11

——

减1

d——;相当于d=d—1;

d等于5

=

等于

a=8;

设置a等于8

+=

先相加在等于

e+=5;相当于e=e+5;

e等于21

—=

先相减在等于

f—=5;相当于f=f—5;

f等于—1

*=

先相乘在等于

b*=5;相当于b=b*5;

b等于0

/=

先相除在等于

a/=5;相当于a=a/5;

a等于1

%=

先取余数在等于

a%=5;相当于a=a%5;

a等于3

※假设a等于8,b等于2

比较运算

运算符

说明

范例

执行结果

==

等于

a==5

F

!=

不等于

a!=5

T

<<o:p>

小于

a<5

F

>

大于

a>5

T

<=

小于等于

a<=5

F

>=

大于等于

a>=5

T

※比较运算结果是个布尔值既TRUE(真值)或FALSE(假值)。假设a等于8

逻辑运算

运算符

说明

范例

执行结果

&&

AND

(a>5)&&(a<10)

T

||

OR

(a<5)||(a>10)

F

!

NOT

!(a>10)

T

※逻辑运算结果是个布尔值既TRUE(真值)或FALSE(假值)。假设a等于8

位逻辑运算

运算符

说明

范例

执行结果

&

AND

a&0x01

a等于1

|

OR

a|0x80

a等于0x85

~

NOT

~a

a等于0xFA

^

XOR

a^0xFF

a等于0xFA

<<

左移

a<<1

a等于0x0A

>>

右移

a>>1

a等于0x0A

※假设a等于5

----------------------------------------------------控制命令---------------------------------------------------

if语句

if(条件)语句1;

else语句2;

例:if(d==4) d=0;//如果d等于4就设置d等于0

else d++;//否则就将d加1

if(ticks==0){//如果ticks等于0

ticks=1000;//ticks设置成1000

counter[0]++;//counter[0]加1

}

嵌套if语句

例:if(counter[0]==10){

counter[1]++;

counter[0]=0;

if(counter[1]==10){

counter[2]++;

counter[1]=0;

}

}

switch语句

switch(变量){

case常量1:语句1; break;

case常量2:语句2; break;

case常量3:语句3; break;

......

default;语句n;

}

for循环

for(初值,条件,变化值)语句;

例:for(i=0;i<10;i++) x=x+i;

for(i=1;i<10,i++)

for(j=1;j<10,j++)

printf(“%d%d”,i,j);

无穷循环:

for(;;);

while循环

while(条件)语句;

例:while(ch!=!’A’) ch=getche();

无穷循环:

while(1);

do/while循环

do{

语句;

...

} while(条件);

例:do{

ch=getche();

} while(ch!=”A”);

goto语句

loop1:

x++;

if(x<100) goto loop1;

----------------------------------------------------指针和函数------------------------------------------------

指针的定义

数据类型*指针变量的名字;

例: char*p;

int*x;

指针与数组

例: char filename[80];

char*p;

p=filename;//指针p存放filename的开始地址

int x[5]={1,2,3,4,5};

int*p,sum,i;

p=x;//指针p存放数组x的开始地址

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

sum=sum+p[i];//p[i]相当于x[i]

指针的运算

1.针变量前面加上*号就是取得指针所指向位置的内容。

例:int x[5]={1,2,3,4,5};

int*p;

p=x;//指针p存放数组x的开始地址

*p=10;//相当于设置x[0]等于10

2.变量前面加上&符号,可以取得一个变量的位置。

例:int x,y;

int*p;

p=&x;//指针p存放x的地址,相当于p是指向x的指针

*p=1;//相当于设置x等于1

3.&符号也可以加在数组的前面

例:int x[5];

int*p;

p=&x[2];//指针p存放x[2]的地址,相当于p是指向x[2]的指针

*p=50;//相当于设置x[2]等于50

函数

函数类型函数名称(参数序列);

参数说明

{

函数的主体

}

例:void delay(void){//不返回任何数据的函数

unsigned char i,j;//没有任何参数的函数

for(i=0,i<255,i++)

for(j=0,j<255,j++);

}

main()

{

...

delay();//调用函数

}

例:unsigned char sum(unsigned chat a,unsigned chat b)

{

unsigned chat x;

check_GLCD_busyflag();//函数中可以调用另一个函数

x=a+b;

return x;//return会返回x的数据

}

中断服务函数

void中断服务程序的名称(void) interrupt中断号码using寄存器组号码

{

中断服务子程序主体

}

中断号码

#define IE0_VECTOR 0//0x03

#define TF0_VECTOR 1//0x0B

#define IE1_VECTOR 2//0x13

#define TF1_VECTOR 3//0x1B

#define SIO_VECTOR 4//0x23

对于S51有定时器2

#define TF2_VECTOR 5//0x2B

例:static void xint0_isr(void) interrupt IE0_VECTOR(或0) using 1

{

unsigned char i,j=0xFF;

for(i=0,i<16,i++)

{

j++;

P1=j;//将数值输出到P1口

delay_4isr();

}

}

-----------------------------------------------------汇编语言--------------------------------------------------

在C中加入汇编语言

例:void delay100us()

{

#pragma asm

mov r7,#1

more: mov r3,#48

djnz r3,$

djnz r7,more

#pragma endasm

}

----------------------------------------------------宏(macro)----------------------------------------------

宏的定义

%*define(macro名称)(macro的指令)

例:%*define(write_1)(

setb DI

serb SK

clr SK

)

#define宏的名称宏的指令

例:#define uchar unsigned char

C语言中的符号总结

运算符的种类C语言的运算符可分为以下几类;

1.算术运算符

用于各类数值运算,包括加减乘除求余自增自减共七种运算

{(+),(-),(*),(/),(%),(++),(--)}。

2.关系运算符

用于比较运算,包括大于(>),小于(<</span>),等于(==),大于等于(>=),

小于等于(<=),不等于(!=)共六种。

3.逻辑运算符

用于逻辑运算,包括与(&&)或(||)非(!)三种.

4.位操作运算符

参与运算的量,按二进制位进行运算,包括:

位与(&),位或(|),位非(~),为异或(^),左移(<<),右移(>>)共六种。

5.赋值运算符

用于赋值运算,分为:

简单赋值(=)

复合算术赋值(+=,-=,*=,/=,%=)

复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

6.条件运算符

这是一个三目运算符,用于条件求值(?:)。

7.逗号运算符

用于把若干表达式组合成一个表达式(,)。

8.指针运算符

用于取内容(*)和取地址(&)两种运算。

9.求字节数运算符

用于计算数据类型所占用的字节数(sizeof)。

10.特殊运算符

有括号(),下标[],成员(→,.)

1.C的数据类型

基本类型,构造类型,指针类型,空类型

2.基本类型的分类及特点

类型说明符字节数值范围

字符型char 1 C字符集

基本整型int 2-32768~32767

短整型short int 2-32768~32767

长整型 long int 4-214783648~214783647

无符号型 unsigned 2 0~65535

无符号长整型 unsigned long 4 0~4294967295

单精度实型 float 4 3/4E-38~3/4E+38

双精度实型 double 8 1/7E-308~1/7E+308

3.常量后缀

L或l长整型

U或u无符号数

F或f浮点数

4.常量类型

整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。

5.数据类型转换

a自动转换

在不同类型数据的混合运算中,由系统自动实现转换,由少字节类型向多字节类型转换。不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。

b强制转换

由强制转换运算符完成转换。

6.运算符优先级和结合性

一般而言,单目运算符优先级较高,赋值运算符优先级低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值

7.表达式

表达式是由运算符连接常量、变量、函数所组成的式子。每个表达式都有一个值和类型。表达式求值按运算符的优先级和结合性所规定的顺序进行。

表示输出类型的格式字符格式字符意义

d以十进制形式输出带符号整数(正数不输出符号)

o以八进制形式输出无符号整数(不输出前缀O)

x以十六进制形式输出无符号整数(不输出前缀OX)

u以十进制形式输出无符号整数

f以小数形式输出单、双精度实数

e以指数形式输出单、双精度实数

g以%f%e中较短的输出宽度输出单、双精度实数

c输出单个字符

s输出字符串

标志字符为-、+、#、空格四种,其意义下表所示:

标志格式字符标志意义

-结果左对齐,右边填空格

+输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号

#对c,s,d,u类无影响;对o类,在输出时加前

缀o对x类,在输出时加前缀0x;对e,g,f类当结果有小数时才给出小数点

格式字符串

格式字符串的一般形式为:%[*][输入数据宽度][长度]类型其中有方括号[]的项为任选项。各项的意义如下:

1.类型

表示输入数据的类型,其格式符和意义下表所示。

格式字符意义

d输入十进制整数

o输入八进制整数

x输入十六进制整数

u输入无符号十进制整数

f或e输入实型数(用小数形式或指数形式)

c输入单个字符

s输入字符串

转义字符

转义字符是一种特殊的字符常量。转义字符以反斜线”\”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“\n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。

常用的转义字符及其含义

转义字符转义字符的意义

\n回车换行

\t横向跳到下一制表位置

\v竖向跳格

\b退格

\r回车

\f走纸换页

\\反斜线符”\”

\’单引号符

\a鸣铃

\ddd 1~3位八进制数所代表的字符

\xhh 1~2位十六进制数所代表的字符

广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表2.2中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\101表示字?quot;A”,\102表示字母”B”,\134表示反斜线,\XOA表示换行等。转义字符的使用

在C语言中,对变量的存储类型说明有以下四种:

auto自动变量

register寄存器变量

extern外部变量

static静态变量

自动变量和寄存器变量属于动态存储方式,外部变量和静态变量属于静态存储方式。在介绍了变量的存储类型之后,可以知道对一个变量的说明不仅应说明其数据类型,还应说明其存储类型。因此变量说明的完整形式应为:存储类型说明符数据类型说明符变量名,变量名…;例如:

static int a,b;说明a,b为静态类型变量

auto char c1,c2;说明c1,c2为自动字符变量

static int a[5]={1,2,3,4,5};说明a为静整型数组

extern int x,y;说明x,y为外部整型变量

与指针有关的各种说明和意义见下表。

int*p; p为指向整型量的指针变量

int*p[n]; p为指针数组,由n个指向整型量的指针元素组成。

int(*p)[n]; p为指向整型二维数组的指针变量,二维数组的列数为n

int*p() p为返回指针值的函数,该指针指向整型量

int(*p)() p为指向函数的指针,该函数返回整型量

int**p p为一个指向另一指针的指针变量,该指针指向一个整型量。

指针变量的赋值

p可以有以下两种方式:

(1)指针变量初始化的方法 int a;

int*p=&a;

(2)赋值语句的方法 int a;

int*p;

p=&a;

(1)取地址运算符&

(2)取内容运算符*

c语言是有什么

想成为编程高手,那就耐心把以下文章看完!

一、为何要学编程?

每个人的动机不一样。大致有:

1、为了找个好工作;或为了有更好的机会和更好的发展。

2、看到别人超厉害,所以也想学。

3、实际工作中很多场合需要。

4、从小就立志做个程序员,做软件工程师。

5、振兴中国的软件事业。

。。。。。。

================================================

二、如何学编程?

1、多看好书。

差书误人子弟,不但浪费时间和精力,而且打击人的信心,差书使人很久都不会,让会让人怀疑自已的学习能力。

现在的书很多,但好书很少,特别是被大家公认很有价值的好书,更是少之又少。历经多年时间考验和市场风雨不残酷洗礼而仅存的巨著,更是极其稀少。中国历史上文学小说类书本多如牛毛,但仅存的巨著,也只不过<<红楼梦>>等四本名著而已,编程方面也是如此。

2、多动手。

这一点很重要。而且特别重要。“纸上得来终觉浅,绝知此事要躬行。”陆游的千古名句说的就是这个道理,并且同样适合于编程方面。

================================================

三、用什么语言最好?

这主要取决于应用领域,每种语言都有自已的长处和不足。

1、汇编语言和C语言在单片机及工控领域用较多。另外C语言也是一种通用语言,是学C++/c#的起点。

2、C++系统编程等多个方面,最常用的编译器是VC。

3、C#/java网络编程方面新兴的。

4、VB通用。

5、还有Delphi等。。。。。。

个人建议:从未编过程的,就从学vb开始。有基础的可直接学c++/VC。

===================================================

四、有什么好书?

几年前,台湾著名技术作家侯捷先生曾经写过一篇影响很大的书评文章,叫做《MFC四大天王》。文章的意思是说在MFC的浩瀚书海中,只要认真研读和学习其中四本,就可以“五岳归来不看山”。侯先生虽以MFC为例,但是这个道理却同样适合于MFC之外的很多具体技术领域,这不能不说是一个有趣的统计现象。

通常在某一个具体细分的技术领域,会自然而然地出现3-5本顶级著作,它们彼此互相配合,形成一个完整的体系。对于学习者来说,只需要认真研读这几本书,就足以升堂入室。我乐于将这种现称为“四书五经现象”。对于读者来说,如果能够找到该领域中的“四书五经”,则无论在时间上还是金钱上都是最经济的选择。好书几本,胜过烂书几捆,这个体会想必大家都有。在此,帮助大家遴选各个技术领域里的“四书五经”。

编程的书可谓汗牛充栋,其中经典也是不泛其数,但绝大多数的过来人,都一致认为,要想很快的入门并尽快的投入到编程实践中,只要其中的四到五本也就够了,即只看经典中的经典,圣经级的书就可以了。

所谓活到老学到老,程序员是个终身学习的职业,要不断的看书,直到放弃编程的那一天。所以,您要读的好书也绝非以下推荐的这些书哟,呵呵。

一句话,由于我们的时间、精力、金钱都是有限的,如何以最小的代价换得最大的收获。

================================================================

五、经典好书分类热销榜

1、java

java编程语言(第三版)---java四大名著----James Gosling(java之父)

java编程思想(第2版)----java四大名著----Bruce Eckel

java编程思想(第3版)----java四大名著----------------Bruce Eckel

java 2核心技术卷I:基础知识(原书第7版)---java四大名著-----Cay Horstmann

java 2核心技术卷II:高级特性(原书第7版)----java四大名著-----Cay Horstmann

Effective java中文版------java四大名著--------Joshua Bloch

精通Struts:基于MVC的java Web设计与开发---孙卫琴

精通Hibernate:java对象持久化技术详解---孙卫琴

Tomcat与java Web开发技术详解------------孙卫琴

java与模式------------------------------阎宏

2、c#

C#程序设计-------Charles Petzold“windows编程泰山北斗”---C#语言“倚天屠龙双剑”

C# Primer中文版--------Stanley B.Lippman---C#语言“倚天屠龙双剑”

.NET框架程序设计(修订版)--------Jeffrey Richter“windows编程泰山北斗”---.NET平台四大天王

C# Windows程序设计----------Charles Petzold“windows编程泰山北斗”------.NET平台四大天王

.NET程序设计技术内幕-------------Jeff Prosise---.NET平台四大天王

.NET本质论--第1卷:公共语言运行库(中文版)--------Chris Sells---.NET平台四大天王

3、C++

C++程序设计语言(特别版)---c++八大金刚----Bjarne Stroustrup“C++之父”

C++ Primer(第3版)中文版----c++八大金刚---Stanley B.Lippman

C++ Primer(第4版)中文版----c++八大金刚---Stanley B.Lippman

C++标准程序库—自修教程与参考手册--c++八大金刚--Nicolai M.Josuttis

C++语言的设计和演化-----c++八大金刚----Bjarne Stroustrup“C++之父”

深度探索C++对象模型---c++八大金刚----Stanley B.Lippman

Essential C++中文版---c++八大金刚---Stanley B.Lippman

Effective C++中文版 2nd Edition-----c++八大金刚------Scott Meyers

More Effective C++中文版----c++八大金刚------Scott Meyers

C++编程思想(第2版)第1卷:标准C++导引--------Bruce Eckel

C++编程思想(第2版)第2卷:实用编程技术--------Bruce Eckel

C++程序设计--------------------------谭浩强

C++程序设计教程(第2版)--------------钱能

C++ Primer Plus(第五版)中文版---Stephen Prata

广博如四库全书The c++ programming language、c++ Primer

深奥如山重水复Inside the c++ object model

程序库大全The c++ standard libray

工程经验之积累Effective c++、More Effective c++、Exceptional c++

c++八大金刚:

1、Essentital c++---lippman---C++之父,旁枝暂略,主攻核心,轻薄短小,初学者

2、The c++ programming language----C++之父,技术权威,用词深峻,思想深远,c++百科全书代表,圣经。

3、c++ Primer----lippman---纵横书市十数年,c++最佳教本,c++百科全书代表。

4、Inside the c++ object model-----lippman----揭示c++底层,非常好,非常难。

5、Effective c++-----通过50个编程实例,展示专家经验,行文有趣,深处浅出。

6、More Effective c++----通过35个编程实例,展示专家经验,行文有趣,深处浅出。

7、The c++ standard libray---c++标准库的百科全书。

8、设计模式:可复用面向对象软件的基础------good!

4、c

C程序设计语言(第2版·新版)---C语言“倚天屠龙双剑”---Brian W.Kernighan“C语言之父”

C Primer Plus中文版(第五版)--------C语言“倚天屠龙双剑”---Stephen Prata

C程序设计(第三版)---------------------------谭浩强

C语言大全(第四版)---------------------------HERBERT SCHILDT

C语言接口与实现:创建可重用软件的技术-------------DAVID R.HANSON

C语言参考手册(原书第5版)--------------------------Samuel P.Harbison

C程序设计教程---------------------------------H.M.Deitel/P.J.Deitel

C陷阱与缺陷-----------------------------------Andrew Koenig

5、VB

Visual Basic.NET技术内幕-----VB编程三剑客-----------Francesco Balena“vb首席大师”

Windows程序设计-Visual Basic.NET语言描述--VB编程三剑客-----Charles Petzold“windows编程泰山北斗”---

.NET框架程序设计:Visual Basic.NET语言描述--VB编程三剑客--Jeffrey Richter“windows编程泰山北斗”---

Visual Basic 6编程技术大全------------------------Francesco Balena“vb首席大师”

Visual Basic.NET从入门到精通-------------------------Petroutsos,E.

高级VISUAL BASIC编程-----------------------------------MATTHEW CURLAND

6、Delphi

Inside VCL(深入核心——VCL架构剖析)----------李维

Delphi 7高效数据库程序设计--------------李维

面向对象开发实践之路(Delphi版)----------李维

7、VC

Windows程序设计(第5版)-----Charles Petzold“windows编程泰山北斗”---

Windows核心编程----------Jeffrey Richter“windows编程泰山北斗”---

Windows高级编程指南---------Jeffrey Richter“windows编程泰山北斗”---

深入浅出MFC(第二版)-----“MFC四大天王”-------侯捷

MFC Windows程序设计(第2版)---MFC四大天王”---------Jeff Prosise

Visual C++技术内幕(第4版)--MFC四大天王”--------David Kruglinski

深入解析MFC-------------MFC四大天王”-----------George Shepherd

Visual C++.NET技术内幕(第6版)-MFC四大天王”------------David Kruglinski

8、vf

Visual Foxpro程序设计参考手册-------------------张洪举

专家门诊——Visual FoxPro开发答疑160问-------------------张洪举

Visual FoxPro 6.0/9.0解决方案与范例大全-------------------张洪举

Visual FoxPro软件开发模式与应用案例-------------------张洪举

9、黑客

应用密码学(协议算法与C源程序-----------Bruce Schneier

网络信息安全的真相-----------Bruce Schneier

黑客大曝光:网络安全机密与解决方案(第5版)--------STUART MCCLURE

软件加密技术内幕------------看雪学院

加密与解密——软件保护技术与完全解决方案------------看雪学院

加密与解密(第二版)--------段钢

10、汇编

Intel微处理器结构、编程与接口(第六版)---------Barry B. Brey

80*86、奔腾机汇编语言程序设计---------Barry B. Brey

Windows环境下32位汇编语言程序设计(第2版)-----------罗云彬

IBM-PC汇编语言程序设计(第2版)本书是国内优秀教材--------沈美明温冬婵

IBM PC汇编语言程序设计(第五版)这本书籍是国外优秀教材-------PETER ABEL著,沈美明温冬蝉译

11、驱动开发

Windows WDM设备驱动程序开发指南------------------------------------ Chris Cant

Windows 2000/XP WDM设备驱动程序开发(第2版)--------------------------武安河

WINDOWS 2000/XP WDM设备驱动程序开发--------------------------------武安河

12、网络

计算机网络第四版中文版----网络编程三剑客--------------Andrew S.Tanenbaum

TCP/IP详解3卷本--------------------Richard Stevens----网络编程三剑客

UNIX网络编程2卷本--------------------Richard Stevens----网络编程三剑客

用TCP/IP进行网际互联-----------Douglas E. Comer

高级TCP/IP编程-------------------Jon C. Snader

C++网络编程-----------------------Douglas Schmidt

UNIX环境高级编程(第2版)--------------------Richard Stevens

13、算法

计算机程序设计艺术-------Donald.E.Knuth----------算法“倚天屠龙”双剑

算法导论-----------------Thomas H. Cormen--------算法“倚天屠龙”双剑

离散数学及其应用----------Kenneth H.Rosen

具体数学—计算机科学基础--------Donald.E.Knuth

14、图形编程

Windows图形编程----------------FENG YUAN--图形编程界的Charles Petzold之书

15、数据结构

数据结构 C++语言描述》58.00(Data Structures C++) William Ford,William Topp刘卫东沈官林

数据结构算法与应用-C++语言描述》49.00Sartej Sahni汪诗林孙晓东等机械工业出版社

16、软件工程

设计模式--可复用面向对象软件的基础

重构—改善既有代码的设计

17、操作系统

深入理解计算机系统(修订版)-------RANDAL E.BRYANT

18、Unix

UNIX网络编程卷I套接字联网API(英文版第三版

UNIX编程艺术

UNIX环境高级编程(英文影印第2版-----UNIX编程“圣经

UNIX环境高级编程(英文影印版)(第2版)

UNIX环境高级编程(第2版)

UNIX环境高级编程(第2版)---UNIX编程“圣经

UNIX网络编程第1卷:套接口API(第3版)

UNIX网络编程卷2:进程间通信(第2版)(英文影印版)

UNIX网络编程(第二版)第2卷:进程间通信

UNIX编程环境

UNIX网络编程卷I套接字联网API(英文版第三版

UNIX系统编程

UNIX环境高级编程

UNIX网络编程卷I套接字联网API(英文版第三版)

UNIX网络编程第1卷:套接口API(第3版)

UNIX网络编程(第二版)第2卷:进程间通信

UNIX网络编程卷2:进程间通信(第2版)(英文影印版)

UNIX网络编程(第2版)第1卷:套接口API和X/Open传输接口API

UNIX网络编程(卷1):连网的APLS:套接字与XTI(第二版)(英文影印版)

UNIX环境高级编程

Unix技术手册

19、Linux

Linux内核设计与实现

Linux内核完全注释

LINUX内核分析及编程

GNU/Linux编程指南(第二版)

Linux设备驱动程序(第三版)

嵌入式设计及Linux驱动开发指南——基于ARM 9处理器

Linux设备驱动程序第三版(英文影印版)

Linux内核设计与实现(第2版)

Linux内核设计与实现(英文影印版)(第2版)

linux技术手册

20、游戏编程

Windows游戏编程大师技巧(第二版

游戏之旅--我的编程感悟

OpenGL超级宝典:第三版

OpenGL编程指南(第四版)

java游戏高级编程

J2ME手机游戏编程入门

游戏之旅——我的编程感悟

游戏开发中的人工智能(英文影印版)

3D游戏:卷2动画与高级实时渲染技术

面向对象的游戏开发

java游戏高级编程

3D游戏编程大师技巧

游戏编程精粹

面向对象的游戏开发

3D游戏卷1:实时渲染与软件技术

3D游戏:卷2动画与高级实时渲染技…

J2ME手机游戏编程入门

Direct3D游戏编程入门教程(第二版…

21、移动开发

Windows Mobile手机应用开发

SYMBIAN OS C++手机应用开发

Windows Mobile手机应用开发--傅曦齐宇徐骏

SYMBIAN OS C++手机应用开发(第2卷)------------------RICHARD HARRISON著,周良忠王伯欣译

SYMBIAN OS C++手机应用开发---------------RICHARD HARRISON著,周良忠译

Windows CE.net内核定制及应用程序开发---------周毓林宁杨陆贵强付林林

嵌入式系统Windows CE开发技巧与实例--傅曦

Palm OS编程实践---绝版

22、单片机

单片机轻松入门----------------------------------周坚(平凡老师)

单片机典型模块设计实例导航-----------------------求是科技

例说8051----------------------------------------张义和陈敌北

KEIL CX51 V7.0单片机高级语言编程与ΜVISION2应用实践-----徐爱钧

单片机应用程序设计技术(修订版)--------------------周航慈

8051单片机实践与应用-------------------------------吴金戎

MCS-51系列单片机实用接口技术---------------------李华

23、串并口通讯

Visual C++/Turbo C串口通信编程实践------------------龚建伟

VISUAL BASIC与RS-232串行通信控制(最新版)----------范逸之

24、电子

无线电识图与电路故障分析轻松入门(第二版)-------------------胡斌

无线电元器件检测与修理技术轻松入门(第二版)-------------------胡斌

图表细说电子技术识图-------------------胡斌

图表细说电子元器件-------------------胡斌

图表细说元器件及实用电路-------------------胡斌

================================================================

六、怎样成为一名程序员

通过以下4个阶段的训练,没有任何编程基础人就可以成为一名普通的程序员。

第一阶段:掌握一种编程语言

学习内容:学习任意一种主流的编程语言。例如C++语言。

学习目标:熟练掌握一种语言的语法和基本的编程技巧。

学习时间:3个月左右

注意事项:编程语言和编程工具是两回事情,编程语言是指C++、Basic、Object Pascal等程序设计语言,它们是像汉语、英语一样的抽象的语法规则,编程工具是指Visual C++ 6.0、Visual Basic 6.0、Delphi 7.0等包括了源代码编辑器、程序编译器在内的集成化、可视化的软件开发工具。C++源程序可以在Visual C++ 6.0里编写,也可以在记事本里编写,而同一个C++源程序可以用Visual C++ 6.0编译、执行,也可以用C++ Builder 5.0编译、执行,所以: C++不等于 Visual C++ 6.0

第二阶段:掌握一种编程工具

学习内容:学习任意一种主流的编程工具。注意编程工具要和第一阶段学习的编程语言一致,例如你学习的编程语言是C++,那么编程工具要选Visual C++ 6.0或者C++ Builder 5.0。

学习目标:熟练掌握这种编程工具基本用法,例如:菜单、组件、程序跟踪调试、编写Windows程序等。

学习时间:3个月左右

注意事项:这个阶段侧重编程工具的使用,同时进一步熟习编程语言,最后达到能熟练编写各种基本的Windows程序。

第三阶段:掌握“算法与数据结构”这门课程

学习内容:算法与数据结构,推荐许卓群的《数据结构》,高等教育出版社出版。

学习目标:熟练掌握各种常用的算法与数据结构

学习时间:4个月左右

注意事项:这是一门不可或缺的软件开发课程,曾经有一本经典计算机专业书籍叫做《数据结构+算法=程序》,这说明了数据结构和算法的重要性。它能帮我们建立良好的程序分析与设计能力。

第四阶段:实现一个模拟的小型软件项目

学习内容:软件项目的开发过程

学习目标:掌握软件项目的基本开发过程和方法

学习时间:4个月左右

注意事项:自己完成一个模拟的小型软件项目,强烈推荐做一个MIS(管理信息系统)软件,参考用书推荐“中小型信息管理系统开发实例系列丛书”,人民邮电出版社,它的例子详实有效,以它为基础再加以扩展,就可以做出实用的MIS软件来。此丛书包括多种开发工具,大家可以选择适合自己的:《VISUAL FOXPRO6.0数据库系统开发实例导航》《java数据库系统开发实例导航》《VISUAL BASIC数据库系统开发实例导航》《VISUAL C++6.0数据库系统开发实例导航》《ASP.NET数据库管理系统开发实例导航》《DELPHI数据库系统开发实例导航》《POWERBUILDER 8.0数据库系统开发实例导航》。

最后将完成的模拟软件刻成光盘,作为自己的作品去面试,以此踏上自己光辉的职业程序员之路!

C语言学习

教了多年《C程序设计》课程,大多学生觉的这门课程难学。其实,按照我们现在的教学大纲和教学要求,只要同学们掌握一些方法,克服心理上畏难、不轻言放弃,是完全可以学好的。

《C程序设计》的内容很丰富,按照我们现在的教学大纲,教学的主要内容是基础知识、四种结构的的程序设计、函数与数组的应用和一些简单的算法。在学习时,同学们应该把主要精力放在这些部分,通过实践(练习和上机调试等熟练掌握。当然,在初学C语言时,可能会遇到有些问题理解不透,或者表达方式与以往数学学习中不同(如运算符等),这就要求不气馁,不明白的地方多问多想,鼓足勇气进行学习,待学完后面的章节知识,前面的问题也就迎刃而解了,这一方面我感觉是我们同学最欠缺,大多学不好的就是因为一开始遇到困难就放弃,曾经和好多同学谈他的问题,回答是听不懂、不想听、放弃这样三个过程,我反问,这节课你听过课吗?回答又是没有,根本就没听过课,怎么说自己听不懂呢?相应的根本就没学习,又谈何学的好?

学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最重要的。比如:在C语言中最典型的是关于结构化程序设计构思,不管是那种教材,一开始就强调这种方法,这时也许你不能充分体会,但是学到函数时,再回头来仔细体会,温故知新,理解它就没有那么难了。学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。

那么,我们如何学好《C程序设计》呢?

一.学好C语言的运算符和运算顺序

这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。

先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1~ 15,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序。下面我们通过几个例子来说明:

(1) 5*8/4%10这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算5*8=40,然后被4除,结果为10,最后是%(求余数)运算,所以表达式的最终结果为10%10= 0;

(2)a= 3;b= 5;c=++ a* b;d=a++* b;

对于c=++a*b来说,按表中所列顺序,++先执行,*后执行,所以++ a执行后,a的值为4,由于++为前置运算,所以a的值4参与运算,C的值计算式为4*5=20而不是3*5=15了;而对于d=a++*b来说,由于a++为后置运算,所以a值为4参与运算,使得d的值仍为20,而a参与运算后其值加1,值为5。这个例子执行后,a的值为5,b的值为5,c的值为20,d的值也是20;

(3)(a= 3,b= 5,b+= a,c= b* 5)

例子中的“,”是逗号结合运算,上式称为逗号表达式,自左向右结合,最后一个表达式的结果值就是逗号表达式的结果,所以上面的逗号表达式结果为40,a的值为3,b的值为8,c的值为40。

(4)a=5;b=6;c=a>b?a:b;

例中的a>b?a:b是一个三目运算,它的功能是先做关系运算a>b部分,若结果为真,则取问号后a的值,否则取冒号后b的值,因此c的值应该为6,这个运算可以用来代替if…else…语句的简单应用。

二.学好C语言的四种程序结构

(1)顺序结构

顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。

例如;a= 3,b= 5,现交换a,b的值,这个问题就好象交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c= a; a= b; b= c;执行结果是a= 5,b= c= 3如果改变其顺序,写成:a= b; c= a; b= c;则执行结果就变成a= b= c= 5,不能达到预期的目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s= 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。

(2)分支结构

顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。

学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。下面我介绍几种基本的分支结构。

①if(条件)

{

分支体

}

这种分支结构中的分支体可以是一条语句,此时“{}”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。如:要计算x的绝对值,根据绝对值定义,我们知道,当x>=0时,其绝对值不变,而x<0时其绝对值是为x的反号,因此程序段为:if(x<0) x=-x;

②if(条件)

{分支1}

else

{分支2}

这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求ax^2+bx+c=0的根

分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下:

d=b*b-4*a*c;

if(d>=0)

{x1=(-b+sqrt(d))/2a;

x1=(-b-sqrt(d))/2a;

printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2);

}

else

{r=-b/(2*a);

i=sqrt(-d)/(2*a);

printf(“x1=%8.4f+%8.4fi\n”r, i);

printf(“x2=%8.4f-%8.4fi\n”r,i)

}

③嵌套分支语句:其语句格式为:

if(条件1){分支1};

else if(条件2){分支2}

else if(条件3){分支3}

……

else if(条件n){分支n}

else{分支n+1}

嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句。

④switch开关语句:该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用。

(3)循环结构:

循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do–while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、do…while、for三种循环。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。

在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的。

顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,我们均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。

(4)模块化程序结构

C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。因些,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。

三.掌握一些简单的算法

编程其实一大部分工作就是分析问题,找到解决问题的方法,再以相应的编程语言写出代码。这就要求掌握算法,根据我们的《C程序设计》教学大纲中,只要求我们掌握一些简单的算法,在掌握这些基本算法后,要完成对问题的分析就容易了。如两个数的交换、三个数的比较、选择法排序和冒泡法排序,这就要求我们要清楚这些算法的内在含义,其中选择法排序和冒泡法排序稍难,但只要明白排序的具体过程,对代码的理解就不难了。如用选择法对10个不同整数排序(从小到大),选择法排序思路:设有10个元素a[1]~a[10],将a[1]与a[2]~a[10]比较,若a[1]比a[2]~a[10]都小,则不进行交换,即无任何操作;若a[2]~a[10]中有一个比a[1]小,则将其中最大的一个(假设为a)与a[1]交换,此时a[1]中存放了10个中最小的数。第二轮将a[2]与a[3]~a[10]比较,将剩下9个数中的最小者a与a[2]交换,此时a[2]中存放的10个数中第2小的数;依此类推,共进行9轮比较,a[1]到a[10]就已按从小到大的顺序存放。即每一轮都找出剩下数中的最小一个,代码如下:

for(i=1;i<=9;i++)

for(j=i+1;j<=10;j++)

if(a>a[j]

{temp=a;

a=a[j];

a[j]=temp;

}

当我们把握好上述几方面后,只要同学们能克服畏难、厌学、上课能专心听讲,做好练习与上机调试,其实C语言并不难学。

参考资料:

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

现在学php过时了吗(php是不是过时了)游戏源代码 好玩的代码大全