‘壹’ 自学c语言 零基础 看什么书 该怎么学
现在,市面上的
C语言书籍多的数不过来,但是很多不适合你这种初学者使用,作为一名老程序员,我给你推荐几本我看过认为还不错的书:
1)
《C语言小白变怪兽》:既适合对计算机一窍不通的小白,也适合有编程基础的读者,还可以用来进阶。同时,最重要的是,这本书的作者还在不断地更新这本书,我认为最大的特点是通俗易懂,深入浅出,只要认真看,就一定能看懂,我认为这是C语言入门的首选教材,吐血推荐,经典中的经典!!!
2)
《啊哈C语言》:适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。这本书语言幽默,生动形象,通俗易懂,给人耳目一新的感觉,但是这本书非常浅显,并不深入,所以适合纯小白入门,找到门以后也就扔了。这本书着重于语言艺术,针对纯小白下足了功夫,小学生坐在马桶上都能学会编程。说实话,我非常欣赏作者的创意和用心,国内像这样写书的少之又少,入门的书就应该是这个样子。
上边这两本书是我推荐给你用于C语言入门的,我不建议你使用谭浩强的《C语言程序设计》这本书入门,虽然这本书的知名度很高,因为很多大学把它作为C语言的授课教材,然而,这本书被吐槽最多,不但代码不标准,而且有很多错误,据说可以找出几十个错误,这样很容易误导你这种小白。
等你有一定的C语言基础了,可以看下面的这几本书,进一步提升你的编程水平:
1)
《C
Primer
Plus》:畅销
30
余年的C语言入门经典书籍,至今无人能撼动它的地位,它是最符合C语言标准的书籍,作为一名C语言程序员,不收藏一本都觉得自己很水。
2)
《C程序设计语言,The
C
Programming
Language》:C语言创始人丹尼斯·里奇(Dennis
MacAlistair
Ritchie)的着作,和《C
Primer
Plus》并驾齐驱,很难分出伯仲,这两本书都是一样的优秀,都是C语言程序员必须收藏的。
3)
《C专家编程》:适合已经具备C语言基础、想进阶的读者。这貌似是一本吐槽C语言的书,基本上介绍了大多数C语言的坑,有不少精髓,在C语言界久负盛名,进阶时一定要看。
4)
《C陷阱与缺陷》:和《C专家编程》类似,也是给C语言挑刺的,阐述了很多容易让人误解的语法细节,重在帮助C程序员绕过编程过程中的陷阱和障碍。
5)
《程序员的自我修养
--
链接、装载与库》:这真是一本深入骨髓的书,让你彻底明白程序的编译、链接、装载和运行的全过程,你会从此上天,拉开和别人的差距,看任何问题都有了深度和高度。重点推荐!
所有的这些书我都有电子版,需要可以找我要!
‘贰’ 计算机专业主要学什么课程
计算机专业开设的主要课程有:电子技术、离散数学、程序设计、数据结构、操作系统、计算机组成原理、微机系统、计算机系统结构、编译原理、计算机网络、数据库系统、软件工程、人工智能、计算机图形学、数字图像处理、计算机通讯原理、多媒体信息处理技术、数字信号处理、计算机控制、网络计算、算法设计与分析、信息安全、应用密码学基础、信息对抗、移动计算、数论与有限域基础、人机界面设计、面向对象程序设计等。
计算机专业是计算机硬件与软件相结合、面向系统、侧重应用的宽口径专业。通过基础教学与专业训练,培养基础知识扎实、知识面宽、工程实践能力强,具有开拓创新意识,在计算机科学与技术领域从事科学研究、教育、开发和应用的高级人才。
‘叁’ 学习C语言要些什么基础
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
由于C语言简单易学,已经成为学习编程的入门语言之一。在大学一年级,已经安排C语言相关的学习课程。由此可见,C语言的学习并不需要前置课程,可以轻松入门。附件是一本适合初学者入门学习的C语言书籍。其中包括:基本数据类型,运算符与表达式,控制流,函数,指针,数据结构,输入输出等基本基本知识的介绍。能够熟练运用上述的C语言规则,就可以完成C语言入门学习的内容。
一般要掌握基本的微机原理的知识、英文阅读的能力。学习语言注意要多动手,多思考调试,还要能坚持不懈,最重要的还有兴趣。
只要同学们掌握一些方法,多读,多写,克服心理上畏难情绪,C语言是完全可以学好的并且灵活应用的。
至于看什么书,推荐几本:
1.C语言入门经典
《C语言入门经典》例子简单生活化,而且每个例子分析很细。章节安排合理,章末的例子还特别注重思路的引导,而且分析起来特别有成就感。
这本书是自学过程的一本好书。
2.C primer plus
这本书很适合希望系统学习C语言的读者,正如他的名字,是一本不错的入门和进阶的书。书中的每一个知识点都有很多生动简单的示例,并给出了相应的运行结果。总之,在看这本书的过程中,有一种一气呵成的感觉。
3.C和指针
这本书和《专家编程》《C缺陷和陷阱》可以并称C语言(进阶书)三杰。本书的部分内容更适合有C基础的人看。如ADT、递归、指针和数组的部分,书中所述的思想是国内教材所缺乏的。看完本书,能得到一个正确的C语言观。
4.C程序设计语言
难以置信的是,这样一本C语言的入门书籍,从hello world开始讲起,却在短小的篇幅里,手把手教你写了stdio.h stdlib.h
string.h当中大部分例程,实现了二分查找、快速排序、二叉树、哈希表这些重要的数据结构和算法。这本书传递着一种简单、优雅、平实和闲适。
5.C专家编程
《C专家编程》展示了最优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。书中C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及如何进一步学习C++等问题进行了细致的讲解和深入的分析。
‘肆’ 计算机专业学些什么课程
1. 计算机数学基础
本课程4学分,课内学时72,开设一学期。
课程的主要内容:线性代数、概率基础、数理统计基础等。
2. 计算机电路基础 (1)
本课程4学分,课内学时72,其中实验18学时,开设一学期。
本课程是计算机应用专业的专业基础课。主要内容包括:电路基本概念(电路与电路模 型、电路基本物理量、电路基本元件、基尔霍夫定律、简单的电阻电路),半导体基本器件 ;开关理论基础,门电路,组合逻辑电路与时序逻辑电路,可编程逻辑器件(随机读写存贮 器、只读存贮器、可编程逻辑阵列、通用逻辑阵列、现场可编程门阵列、在系统(ISP)编 程技术),数字系统的组成。
本课程后续课程:计算机电路基础(2)等。
3. 计算机电路基础(2)
本课程4学分,课内学时72,其中实验14学时,开设一学期。
本课程是计算机应用专业计算机控制方向的一门必修课。主要内容包括:模拟电路基本 概念,运算放大器的原理及应用,功率放大及稳压电路;测试技术概述,机电系统运动参 数 (位移、速度、加速度、力、力矩、应变及应力等)的测试,过程系统参数(压力、温 度、 流量等),测试数据处理。
本课程先修课程:计算机电路基础(1)等。
本课程后续课程:微机接口技术、计算机控制技术等。
4. C++语言程序设计
本课程5学分,90学时,开设一学期。
C++语言程序设计是计算机应用专业的专业基础课。该课程的主要内容:算术、逻辑、 比较、位、条件、逗号、赋值、输入、输出等运算符和表达式,分支和循环控制结构,模块 化程序设计(函数定义、函数调用、函数重载、库函数、变量作用域和存贮类),数据类 型 (整型、实型、字符型、枚举、数组、结构、指针、类等),动态存储空间的分配与释 放, C++操作环境、编译预处理、文件链接和工程文件的使用,类与对象的概念,操作符重 载与 函数模板,C++标准输入输出流、文件流和串流,等等。
本课程先修课程:计算机入门及操作技能训练(在集中实践环节中)、计算机组成原理 与汇编语言等。
5. 计算机组成原理与汇编语言
本课程5学分,课内学时90,开设一学期。
本课程是计算机应用专业的专业基础课。主要内容包括:计算机系统概述,计算机中数 据的表示,运算方法和运算器,指令系统,控制器,存贮器组织,输入输出系统;汇编语 言 ,汇编语言基本程序设计,程序设计举例(输入输出程序设计、中断程序设计、系统调 用及 程序设计)。
本课程先修课程:计算机电路基础(1)等。
本课程后续课程:操作系统,计算机网络等。
6. 数据结构
本课程5学分,90学时,其中实验占27学时,大作业占18学时,开设一学期。
数据结构是计算机应用专业的专业基础课。该课程的主要内容:线性表、栈、队列的定 义、顺序存贮和链接存贮结构,进行插入和删除等运算的算法;树、二叉树、二叉排序树 、 哈夫曼树的定义、性质、存贮结构及建立过程,二叉树的先序、中序和后序遍历算法, 二叉 排序树的查找、插入和生成算法,图的定义,图的邻接矩阵、邻接表和边集数组存贮 结构, 图的深度优先和广度优先遍历算法,求图的最小生成树和最短路径算法,拓扑排序 算法,数 据查找和排序的各种算法,文件的概念和组织方法等。
本课程先修课程:计算机组成原理与汇编语言、C++语言程序设计等。
7. 微机接口技术
本课程5学分,课内学时90,其中实验27学时,大作业18学时,开设一学期。
本课程是计算机应用专业计算机控制方向的一门必修课。主要内容包括:微机接口技术 概述,模拟量输出输入通道(A/D、D/A变换及其接口电路),数字量输出输入通道,常用 可编程并、串行接口电路,工业控制计算机总线技术,人机界面接口技术。
本课程先修课程:计算机组成原理与汇编语言、计算机电路基础(2)等。
本课程后续课程:计算机控制技术、单片机技术等。
8. 数据库基础与应用
本课程6学分,108学时,开设一学期。
数据库基础与应用是计算机应用专业信息管理方向的一门必修课,其它方向的选修课。 该课程的主要内容:数据库系统的概念、组成和主要功能,数据库保护和数据模型,关系 模 型和各种关系运算,利用SQL进行数据库的定义、查询、更新、插入和删除数据,关系规 范 化和函数依赖,第一、二、三范式和BCNF范式,数据库的概念结构设计、逻辑结构设计 和物 理结构设计,FoxPro数据库的建立、显示、修改、查询、统计、复制、索引、排序、 更新、 关联等,Foxpro应用程序设计和用户界面设计。
先修课程:计算机入门及操作技能训练(在集中实践环节中)、离散数学等。
9. 操作系统
本课程5学分,课内学时90,开设一学期。
操作系统是计算机应用专业的专业基础课。操作系统对计算机系统资源实施管理,是所 有其他软件与计算机硬件的唯一接口。学生通过本课程的学习,理解操作系统的基本概念 和主要功能,掌握常用操作系统的使用和一般管理方法,了解它是如何组织和运作的,从 而为今后的学习和工作打下基础。
课程主要内容:操作系统引论;进程管理;处理机管理;存储器管理;文件系统;设备 管理;中断和信号机构;死锁;微内核体系结构;网络操作系统;操作系统展望与中文操 作系统。
本课程先修课程:计算机组成原理与汇编语言、C++语言程序设计、离散数学基础等。
本课程后续课程:网络操作系统等。
10. 计算机控制技术
本课程4学分,课内学时72,其中实验15学时,开设一学期。
本课程是计算机应用专业计算机控制方向的一门必修课。主要内容包括:自动控制的基 本概念,计算机控制系统基本组成及工作原理,计算机控制系统的基本特性,计算机控制 系统的控制算法,控制用计算机系统的配制,实时控制软件技术,计算机控制系统的抗干 扰技术,可编程序控制器的原理及应用,分散型控制系统及其应用,计算机控制系统设计 与调试举例。
本课程先修课程:计算机组成原理与汇编语言、C++语言程序设计等。
本课程后续课程:单片机技术等。
11. 单片机技术
本课程4学分,课内学时72,开设一学期。
本课程是计算机应用专业计算机控制方向的一门必修课。主要内容包括:单片机概述, 单片机芯片结构,单片机指令系统,单片机程序设计,单片机系统扩展,单片机开发系统 及应用,单片机在控制系统中的应用(数据采集系统,智能数字电压表,机械手控制系统 等) 。
本课程先修课程:计算机组成原理与汇编语言等。
12. 计算机网络
本课程5学分,课内学时90,开设一学期。
本课程是计算机应用专业的专业基础课。主要内容包括:计算机网络概述(计算机网络 基本概念、计算机网络硬件、计算机网络软件、互连网络标准体系、开放式系统互连参考 模型、计算机网络的新进展及发展趋势);计算机网络的层次模型,计算机网络中的通信 子网 (概述、数字通信基础知识、局域计算机网络、城域计算机网络、广域计算机网络、 网际互 连技术);计算机网络中的高层服务(概述、局域网络服务/广域网络服务、电子邮 政服务 、WWW多媒体信息发布服务、文件传输与终端仿真服务、其他网络高层应用);计算 机网络应用开发与相关技术,使用计算机网络的道德和法律法规。
本课程先修课程:计算机组成原理与汇编语言等。
本课程后续课程:组网与网络管理技术、Internet与Intranet应用、网络操作系统、计 算机组成原理与汇编语言、网络信息制作与发布等。
13. 多媒体技术基础
本课程4学分,课内学时72,其中实验24学时,开设一学期。
多媒体技术基础课程是计算机应用专业计算机应用软件开发方向的一门必修课。通过本 课程的学习,使学生了解多媒体技术的发展,掌握多媒体软硬件的配置及使用,为今后更 好地应用多媒体技术打下基础。
课程主要内容:多媒体计算机技术概论;视频与音频信息获取与存储技术;多媒体计算 机硬件结构;压缩技术;超文本和超媒体;多媒体素材的采集和处理;动画制作工具和创 作技术;编辑多媒体软件。
本课程先修课程:Windows使用、计算机组成原理。
14. 软件工程
本课程4学分,课内学时72,开设一学期。
软件工程课程是计算机应用专业计算机应用软件开发方向和计算机信息管理方向的必修 课。本课程阐述了软件开发、维护和管理等方面的软件工程学的概念、原理以及典型的技术 方法。通过本课程的学习,使学生树立软件工程的科学思想,能自觉按照软件工程的方法学 进行软件的开发和维护工作,并掌握与此相应的方便的工具,形成良好的软件开发习惯。
课程主要内容:软件工程概述;可行性研究;需求分析;总体设计;详细设计;编码; 测试;维护;原型法。
本课程先修课程:一门高级程序设计语言,操作系统,数据结构等。
15. Visual Basic程序设计
本课程5学分,课内学时90,其中实验32学时,开设一学期。
Visual Basic程序设计课程是计算机应用专业计算机应用软件开发方向的一门必修课。 通过本课程的学习,使学生熟悉VB这一集应用程序开发、设计、编辑、编译和调试为一体 的集成化开发环境,掌握VB的基本语言和语法,培养学生使用VB进行程序设计的技能。
课程主要内容:VB集成化开发环境;VB 窗体;VB控件;VB模块;VB类;VB输出;VB创 建并使用菜单和工具;VB使用数组、变量和常量;VB存储和获取数据;VB创建和使用帮助文 件;VB使用对话框;VB使用鼠标;VB使用Dll和API;VB使用ActiveX;VB面向对象的编程方 法。
本课程先修课程:程序设计基础、Windows操作系统、多媒体技术基础。
16. 软件工具与环境
本课程3学分,课内学时54,其中实验34学时,开设一学期。
软件工具与环境课程是计算机应用专业计算机应用软件开发方向的一门必修课。在软件 开发活动中,采用合适的软件开发工具、平台和环境,可以大大提高软件生产率,也是保 证软件产品的质量的一个重要手段。应用软件开发人员掌握有关概念,熟悉常用软件开发 工具、平台和环境是十分必要的。
课程主要内容:软件开发环境概论;人机界面;程序设计环境;系统集成环境;维护环 境;速成原型环境;程序自动生成环境。
本课程先修课程:软件工程等。
17. 信息管理系统 本课程4学分,72学时,大作业占18学时,开设一学期。
信息管理系统是计算机应用专业信息管理方向的一门必修课,它综合利用了先前学过的 知识,解决信息管理系统的实际问题。主要内容有:信息管理系统的概念与结构,信息管理 系统的开发过程,信息管理系统的管理与维护,信息管理系统的开发环境与工具,信息管理 系统的开发实例等。
本课程先修课程:计算机组成原理与汇编语言、计算机网络、数据结构、数据库基础与 应用、管理学基础等。
18. 组网与网络管理技术
本课程4学分,课内学时72,开设一学期。
本课程是计算机应用专业计算机网络方向的一门必修课。主要内容包括:组网用的物理 信道,组网实践,计算机网络互连(交换网络的概念、局域网络互连、局域网与广域网的 互连),计算机网络管理(网络管理的基本概念、简单网络管理协议SNMP、全面网络管理 ,计算机网络的测试与维护)。
本课程先修课程:计算机网络等。
19. 网络操作系统
本课程4学分,课内学时72,开设一学期。
本课程是计算机应用专业计算机网络方向的一门必修课。主要内容包括:网络操作系统 概论(网络操作系统概念、功能描述),网络操作系统比较(UNIX、Windows NT和Netware 网络操作系统性能价格比较),网络操作系统的发展预测,UNIX操作系统及使用,Windows NT操作系统及使用,Netware网络操作及使用。
本课程先修课程:计算机网络、操作系统等。
20. Internet与Intranet应用
本课程4学分,课内学时72,开设一学期。
本课程是计算机应用专业计算机网络方向的一门必修课。主要内容包括: Internet和 Intranet应用及互连网络应用概貌,域名服务(DNS),电子邮政服务(E-mail),文件 传输服务(FTP),远程登录服务(Telnet),Web服务,代理(Proxy)服务,其他互连网 络服务,新的应用,ISP的实施例子。
本课程先修课程:计算机网络等。
21. 网络信息制作与发布
本课程5学分,课内学时90,开设一学期。
本课程是计算机应用专业计算机网络方向的一门必修课。主要内容包括:网络信息的收 集与组织,网络信息制作工具介绍( Word、Front Page),网络信息的制作(预备知识: 色彩、构图与网页设计;利用Word制作简单网页,利用Front Page制作网页;视觉与创意 ),网络信息的发布,网络信息的维护。
先修课程:计算机网络等。
22. 英语Ⅰ(1) (2)
本课程6学分,课内学时108,开设一学年。
本课程为公共英语课程。通过课程的学习,学生应能掌握1600左右的常用词汇(包括入 学时要求掌握的600词)和若干相关的常用词组及基础语法知识;能够听懂发音清楚、语速较 慢的教学用语和日常生活用语,并能用英语进行简单的日常交谈;能够读懂所学词汇和语法 范围内的故事、短文及通知、便条等;能够写出简短的私人信函,或用便条转达具体信息。
统设服务课程:
1. 计算机入门及操作技能训练
本实践环节4学分,实验36学时(2学分),开设一学期。
主要内容:计算机系统组成与基本工作原理,计算机的基本操作与维护(键盘和鼠标使用, 中英文输入,外设与主机的连接、配置与使用,计算机常规维护),操作系统使用(Window s95以上),字处理软件使用(Word 97以上),计算机网络基本知识,Internet实用(浏览 器IE5.0、电子邮件Email使用)。
2. OFFICE办公软件
本实践环节4学分,实验45学时(2.5学分),开设一学期。
主要内容:字处理软件Word (97以上)深入使用,电子表格处理软件Excel (97以上)使 用,电子演示软件Power Point (97以上)使用,OFFICE办公软件综合使用训练。
‘伍’ c语言的先修课程有哪些
怎么说呢,一般开始学习c语言都是从谭浩强的书开始的,这本书写的很容易理解,想学好c语言看这本书就够了。但是想成为软件工程师可不是掌握一门语言就可以的!总之楼主先学好c语言,然后学好算法(建议看《算法导论》),这样就可以向编程高手进阶,最后再慢慢向软件工程师的梦想靠近,加油喔
‘陆’ c语言的基本课程是什么
全书共12章,第1章计算机程序设计的含义,第2章C语言程序的基本结构,第3章C语言的基本数据类型与简单I/0,第4章C语言的语句特征,第5章函数,第6章变量的存储属性,第7章编译预处理与工程,第8章C语言的数组及其应用,第9章指针变量及其属性,第10章结构体、共用体数据及其应用,第11章C语言的文件I,0及其应用,第12章C语言的位运算与低级操作。
替你了,懒。
‘柒’ 大学c语言怎么学
1.学C语言重要的是你的逻辑思维和坚持学习的恒心,学编程特别是语言就要多看,多思考,多练,也就是多敲代码.
2.就C语言来说,是编程者应该好好学的一门语言,因为它是你日后要学的其他一些更高级的面向对象的编程语言的基础,学好了C语言,日后学高端语言就相对容易一些,而且在学习C语言的同时你的逻辑思维也开始形成.总之他是你经常听到的VB
C++
JAVA
.NET等等语言的一个基础.
3.学习C在学校主要看你们那讲师的水平了,有实际软件开发经验的老师会让你听的很轻松就理解了,要是只会照本喧照的老师那就会把其实不是太复杂的问题将的很复杂并难以理解(在传统学校里是很常见的).其实C语言也并不是非常难学.如果你认真去学把该理解的东西理解了学好C是没有问题的,3个月也够了.
但是这种水平也只是说你把C语言基本学会了,对以后的学习打了个不错的基础.
4.如果你想找编程的工作向软件开发的方向努力的话,那么你应该有一个正确的明确的方向规划.3
4个月把C语言的核心语法和指针
数组等学好
理解了,会用,然后对做些小的程序练习加以巩固.然后随着你学习的接触你会学VB
SQL数据库
ORACLE
C++
JAVA
JSP
ASP.NET
.NET等等现代所用的高级语言,工作中大都也是用这些高级的面向对象的语言在编程.
总之编程,编程,再编程...这就是诀窍!
对于初学者来说,自己写程序有点儿困难,那就先按书上的例子来,一定要上机亲手实践,不管这个程序有多么的简单..
希望我的回答对你有帮助!
‘捌’ 学习C语言需要掌握哪些基本知识
1.入门程序
#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
2.数据类型
数据类型:
1.基本数据类型:
1.1. 整型:int 4个字节
1.2. 字符型:char 1个字节
1.3. 实型(浮点型)
1.3.1.单精度型:float 4个字节
1.3.2.双精度型:double 8个字节
%d:十进制整数;
%c:单个字符;
%s:字符串;
%f:6位小数;
- #include <stdio.h>
- int main()
- {
- int age = 18;
- float height = 1.85;
- char unit = 'm';
- printf("小明今年%d岁 ", age);
- printf("小明身高%f%c ", height, unit);
- printf("小明现在在慕课网上学习IT技术 ");
- return 0;
- }
- #include <stdio.h>
- #define POCKETMONEY 10 //定义常量及常量值
- int main()
- {
- printf("小明今天又得到%d元零花钱 ", POCKETMONEY);
- return 0;
- }
表达式1 ? 表达式2 : 表达式3;
- #include <stdio.h>
- int main()
- {
- //定义三位数num,个位数sd,十位数td,百位数hd
- int num, sd, td, hd;
- //循环所有三位数
- for( num=100 ; num<1000 ; num++ )
- {
- //获取三位数字num百位上的数字
- hd = num/100 ;
- //获取三位数字num十位上的数字
- td = num/10%10 ;
- //获取三位数字num个位上的数字
- sd = num%10 ;
- //水仙花数的条件是什么?
- if(num ==hd*hd*hd+td*td*td+sd*sd*sd )
- {
- printf("水仙花数字:%d ", num);
- }
- }
- return 0;
- }
- #include <stdio.h>
- int main()
- {
- int i, j, k;
- for(i=1; i<5; i++)
- {
- /* 观察每行的空格数量,补全循环条件 */
- for( j=i ; j<5 ; j++ )
- {
- printf(" "); //输出空格
- }
- /* 观察每行*号的数量,补全循环条件 */
- for( k=0 ; k<2*i-1 ; k++ )
- {
- printf("*"); //每行输出的*号
- }
- printf(" "); //每次循环换行
- }
- return 0;
- }
- #include <stdio.h>
- int main()
- {
- int sum = 0;
- int i;
- for(i=1; i<=10; i++)
- {
- printf("%d ", i);
- if(i==3){
- goto LOOP;//满足条件就执行goto语句
- }
- }
- //执行goto
- LOOP:printf("结束for循环了...."); //请选择合适位置添加标识符
- return 0;
- }
形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。
实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值等办法使实参获得确定值。
在参数传递时,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。
- #include <stdio.h>
- int getPeachNumber(int n) //这里要定义n,要不编译器会报错!
- {
- int num;
- if(n==10)
- {
- return 1;
- }
- else
- {
- num = (getPeachNumber(n+1)+1)*2;
- printf("第%d天所剩桃子%d个 ", n, num);
- }
- return num;
- }
- int main()
- {
- int num = getPeachNumber(1);
- printf("猴子第一天摘了:%d个桃子。 ", num);
- return 0;
- }
用关键字auto定义的变量为自动变量,auto可以省略,auto不写则隐含定为“自动存储类别”,属于动态存储方式。
用static修饰的为静态变量,如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量。
为了提高效率,C语言允许将局部变量的值放在CPU中的寄存器中,这种变量叫“寄存器变量”,用关键字register作声明。
用extern声明的的变量是外部变量,外部变量的意义是某函数可以调用在该函数之后定义的变量。
- #includ <stdio.h>
- //来源公众号:C语言与CPP编程
- int main()
- {
- //定义外部局部变量
- extern int x;
- return 0;
- }
- int x=100;
数据类型 数组名称[长度n] = {元素1,元素2,元素3,......};
数据类型 数组名称[] = {元素1,元素2,元素3,......};
数类类型 数组名称[长度n]; 数组名称[0] = 元素1;数组名称[1] = 元素2;...... 注意: 1、数组的下标均以0开始; 2、数组在初始化的时候,数组内元素的个数不能大于声明的数组长度; 3、如果采用第一种初始化方式,元素个数小于数组的长度时,多余的数组元素初始化为0; 4、在声明数组后没有进行初始化的时候,静态(static)和外部(extern)类型的数组元素初始化元素为0,自动(auto)类型的数组的元素初始化值不确定。
- #include <stdio.h>
- int main()
- {
- int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- int i;
- for(i=0;i<10;i++)
- {
- printf("%d ",arr[i]);
- }
- return 0;
- }
数组的冒泡排序
字符串与数组
char 字符串名称[长度] = "字符串内容";
char 字符串名称[长度] = {'字符串1','字符串2',....,'字符串n','
2.构造类型:
2.1.枚举类型
2.2.数组类型
2.3.结构体类型
2.4.共用体类型
3.指针类型:
4.空类型:
3.格式化输出语句
学好C++才是入职大厂的敲门砖! 当年要是有这课,我的C++也不至于这样
已失效
4.常量
值不发生改变的量成为常量;
定义字符常量(注意后面没有;)
5.运算符
5.1.算数运算符:+,-,*,/,%,++,--;前++/--,先运算,再取值.后++/--,先取值,再运算;
5.2.赋值运算符:
5.3.关系运算符;
5.4.逻辑运算符;
5.5.三目运算符:
6.水仙花数计算
输出所有三位数的水仙花数字
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数,如:153就是一个水仙花数,153=111+555+333。
7.打印正三角形的*
8.臭名远扬的goto语句
很少使用
9.形参与实参
形参:形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数;
实参:实参是在调用时传递该函数的参数。
函数的形参和实参具有以下特点:
10.函数返回值注意
注意:void函数中可以有执行代码块,但是不能有返回值,另void函数中如果有return语句,该语句只能起到结束函数运行的功能。其格式为:return;
11.递归
12.变量存储类别 !
12.1.生存周期划分存储方式
C语言根据变量的生存周期来划分,可以分为静态存储方式和动态存储方式。
静态存储方式:是指在程序运行期间分配固定的存储空间的方式。静态存储区中存放了在整个程序执行过程中都存在的变量,如全局变量。
动态存储方式:是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行的需要而建立和释放的,通常包括:函数形式参数;自动变量;函数调用时的现场保护和返回地址等。
12.2.存储类型划分
C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern) ;
注意:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放;静态局部变量在编译时赋初值,即只赋初值一次;如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)
注意:只有局部自动变量和形式参数可以作为寄存器变量;一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量;局部静态变量不能定义为寄存器变量。
13.内部函数外部函数 !
在C语言中不能被其他源文件调用的函数称为内部函数 ,内部函数由static关键字来定义,因此又被称为静态函数,形式为:
static [数据类型] 函数名([参数])
这里的static是对函数的作用范围的一个限定,限定该函数只能在其所处的源文件中使用,因此在不同文件中出现相同的函数名称的内部函数是没有问题的。
在C语言中能被其他源文件调用的函数称为外部函数 ,外部函数由extern关键字来定义,形式为:
extern [数据类型] 函数名([参数])
C语言规定,在没有指定函数的作用范围时,系统会默认认为是外部函数,因此当需要定义外部函数时extern也可以省略。 extern可以省略; 14.数组 数组:一块连续的,大小固定并且里面的数据类型一致的内存空间, 数组的声明:数据类型 数组名称[长度n]
15.数组遍历
冒泡排序的思想:相邻元素两两比较,将较大的数字放在后面,直到将所有数字全部排序。
在C语言中,是没有办法直接定义子字符串数据类型的,需使用数组来定义所要的字符串,形式如下: