问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

深入学习C语言的具体步骤

发布网友 发布时间:2022-03-01 05:48

我来回答

9个回答

热心网友 时间:2022-03-01 07:17

①、对于你能写这么长的问题描述,说明你很认真。

②、你的目的性较强,但是你也想有更加明确的目标,我可以给你讲一下怎么自己去寻找目标和路线以及怎样学习。

③、计算机专业领域一共有几个大方向,十几个分支方向,而每个分支方向又有几十个小方向,每一个方向的深入学习与熟练到一定火候都不是一朝一夕,互相之间也不是完全没联系的,但是你现在就应该选择一个大方向并在其中的一个小方向内深入(为什么要这么早就选择具体的分支方向?后面说)。

④、这里列出计算机的几个大方向(非编程开发类的我就不说了):
基本方向:
1、单片机、嵌入式方向
2、网络编程:涉及到服务器程序、客户端开发、脚本设计等。
3、系统编程:基础API开发、桌面开发、系统程序开发、服务程序
4、图形学:3D、2D、图像识别、人脸识别
5、音频:语音识别、音频解码、音频软件
6、编译原理:编译器设计、脚本解释器、虚拟机、非自然语言翻译系统
7、应用层开发:利用高层语言去开发表层应用
8、安全:反工程、病毒、反病毒、木马、反木马、软件破解、软件加壳
附加方向:
8、人工智能:遗传算法、神经网络、灰色系统等等
9、游戏设计:各种游戏引擎设计以及业务逻辑设计等

⑤、基本方向是你一定要选的,附加方向只是基于基本方向的一些锦上添花,但是不管你怎么选,最开始某些东西一定要深入而不是只是懂就够(当然你对自己要求似乎不会很低),我把这个列出来:

数据结构:下面其他理论的基础。
操作系统原理:理解操作系统的架构和细节,你才能对以后关于多线程、文件管理、内存管理、指令优先级等有一个正确理解和运用。
编译原理:能够升华你对计算机编程语言的理解,对以后出现的各种编译、解释、兼容、移植、优化、并发与并行算法等有一个深入理解。
数据库系统原理:这个是进入公司都要会的,也是大型软件开发的基础。
软件工程:这个是你能够在经验不足还能保证大项目正常完成的理论基础。
网络技术:这个是必须学的,因为目前几乎没有一款装几率很高的软件或者平台跟网络无关。

数学的话,主要是:离散数学、线性代数、高等数学、计算机图形学、概率论

以上几个基础就是你成为一个融汇各个主要分支牛人必须学的(当然不是指理论,而是理论+实践编码能力)

⑥以上都是大的基础,要一一攻破并深入学习,虽然网络时代计算机专业知识爆炸式的增长,但是以上几个基础掌握后,会发现,以后的什么新的理论和技术都是基于这些大基础,你就很容易理解了。

⑦我为什么开头不讲你要具体学什么怎么顺序学呢?因为那些技术你要掌握的话,根本可以自己解决,但是如果你由于兴趣,沉迷于一些自己可见的小范围技术的话,那么毕业后虽然也能找到不错的工作,薪水也可能高,但是不能成为一个大牛。

现在才开始讲学习顺序,虽然你说不要推荐书,不过我还是要用书来做顺序。
C语言是可以写很多核心和高级的东西,而不只是小东西,但是从你代码来看,居然用到了 goto,我不是说你那些程序用到GOTO有什么不好,而是一定要避免用GOTO,goto是错误之源,如果你有什么内容非要用到goto才能写到,说明你的编码技巧还有不少提高空间。

你的学习顺序应该是:
C:做一个超级马里奥出来,并能够读取文本脚本来更新关卡。
C++:写一个2D图形引擎,封装掉细节,实现面向对象设计和可复用设计,并且用到《设计模式》中提到的一些设计模式,这样才能算对C++有一个很好的掌握。
MFC:MFC技术虽然近期已经冷下来了,但是你能熟练掌握它,才能证明你的C++OO技术够纯熟,严格证明你掌握了MFC很简单,你只要用MFC做出一个杀毒引擎就差不多了。推荐的书有《深入浅出MFC》。
《Windows程序设计》:和MFC不同的是,用的是windows核心SDK,也就是API,这本书学完后,你才能从操作系统层面上算掌握了win32 平台下的机理(其实win64和win32大部分机理类似)。
C#:C#里集合了当代和前沿计算机科学里最先进的一些语法(虽然执行效率一直被人质疑),但是你学完C#并深入后,至少能够算是对计算机语言有一个更加深刻的理解了。如何证明你C#学的不错了?也很简单,再次写一个随便什么游戏,比如俄罗斯方块。如果更加证明自己呢?用它写一个P2P网络对战游戏。

(如果你注意的话,会发现我说的学习顺序都是沿着语言和某些技术的,为什么呢?因为这些语言和技术涉及到特定的领域技术和计算机理论思想,比如【真正】学完了C#的话,就不单指学完了C#,而是把多种语言范式都学习了一遍,以及现代的程序开发思维(因为里面用到了很多让你一劳永逸的技术))

以上5个步骤都是基础大步骤,要解决的话要没1-2年应该不够。
与此同时,要尽快选出文中你感兴趣的方向作为3-5年的长期方向,不要担心过早选择分支方向会有什么损失,因为计算机很多分支是相通的,只有你把分支方向深入进去,才能真正理解很多理论的实践意义。并且一旦你在某个分支领域形成了较强的优势(比如,到公司里只有你这方面最强),那么你就是稀缺人才。

关于大方向的步骤就不说了,你主要就是要把我说的这几个基础步骤先解决,同时平时要注重大方向理论结合实际去编码和开发。

热心网友 时间:2022-03-01 08:35

1、入门后多看代码
在有一定基础以后一定要多看别人的代码。 注意代码中的算法和数据结构。 毕竟学C之后的关口就是算法和数据结构。提到数据结构,指针是其中重要的一环,绝大多数的数据结构是建立在指针之上的,如链表、队列、树、图等等,所以只有学好指针才能真正学好C。别的方面也要关注一下,诸如变量的命名、库函数的用法等等。有些库函数是经常用到的。对于这些函数的用法就要牢牢记住。
2、要自己动手
编程序是个实干的活,光说不练不行。刚开始学的时候可以多练习书上的习题。 对于自己不明白的地方,自己编个小程序实验一下是最好的方法,能给自己留下深刻的印象。 自己动手的过程中要不断纠正自己不好的编程习惯和认识错误。有一定的基础以后可以尝试编一点小游戏,照着编作为练习。基础很扎实的时候,可以编一些关于数据结构方面的东西。之后.....学汇编、硬件知识。
3、选择一个好的编译器
GCC或者VS都是一个号的选择
4、关于养成良好的编程习惯

热心网友 时间:2022-03-01 10:10

看了下你写的素数代码,结构混乱,可阅读性差,我改了下

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int Judge(int num)
{
int i;

for (i=3; i<=sqrt(num); i+=2)
{
if (0 == num % i)
{
return 0;
}
}

return 1;
}

void main(void)
{
int num = 3;
int limit = 3;

FILE *fp;

fp = fopen("123.txt", "w");

printf("请输入数字 : ");
scanf("%d", &limit);

if (num > limit)
{
exit(0);
}

fprintf(fp, "%d ", 2);

do
{
if (Judge(num))
{
fprintf(fp, "%d ", num);
}

num += 2;

} while (num <= limit);

fclose(fp);
}

另外一种算法

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void Judge(int num, int limit, int *data)
{//筛选法 虽然浪费了点空间,但时间效率更高
int count;
int flag = (int)sqrt(limit);

while (num < limit + 1)
{
data[num++] = 1;
}

num = 2;

while (num < flag)
{
count = 2 * num;

while (count < limit + 1)
{
data[count] = 0;
count += num;
}

count = num + 1;

while (data[count] == 0 && count <= flag)
{
count++;
}

num = count;
}
}

void main(void)
{
int num = 2;
int limit;
int *data = NULL;

FILE *fp;

fp = fopen("123.txt", "w");

printf("请输入数字 : ");
scanf("%d", &limit);

if (num > limit)
{
exit(0);
}

data = (int *) malloc ((limit + 1) * sizeof(int));

if (NULL == data)
{
printf("申请内存失败!\n");
exit(1);
}

Judge(num, limit, data);

for (num=2; num<limit+1; num++)
{
if (data[num])
{
fprintf(fp, "%d ", num);
}
}

free(data);
data = NULL;

fclose(fp);
}

至于goto语句,蹦来跳去,用起来很爽,自我感觉良好,但有个问题,你无非也就跳了几行,眼睛能跟的上,错误很容易发现,改起来也容易,但跳个几百行,一旦出错,我相信很多程序员宁可重新设计结构写程序,也不愿修改程序。但我也不反对使用goto只是看情况而定。。。

你现在不过就是刚学完C程序设计,接下来应该学学数据结构,然后在学算法,要想开发东西出来,基础一定要扎实,一定要有耐心,比如你学完数据结构后,你就会知道CPU、缓存、栈内存是怎么处理数据,你甚至可以模仿他们的功能自己用C去写这些功能,最后可以学学操作系统等等

热心网友 时间:2022-03-01 12:01

黄金语言是C就业前景也好.
虽然没有java,c#,这样的语言绚.但是1.中国奇缺精通这样语言的人.2.C语言是一种面向过程的计算机程序设计语言。最初为unix而生。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。 C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。 C语言在Linux操作系统下使用时,还可以访问MySql数据库。

热心网友 时间:2022-03-01 14:09

把C学好点,以后你会明白的

热心网友 时间:2022-03-01 16:34

只有无限支持你 程序员的未来前途一片光明!!!!

热心网友 时间:2022-03-01 19:15

兄弟,我也很喜欢C语言,交个朋友吧。

热心网友 时间:2022-03-01 22:13

自学C 感触深

热心网友 时间:2022-03-02 01:28

学习结构如下:
基本:c语言语法知识
主要是掌握c语言的语言规则,即语法,分为数据类型、结构语句、数组、指针、链表、结构体。这些的语法知识需要记住。
这些是基础,只能通过看书和不断的练习才能熟练。一开始可能距地啥也不懂,这没关系,重要的是不懂也要记住。课后习题一定要跟上,不会就看答案,没关系,只要弄懂如何进行的编程。
学习方法:对于语法规则,死记硬背。
重点:c语言数组、指针、结构体、链表
此四点是c语言的精华所在,尤其指针链表是非常重要的语法。这些只掌握基础是远远不够的,但是没有基础是无法深入学习这些的。这四点每一个点都可以单独出本书。
学习方法:对于重点,深入理解。
推荐书籍:
基础类:C Primer 、 Thinking C
重点类:C和指针、C缺陷与陷阱。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
含羞草图片-含羞草(花期图,果期图,欣赏图) 全球气候变暖的后果 全球气候变暖有什么影响 情侣身高差几离米最何适?我167,穿蓝球鞋171,女朋友要多高? 如何禁止u盘传文件 事业单位醉驾会开除吗? excel表格负数金额怎么输入 exce怎么输入负数-excel中输入正负数教程 能让仓鼠跟着走的音乐? ...件和合同都发过去给他了他要我在打1000块钱过去。 我在人人贷款了30000元!合同也签了!但是人家就是没有放款!还让我到一... 学习C语言基本的学习大纲顺序是什么? 请列举学习C语言的过程? 请提供学习C语言的流程? 学习C语言的步骤,详细点 学习c语言的步骤 学习C语言应遵循哪些步骤? 浙江绍兴有什么好玩的地方,有哪些特产? 软件设计师证书用处大还是软件工程学士学位用处大 网络工程师和软件工程师有什么区别?? 软件设计师考试高级和中级的试卷一样吗? 油笔画到壁纸上怎样才能去除掉 如何祛除壁纸上的油渍 怎样清除衣服上撒了很久的中性笔油 什么是Java集合API java 集合框架 软考的数据库系统工程师对于公务员有什么作用? 我的iPhone x手机近期发现飞行模式状态也能接,以前不能,谁能帮忙解答 怎么解除WORD的锁定! 为什么学java,学java到底能干什么 学习了java能干什么? C语言学习路线? C语言学习顺序问题 初学C语言,从哪本书开始学习,顺序是怎样的? 求用C语言制作一个简单软件完整的学习流程 求助:C语言的学习过程 盐城有什么好吃的特产 谁知道盐城有什么好吃的特产a 盐城有什么特色小吃 盐城的特产有哪些啊?具体点哦 盐城的特产(吃、玩) 计算机等级与中级职称的关系 我计算机专科毕业,2002年通过软考初级程序员,想考个中级职称,不知我这种水平能考中级 数据库系统工程师 JAVA 预言特点主要有哪些? cisp有什么用? c语言用什么开发的? c语言的编译程序可以用什么语言来编写 准备学思科认证,学哪个方向好 思科的认证哪个方向就业最好,哪个方向证书最好考? 我是学习RIA开发的,想要考一个思科认证,CCIE的。思科认证好像分很多的方向?哪个更适合? 请问考过思科认证的人们!思科的认证是不是也分很多方向的?如果我要是想考!怎么准备考核啊?