『壹』 如果我想学C语言编程,回扩及到其他的内容吗
学习任何知识,一步一步,总是最好的方法。不幸的是,很多人知道真相,却一直想要去所谓的捷径。如果你是刚开始中学生学习编程,或者你是一个刚进入大学计算机科学学院的本科生,或者你是一个对于初学者在计算机领域有所建树的决心,你必须渴望知道,学习计算机技术,究竟应该从哪里开始。
我的建议是:数学,英语,C语言。
数学和英语的重要性,我并不需要强调的是,我们从幼儿园开始学习他们,把他们在任何时候都在最重要的位置,无论你是否了解电脑。
为什么C语言是如此的重要呢?我们谈论的是从一开始的学习方法。描述在书的事情,如果他们不经过我们的手,它是很难被完全消化吸收。计算机组成原理来解释浮点格式,如果我们可以看到和分析表示的浮点数在内存或注册,它是一千倍比纸更结实;数据结构和算法似乎很难,如果可以的话刚刚涉水通过一本书,书上的例子,然后完成练习,你可以掌握算法,操作系统原理不仅是原则,只能做一些核心方面的实验,才能真正有深刻的理解;许多时髦的技术,比如,PHP,AJAX,JavaEE的。 NET等等等等,很多专家学习技术,只需要很短的时间,不用说,他们肯定是在C语言的主人。 C语言几乎是普遍的工具,所有的计算机技术,包括计算机的基本理论。不精通在C语言决心,不涉足计算机领域。
为什么是C语言,而不是+ +而不是Java是不是其他?因为C语言是最简单的。你需要掌握一门语言工具,但也许并不需要大量的“面向对象”的概念,“模板”,“函数重载”等。足够低级别的C语言,非常,非常接近底层结构的计算机,不会让你迷失在浩瀚海洋的概念。除了“指针”,C语言没有一个真正意义上的困难,“指针”,它的关键是了解计算机基本结构的精髓。
初学者不必去想应该学到什么,比如C语言的专家,你就会知道下一步该怎么做去。如果你有兴趣在操作系统内部,你可以尝试看看在Unix的内核,除了C语言,汇编语言和保护模式,你还需要一些知识;,C语言是足够的,如果你有兴趣的算法,那么恭喜你,你使用;如果你有兴趣在Windows编程中,Windows编程看,笔者清楚地告诉你只需要基础的C语言“,如果你有兴趣在任何其他语言,去了,但建议先学习C + +的,因为你需要一些知识的“面向对象”。
学习C语言不是一朝一夕的事情,但并不需要花十年以掌握,了解如何最大限度地减少成本和精通C语言是本文的主题。请注意,即使是“最低成本”,也不是任何快捷方式,但大部分收益在最短的时间内,也意味着你需要通过一个艰难的过程。
第一,学习阅读,或者更确切地说,没有读一本好书
所有初学者面临的第一个问题是:如何选择材料。良好的开端是成功的一半,一个优秀的教材乘数是一个关键因素,不幸的是,学校通常会帮你指定一个非常糟糕的C语言教科书,幸运的是,你也可以选择再次
BR />著名教授谭浩强的“C程序设计语言”,说的发行量超过400万,据我所知,很多学校都会推荐这本书作为一个C语言的课本,我的名字与教授(叹号宇)一个字,但我坚定的黑色,他的书,这本书不是写计算机科学专业的学生,但看到谁需要测试计算机等级考试等专业的学生,这本书的主要缺点是:例如计划是非常不专业,你不能教你的程序的设计应掌握的思维方式,节目风格相当不错,您将开发一个乱写代码的恶习;太多的错误,有人指出,这本书数以百计的错误,他们中的许多关键概念上的错误,那么,这本书中,我不想说太多,有兴趣的你可以看看网络:)
Kernighan和Ritchie的“C程序设计语言”(中译本“C + +程序设计语言“)被称为经典中的经典,但许多旧的过时的,和C语言的标准相距甚远,我们必须看看最新的版本,或者不愿意看到,另外,即使是最经典和最权威的一本书,是没有办法详尽,所以手站在一个“C语言参考手册,是非常必要的。 C语言参考手册“是”C参考手册“,是C语言标准的详细描述,包括大多数的C标准库函数,视为C语言的标准是最好的工具的细节。顺便说一下,最新的”按照C89标准C语言程序设计“修订,”C语言参考手册介绍了C99标准,这两个可能会有所不同,建议按照C99标准学习。除了作为一个C指针,写是相当不错的,英文名称为“C”的指针,强调重要性的指针可以看作是这本书的一个特点。但是这本书是不是很适合初学者,如果你曾经学过C语言,一些C语言基础,但还不是很扎实,那么你可以尝试这本书。我相信,只要你理解了指针,C语言已经不再是一个谜。
如果涉水通过一个C语言教材,想要走的更远,那么你就看两本书。首先是“C陷阱与缺陷”(中译本“C陷阱与缺陷”),薄薄的小册子,内容是非常,非常有趣。请注意,这本书是20年前写的,他所提到的C语言的许多缺陷已得到改善,但并不是一件坏事,能够了解一些历史。然后你就可以挑战“C专家编程”(中译本“C专家编程”),这本书顾名思义,这本书相当困难的,一旦你已经仔细阅读并透彻理解,你可以放心地写简历精通C语言。
记住一个原则,不读,但不能读了这本书,它是对生命的浪费。如果你不明白,那么你必须在缺少一些必要的基本知识。在这一点上,你必须要仔细分析他们需要添加什么,然后去书店找这些书籍。补充基本完成学习回来,真正做到少花钱多办事。
UNIX / Linux或Windows上,这是一个大问题
不同的编程环境会带来不同的程序员的思维方式。 Windows程序员大多依赖集成开发环境,如Visual Studio,Unix程序员更心爱的Makefile与控制台上。显然,集成开发环境更容易使用,学习C语言在Windows上,只需要一些基本的Visutal C + +工具栏按钮就可以开始写你好,世界! Unix下,你需要一些控制台操作的基本知识。有人可能会认为Unix的环境更简洁,但习惯的力量是伟大的,每个人都熟悉的Windows,Unix系统专门的设备,以学习C语言的基本操作,似乎有点不值得。
对于Windows只知道如何基本操作,甚至DOS新手不知道任何事情,做一些有趣和有意义的事情是最重要的尽快。比学习ls命令,猫等。此外有趣的C语言编写的一个小程序,我们必须把重点放在了C语言本身,不得不暂时忽略一些东西,比如编译链接的Makefile措辞等等等等。
所以我建议初学者应该的Visual C + + 6.0(没有的Visual C + +。NET)或开发C + +作为主要的学习环境,并且不使用的IDE技巧过多纠缠,因为在未来,你必须打开的Unix环境。的Visual C + + 6.0中使用调试非常方便也很直观,但默认的编译器不支持C标准而开发的C + +使用gcc编译器支持C99标准。使用顺便说一句,很多大学的C语言课程还在使用Turbo C 2.0的实验环境,这是相当不可取的,原因之一是TC 2.0 C标准几乎没有支持,其二是TC 2.0编译器程序16了解32位程序在未来将造成很大的困难(当然,与,DJGPP和可以使TC 2.0编译32位程序,但它太复杂了)。
你完成一个C语言的教科书,你必须到Unix平台继续学习,几乎所有的C语言教程是基于Unix平台上(如“C专家编程)。转换过程是痛苦的,你需要面对的各种复杂的命令,从Windows平台的思维方式是完全不同的,但痛苦是值得的。Unix和C是共生的,Unix的思维方式和习惯更符合方式的C语言的思维和习惯。在Unix下,你可以找到无数优秀的源代码,让您享受阅读,您可以轻松地查看联机手册库函数,你也可以看到最好的代码风格(当谈到代码风格,我会专门写一篇文章中详细描述)。
可以概括起来就是一句话:初学C语言,建议使用Windows系统和集成开发环境,在准备“大师”的努力,请转向Unix平台。
一切都准备好了,你是东风
本书已选定,环境配置完成俗话说,一切都准备好了,只有你自己的努力。从前言的书,仔细阅读材料在手,很多人的阅读开始,从第一章的样子,这是错误的做法。简介整本书的大体介绍,笔者通常会告诉你需要什么基础,能够成功地读了这本书,它可以帮助您测试的基础知识已经有了。看完序文,还可以浏览目录看这本书的整体结构的方式来安排自己的学习计划。
学习C语言,这是必须要注意每一个细节,这本书必须亲自敲一次的情况下代码,编译和运行一致,才能被视为成品学校输出的一个例子都涉及到这本书说,如果没有,要仔细找原因出在书中的一些例子,他们还创造了一些例子,如学习操作优先级,你可以写几个相同的表达式括号中的不同位置,看看有哪些不同的行为,如* P +(P)+,例如,A = B = C,(= b)== C =(B == C),依此类推。书上的例子,自己的副本,改造后的例子,“创造”自己的例子,应该仔细地分类保存在源代码中写简短的笔记,这个例子的意图。
例如练习,我建议初学者,所有的练习都是独立做一遍,然后控制的答案代码,看看自己的代码,如果这些缺陷,然后尝试自己的代码。很多人不重视习题,这是极大的错误,因为笔者介绍了一些重要的真理在练习,而不是简单地测试前面的知识。
>也许你认为学习是太慢了,这是不正确的。细致的学习就不必回去,等你学到后面才发现自己前面没搞清楚,真是得不偿失。一般情况下,读整本书后,你应该完成的几千甚至几十万行代码,无论是写上,继续学习丰富原封不动的照搬书,或你自己的突发奇想,在我自己的例子,阅读“Windows核心编程”(我只看过3/4的内容)时,除了转录代码,也写了很多例子,一共有5574行(与WC UNIX下统计工具),后失效了好几天,我已经记不清了Windows系统编程,但只要花几分钟翻出代码看,将重新了然于胸。所谓好记性不如烂笔头,就是这个道理
仔细阅读,认真抄写源代码,独立完成的练习,加上进一步的实验,并将把所有的代码,成为自己的经验和财富,绝对硬,绝对是事半功倍的。当然,这种方法只适合学习需要精通技术,如果不学习C语言,你有特定的条件。
写道:最后,有没有提到的是非常,非常重要的一点 - 代码风格,必须从一开始就强迫自己学习模仿最好的编码风格。因为代码风格太重要内容实在是太多了,我将使用一个特殊的文章,详细讨论了,我们所关心的“道路程序员 - 代码风格。
引用:<a href="http://tb.blog.csdn.net/TrackBack.aspxPostId=1649345",http://tb.blog.csdn净/ TrackBack.aspx的?信息ID = 1649345
『贰』 计算机科学与技术专业课程有哪些 主要学什么
这是计算机类最传统的专业,主要课程有数据结构、计算机组成原理、网络原理、编译原理、操作系统及各种开发程序等。
计算机科学与技术是国家一级学科,下设信息安全、软件工程、计算机软件与理论、计算机系统结构、计算机应用技术、计算机技术等专业。
公共课程:数学(高等数学、线性代数、概率论与数理统计、离散数学、数值分析)、政治(马克思主义思想概论、毛泽东思想概论与中国特色社会主义思想、思想道德修养与法律基础、中国近现代史纲要)、大学英语、体育。
专业基础课程:电路原理、模拟电子技术、数字逻辑、微机原理、汇编语言、操作系统原理、编译原理、算法与数据结构、面向对象方法、C语言/c++语言等。
专业方向课程:计算机数据库原理、Java语言、图形学、人工智能、多媒体技术、网络安全、人机交互、无线互联网技术、软件开发方法、高性能技术、系统仿真和虚拟现实等。
离散数学、编译原理、电子技术基础、C语言程序设计、数据结构、计算机组成原理、操作系统、计算机网络、数据库原理及应用、软件工程、汇编语言与接口技术、面向对象程序设计、Java高级编程、Web前端技术、人工智能、计算机图形学等。
『叁』 汇编语言编写一个简单的程序(我学的是汇编语言与接口技术)
;请从键盘任意输入一个0-59内的数,每隔一秒自加一,当加到59后跳到0从新开始自加
DATAS SEGMENT
;此处输入数据段代码
MESS0 DB 'Error char!','$' ;异常信息
MESS1 DB 'Input overflow!','$'
MESS2 DB 'Must be 0~59!','$'
SEPRA DB 0DH,0AH,'$' ;分隔符
TIME DB 0
MADDR DW OFFSET MESS0,OFFSET MESS1,OFFSET MESS2 ;异常信息地址
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
DW 64 DUP (?)
TOP LABEL WORD
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
MAIN PROC FAR
;异常处理
L0:
MOV AH,9
LEA DX,SEPRA
INT 21H
ADD SI,SI
MOV DX,MADDR[SI]
INT 21H
LEA DX,SEPRA
INT 21H
INT 21H
XOR BX,BX
JMP SHORT L1 ;重新输入
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,STACKS
MOV SS,AX
LEA SP,TOP
;此处输入代码段代码
MOV BH,10 ;进制数
MOV DI,60 ;模数
XOR BL,BL
L1:
MOV AH,1
INT 21H
CMP AL,' '
JE EXIT ;输入空格符,则程序结束
CMP AL,0DH
JE L2 ;输入回车符,则数字输入结束
MOV SI,0
CMP AL,'0'
JB L0
CMP AL,'9'
JA L0
MOV SI,1
AND AL,0FH
XCHG AL,BL
MUL BH
JC L0 ;乘法溢出,数字大于255
ADD BL,AL
JC L0 ;加法溢出,数字大于255
JMP SHORT L1
L2:
MOV SI,2
CMP BL,59
JA L0 ;输入数字大于59
L3:
;取系统时间
MOV AH,2CH
L4: INT 21H
CMP TIME,DH
JE L4
MOV TIME,DH ;如果系统时间更改了,就进行输出
;输出数字
MOV AL,BL
CBW ;AL扩展为AX
CALL SHOWCHAR
;输出分隔符
LEA DX,SEPRA
MOV AH,9
INT 21H
;数字自加1
INC BL
;数字对60取模
MOV AL,BL
CBW
CWD
DIV DI ;(DI)=60
MOV BL,DL
;延时1秒
;CALL DELAY
;判断是否有键盘输入,如果有,则程序结束
MOV AH,6
MOV DL,0FFH
INT 21H
JZ L3
EXIT:
MOV AH,4CH
INT 21H
MAIN ENDP
;传入参数:AL,一个无符号整数;BH,作为全局变量始终为10
;返回参数:无
;功能:显示AX对应的十进制数
SHOWCHAR PROC NEAR
PUSH DX
PUSH CX
XOR CX,CX ;记录十进制位数
L6:
XOR AH,AH
DIV BH
MOV DL,AH
XOR DH,DH
ADD DX,30H
PUSH DX
INC CX
CMP AL,0
JNE L6
MOV AH,2
L7:
POP DX
INT 21H
LOOP L7
POP CX
POP DX
RET
SHOWCHAR ENDP
CODES ENDS
END START