课程

中国大学MOOC,为你提供一流的大学教育

hi,小mooc
期末考试会员
SPOC学校专有课程
高级语言程序设计
第4次开课
开课时间: 2024年09月04日 ~ 2025年01月19日
学时安排: 5
当前开课已结束 已有 453 人参加
老师已关闭该学期,无法查看
spContent=学习程序设计是一件充满挑战、更充满乐趣的事情,然而学习之初,它之所以给你枯燥乏味的感觉,那是因为没有发掘出它的趣味来。本课程力图用最简明的语言、最典型的实例及最通俗的解释将这种趣味性挖掘出来,带给你全新的学习体验,和你一起欣赏C语言之美,领悟C语言之妙,体会学习C语言之无穷乐趣。 本课程引用资源是国家级一流本科课程哈尔滨工业大学 苏小红教授团队的《C语言程序设计精髓》,而自身本课程为四川省省级一流课程和省级应用示范课程。自2022年春季学期起,该课程将C语言与华为资源(鲲鹏平台的C代码开发和华为编程实践与编码规范)有机结合起来,扩展学生国产自主知识的学习和应用。
学习程序设计是一件充满挑战、更充满乐趣的事情,然而学习之初,它之所以给你枯燥乏味的感觉,那是因为没有发掘出它的趣味来。本课程力图用最简明的语言、最典型的实例及最通俗的解释将这种趣味性挖掘出来,带给你全新的学习体验,和你一起欣赏C语言之美,领悟C语言之妙,体会学习C语言之无穷乐趣。 本课程引用资源是国家级一流本科课程哈尔滨工业大学 苏小红教授团队的《C语言程序设计精髓》,而自身本课程为四川省省级一流课程和省级应用示范课程。自2022年春季学期起,该课程将C语言与华为资源(鲲鹏平台的C代码开发和华为编程实践与编码规范)有机结合起来,扩展学生国产自主知识的学习和应用。
—— 课程团队
课程概述

  对于这个地球上大多数人来说,真正的数字化革命还没有开始。在接下来的10年里,变化将无处不在,让我们一起来给这个世界编码吧!——Eric Schmidt Google执行主席    

我们会用18周的时间来深入讲解C语言,在授课过程中,我们会注重多解释一些“为什么”以及错误程序的分析,从环环相扣的问题入手,将一些易被忽视且对高水平程序设计很重要的“点”,沿着数据结构从简单到复杂的主线逐一展开,在实例的“不断深化和提升”中引出知识点,通过对问题的举一反三和前后知识点的融会贯通,由浅入深地引导你循序渐进地编写规模逐步增大的程序。

  在过去30年90%的时间里,C语言独领风骚,仅偶尔被 Java 超越,可见其魅力。C语言作为一种高级语言,其实并不高级,但正是这种“低级”给我们更多思考的机会。期望通过本课程的学习,你不只是简单地能够掌握一种语言的语法,还能理解隐含在语法背后的思想,并初步具备灵活使用这些思想进行编写程序解决实际问题的能力。如果你掌握了这些,你会发现,迈向成功的最后一步不过是选择一种合适的编程工具而已。 

  你想从“菜鸟”升级为“程序猿”吗?那就加入“稀饭”的行列,和我们一起踏上爱上C语言之旅吧。

  自2022年春季学期起,该课程将C语言与华为资源有机结合起来,包括鲲鹏平台软件开发、华为编程实践与编程规范等。具体所在的章节如下:

1.1.2 计算的未来和未来的计算(9分半)

1.1.3 编译型语言与解释型语言及其运行差异(7分)

1.1.4 现代主流计算机指令(8分)

1.2.3 鲲鹏平台介绍——如何在华为云上申请弹性云服务器(6分)

1.2.4 鲲鹏平台介绍——远程登陆(3分半)

1.2.5 鲲鹏平台介绍——linux指令(4分)

1.2.6 鲲鹏平台介绍——运行Hello World(5分)

1.6 进阶:华为编程实践与编码规范

1.6.1 编程实践—数据类型(4分)

1.6.2 编程实践—常量(4分)

1.6.3 编程实践—变量(10分)

1.6.4 编程实践—声明与初始化(1分)


2.6 进阶:华为编程实践与编码规范

2.6.1 编程实践—表达式(4分)

2.6.2 代码风格—整数(16分)


5.7 进阶:华为编程实践与编码规范

5.7.1 编程实践—控制语句(8分半)


6.1.3 鲲鹏平台ARM处理器的函数优化(8分)

6.5 进阶:华为编程实践与编码规范

6.5.1 代码风格—命名(6分半)

6.5.2 代码风格—注释(6分)

6.5.3 代码风格—格式(17分)

6.5.4 编程实践—预处理(19分)

6.5.5 编程实践—头文件(9分半)


11.5 进阶:华为编程实践与代码风格

11.5.1 代码风格—指针和数组(10分半)

11.5.2 代码风格—字符串(5分)

11.5.3 代码风格—断言(6分)

11.5.4 代码风格—函数设计(17分)

11.5.5 代码风格—函数使用(19分)


13.4 鲲鹏多核体系与弱内存模型(17分)


15.7 进阶:华为编程实践与编码规范

15.7.1 编程规范—内存(6分)

15.7.2 编程规范—文件(3分半)

15.7.3 编程规范—其它(4分)


课外拓展实验1——感光灯(10分)

课外拓展实验2——调光灯(12分)

课外拓展实验3——交通灯(5分)

课外拓展实验4——模拟天平(7分)

课外拓展实验5——火焰报警器(8分)

课外拓展实验6——低温检测器(8分)

课外拓展实验7——声控灯(6分)

课外拓展实验8——红外遥控灯(9分)

课外拓展实验9——飞机舵面(7分)

课外拓展实验10——飞机舵面改进版(7分)

课外拓展实验11——智能窗户(7分)

课外拓展实验12——超声波测距仪(12分)

课外拓展实验13——土壤湿度检测器(7分)

课外拓展实验14——智能浇灌系统(10分)

课外拓展实验15——智能浇灌系统改进版(7分)

显示全部
授课目标

设置本课程的主要目的是使学生掌握用计算机分析和解决问题的思维方法以及程序设计的基本方法,建立从问题到算法再到程序的认知,在从问题到算法再到程序的问题求解及程序构造和实现的过程中理解高级语言的基本构造要素以及算法和数据结构在程序构造中的作用,具备良好的编程素养,以及综合运用所学程序设计语言和程序设计方法,设计、构造和应用计算系统求解科学或工程问题的程序设计和实现能力,为后继课程的学习和将来从事软件开发、解决复杂工程问题奠定编程能力基础。具体目标如下:

课程目标1(工程知识):具备数学抽象能力、归纳能力和逻辑思考与推理能力,能够将建立的数学模型用C语言程序描述并进行问题求解。

课程目标2(问题分析):掌握程序设计所需的问题求解基础,培养学生从问题抽象为数学模型或算法再转化为计算机可实现的程序的能力,使学生针对计算、统计、分类等相关的实际问题,能够有效使用程序设计语言和结构化程序设计方法,并恰当使用枚举、递推、分治或递归等常用问题求解方法,完成经典问题求解程序的设计与实现。

课程目标3(设计/开发解决方案):掌握程序设计所需的算法和数据结构基础,培养学生利用算法和数据结构构造程序的能力,使学生针对科学计算/文本处理/人工智能相关的复杂工程问题,能够使用恰当的算法和数据结构以及模块化程序设计方法,完成涉及排序、检索、匹配等算法的实际生活问题或与专业背景相关的工程实际问题的程序设计与实现。

课程目标4(使用现代工具):掌握程序设计的方法学基础,培养学生阅读程序、编写程序和调试程序的能力,使学生能够选择与熟练运用现代化集成开发工具编写、测试和调试程序(如,Dev C++、Visual Studio C++、Code Blocks等),了解鲲鹏体系和鲲鹏平台应用开发的流程,鲲鹏平台和X86平台的差异,以及针对编译型语言(C语言),掌握鲲鹏平台和X86平台代码编写及编译的差异。

成绩 要求

完成课程教学内容学习和考核,成绩达到课程考核标准的学生,详见课程内的评分标准,如下图所示:



课程大纲

学习本课前你必须知道的那些事儿

开篇

授课视频内容进度概览

本课程使用的教材和软件开发环境

向老师提问、做编程作业的注意事项

小白遇到的安装使用问题尽在其中

第1周——初识C语言从认识变量和常量开始

1.1 计算机基础(49分钟)

1.2 C 语言集成开发环境简介(39分钟)

1.3 如何定义一个变量(10分钟)

1.4 变量的表数范围和存储形式(30分钟)

1.5 宏常量与const常量(13分钟)

1.6 进阶:华为编程实践与编码规范(19分)

本周课件、知识点小结和常见错误小结

先修知识(有基础者越过)——二进制和内存(11分半)

第1周测验

练兵区——单选题

练兵区——编程题

第2周——数字间的那些事儿,做点计算哈

2.1 算术运算(20分钟)

2.2 赋值运算(15分钟)

2.3 增1和减1运算(17分钟)

2.4 自动类型转换(5分钟)

2.5 强制类型转换(7分半)

2.6 进阶:华为编程实践与编码规范(20分)

本周课件、知识点小结和常见错误小结

第2周测验

练兵区——编程题

练兵区——单选题

第3周——从键盘中来,到键盘中去,开始输入和输出啦

3.1 数据的格式化屏幕输出(15分钟)

3.2 数据的格式化键盘输入(18分钟)

3.3 单个字符的输入输出(15分半)

3.4 进阶:用getchar()输入数据存在的问题(含错误案例分析)(10分)

3.5 进阶:用%c输入数据存在的问题(含错误案例分析)(10分)

本周课件、知识点小结和常见错误小结

第3周测验

第3周编程题在线测试

练兵区——编程题

练兵区——单选题

第4周——无处不在的抉择

4.1 关系运算符和逻辑运算符(23分钟)

4.2 条件语句(14分钟)

4.3 开关语句——条条道路通罗马(28分钟)

4.4 进阶:数值溢出和精度损失问题(34分半)

4.5 进阶:软件测试与错误实例分析(20分半)

本周课件、知识点小结和常见错误小结

选学——用raptor绘制选择结构的流程图(27分钟)

第4周编程题在线测试

练兵区——编程题

第4周测验

练兵区——单选题

第5周——周而复始的循环之道

5.1 计数控制的循环(31分钟)

5.2 递推(33分钟)

5.3 条件控制的循环(32分钟)

5.4 嵌套循环(17分钟)

5.5 穷举(39分钟)

5.6 进阶:软件调试与错误实例分析(27分钟)

5.7 进阶:华为编程实践与编码规范(8分半)

本周课件、知识点小结和常见错误小结

选学——用raptor绘制循环结构的流程图(25分钟)

第5周测验

练兵区——单选题

第5周编程题在线测试

练兵区——编程题

第6周——函数:分工与合作的艺术

6.1 函数定义、调用、参数传递和函数原型(43分)

6.2 函数封装与程序的健壮性(23分钟)

6.3 进阶:断言与防御式编程(14分钟)

6.4 进阶:代码风格(22分钟)

6.5 进阶:华为编程实践与编码规范(58分)

选学——结构化与模块化程序设计方法(41分)

本周课件、知识点小结和常见错误小结

第6周测验

练兵区——单选题

第6周编程题在线测试

练兵区——编程题

第7周——《盗梦空间》的逻辑:探寻递归的奥秘

7.1 从嵌套调用到递归调用(20分钟)

7.2 递归是如何执行的(16分钟)

7.3 进阶:尾递归是什么鬼?(14分半)

7.4 变量的作用域(22分半)

7.5 进阶:变量的生存期(33分半)

本周课件、知识点小结和常见错误小结

选学——分治和迭代(33分半)

7.6 进阶: 多文件结构(7分半)

第7周测验

练兵区——单选题

第7周编程题在线测试

练兵区——编程题

第8周—— 一堆数据来了,你准备好了吗

本周内容导读

8.1 数组的定义和初始化(43分)

8.2 向函数传递一堆相同类型的数据(19分)

8.3 查找算法——众里寻他千百度(37分半)

8.4 排序算法——让世界变得更有序(17分半)

本周课件、知识点小结和常见错误小结

第8周测验

练兵区——单选题

第8周编程题在线测试

练兵区——编程题

第9周——指针:C语言世界中所向披靡的“金箍棒”

本周内容导读

9.1 指针变量的定义、初始化及其解引用(19分)

9.2 指针变量作函数参数(36分半)

9.3 进阶:函数指针及其应用(27分)

9.4 进阶:数组的趣味应用(50分)

本周课件、知识点小结和常见错误小结

第9周测验

练兵区——单选题

第9周编程题在线测试

第10周——字符串:C语言世界中的大力水手

本周内容导读

10.1 字符串的存储与表示(28分)

10.2 字符串处理操作(15分)

10.3 向函数传递和从函数返回字符串(26分)

10.4 进阶:缓冲区溢出与缓冲区溢出攻击(39分半)

本周课件、知识点小结和常见错误小结

第10周测验

第10周编程题在线测试

练兵区——编程题

第11周——指针的孪生兄弟

本周内容导读

11.1 指针的运算(8分)

11.2 指针和一维数组间的关系(14分)

11.3 指针和二维数组间的关系(18分)

11.4 进阶:指针数组及其应用(22分)

11.5 进阶:华为编码实践与代码风格(57分半)

本周课件、知识点小结和常见错误小结

练兵区——单选题

第11周测验

练兵区——编程题

第11周编程题在线测试

第12周——海陆空齐上阵:又来了一堆数据

本周内容导读

12.1 结构体类型(13分)

12.2 结构体与数组的嵌套(7分)

12.3 结构体的相关计算和操作(19分)

12.4 向函数传递一堆不同类型的数据(28分半)

12.5 枚举类型和共用体类型有什么用(25分)

12.6 进阶:典型应用实例——洗发牌模拟(20分)

本周课件、知识点小结和常见错误小结

第12周测验

练兵区——单选题

第12周编程题在线测试

第13周——原来内存也可以这么玩,我是指针我怕谁

本周内容导读

13.1 何为动态内存分配(26分)

13.2 动态数组

13.3 进阶:常见的内存错误及其解决对策(52分半)

13.4 鲲鹏处理器Memory Models机制(17分)

本周课件、知识点小结和常见错误小结

第13周测验

练兵区——单选题

练兵区——编程题

第14周——结构设计的艺术

本周内容导读

14.1 数据的链式存储——单向链表

14.2 进阶内容:其他数据结构简介(21分)

本周课件

学习体会

第14周测验

练兵区——单选题

练兵区——编程题

第15周——学会保存你的数据

本周内容导读

15.1 二进制文件与文本文件(14分)

15.2 文件的打开和关闭(8分)

15.3 格式化数据的文件读写(5分)

15.4 字符和字符串的文件读写(39分)

15.5 内存数据块的文件读写(7分)

15.6 随机读写与文件缓冲(6分半)

15.7进阶:华为编码实践与编码规范(13分半)

本周课件、知识点小结和常见错误小结

扩展内容——诗与迷宫

第15周测验

练兵区——单选题

练兵区——编程题

课外拓展实验1——感光灯

感光灯代码

感光灯实验连接及效果

感光灯

课外拓展实验2——调光灯

调光灯代码部分

调光灯实验连接及效果

调光灯

课外拓展实验3——交通灯

交通灯代码部分

交通灯实验连接及效果

交通灯

课外拓展实验4——模拟天平

模拟天平代码部分

模拟天平电路连接及效果

模拟天平

课外拓展实验5——火焰报警器

火焰报警器代码部分

火焰报警器电路连接及效果

火焰报警器

课外拓展实验6——低温检测器

低温检测器代码

低温检测器连接及效果

低温检测器

课外拓展实验7——声控灯

声控灯电路连接及效果

声控灯

声控灯代码

课外拓展实验8——红外遥控灯

红外遥控灯代码

红外遥控灯电路连接及效果

红外遥控灯

课外拓展实验9——飞机舵面

飞机舵面代码

飞机舵面电路连接及效果

飞机舵面

课外拓展实验10——飞机舵面改进版

飞机舵面改进版代码部分

飞机舵面改进版电路连接及效果

飞机舵面改进版

课外拓展实验11——智能窗户

智能窗户代码部分

智能窗户电路连接及效果

智能窗户

课外拓展实验12——超声波测距仪

超声波测距仪代码部分

超声波测距仪电路连接及效果

超声波测距仪

课外拓展实验13——土壤湿度检测器

土壤湿度检测器代码部分

土壤湿度检测器电路连接及效果

土壤湿度检测器

课外拓展实验14——智能浇灌系统

智能浇灌系统代码部分

智能浇灌系统电路连接及效果

智能浇灌系统

课外拓展实验15——智能浇灌系统改进版

智能浇灌系统改进版代码部分

智能浇灌系统改进版电路连接及效果

智能浇灌系统改进版

展开全部
预备知识

本门课程的基本内容是面向零基础的学生。

参考资料

1. 面向读者的教材网站(https://book.sunner.cn) 

该网站的服务对象是我们自编教材的读者,提供教材课件、例题源代码、教材勘误表等资源,便于学生浏览和下载后自学,读者也可利用该网站反馈教材使用意见和建议。

2. 作业在线测试系统

该网站的服务对象是使用我们自编教材的读者,在我们编写的由高等教育出版社出版的《C语言程序设计(第4版)》的封底有一个刮刮卡,刮开可以获得一个免费的注册账号,登陆我们开发的C语言作业在线测试系统,在该系统中可以自主选择教材对应章编号中的习题进行自测,提交习题答案后,系统会实时显示评分,另外在习题市场中读者还可以发布题目给其他读者练习。

3. 参考教材

1)苏小红,赵玲玲,孙志岗,王宇颖,《C语言程序设计(第4版)》,高等教育出版社,2019年8月,购书网址:京东

2)苏小红,王甜甜等,《C语言程序设计学习指导(第4版)》,高等教育出版社,2019年9月,购书网址:京东

3)苏小红,孙志岗,陈惠鹏,《C语言大学实用教程(第4版)》,电子工业出版社,2017年1月,购书网址:亚马逊

4)苏小红,孙志岗等,《C语言大学实用教程学习指导(第4版)》,电子工业出版社,2017年3月,购书网址:亚马逊

5)苏小红等,《程序设计实践教程(C语言版)》,机械工业出版社,2021年12月

5.华为资源的相关资料链接

• “智能基座”产教融合协同育人基地:

https://edu.huaweicloud.com/activity/colleges.html?ggw_qt

• 鲲鹏社区: https://www.hikunpeng.com/zh/

openEuler官网: https://www.openeuler.org/zh/

openEuler开源社区: https://gitee.com/openeuler

openGauss官网: https://opengauss.org/zh/

Gauss松鼠会社区: https://bbs.csdn.net/forums/gaussdb

• 昇腾社区: https://www.hiascend.com/zh/

MindSpore官网: https://www.mindspore.cn/

• 华为公有云: https://www.hwclouds.com

• 华为软件开发云: https://www.hwclouds.com/devcloud/

6.相关链接

爱课程国家精品资源共享课https://www.icourses.cn/coursestatic/course_3153.html

相关MOOC课程:程序设计基础https://www.icourse163.org/course/hit-56001#/info

带gcc编译器和gdb调试器的code::blocks集成开发环境的官网下载地址:https://www.codeblocks.org/downloads/26

(例如codeblocks-17.12mingw-setup.exe,一定要带mingw哦),安装注意事项见《C语言程序设计学习指导(第4版)》(codeblocks-20.03mingw-setup.exe的调试功能有问题,不推荐使用)。

安装软件的完整步骤可参考:https://jingyan.baidu.com/article/b24f6c822756b886bfe5da90.html 


https://www.jianshu.com/p/1e7f0e6b99d0 大牛给计算机专业学生的7个建议,告诉你为什么毕业前要学好C语言)

常见问题

Q:如何提问,能得到快速的解答?

A:

1)标题:撰写标题时,要注意把要问的问题的出处和核心词写出来,最好用【】标出来,比如【第1周编程题在线测试的第1题】求解。

2)内容:内容上要把你不懂的地方说出来,最好详细点,把自己尝试修改的过程也说一下。

3)附源代码:把源码贴到讨论区(不要使用图片,因为图片看不清,也不能拷贝),这样大家可以通过你贴出的源码帮你分析错在哪里。

4)附错误提示:把编译出错的提示也贴出来(一般是英文形式),这样大家不用拷贝粘贴和调试程序也能帮你分析出错原因了。


Q:常见的运行结果错误的原因有哪些?

A:程序提交后通常显示三类错误:格式错误、结果错误、运行超时。

对于格式错误,请检查你的程序的输入输出信息是否和题目要求的完全一致。

对于结果错误,请检查你的程序使用的算法和计算公式是否正确,如果涉及浮点运算,可以尝试将float换成double或者反之。

对于运行超时错误,请检查你的程序是否存在死循环,死循环通常由永真的循环控制条件或者while后面添加了不必要的分号引起。注意在本网站提交程序进行测试时,不要使用flush()函数清除缓冲区,输入字符串也不要使用fgets(),原因详见视频讲解 。

注意事项如下:

1)数据输入输出的格式没有严格按照题目的要求写,直接拷贝粘贴题目中给的格式字符串和提示信息,是最简单和不易出现格式错误的方法

2)输入输出字符串中的字符大小写有错误,或者空格数量和位置与题目中的要求不一致,或者缺少换行等。

3)仔细审题,例如题目要求计算半圆的周长,就不要加上直径,更不要计算整个圆的周长。

4)如果只有几个测试用例通过,还有没有通过的测试用例,那么说明你没有考虑所有的可能性,甚至是非法输入的情况。

5)检查是否为英文输入,切记切换成英文状态再输入。一些同学误用了中文作为输入法,就会出现不能编译的问题,例如中文状态下输入的分号和英文状态下输入的分号是完全不同的,语句的末尾使用的分号一定要在英文状态下输入。

Q:如果无法正常观看视频,我该怎么办?

A:如果无法正常观看视频,请尝试进行如下操作:

1.确认你使用了支持视频播放的浏览器。切换到flash播放器无法调整播放速度,切换到HTML5播放器可以调整播放速度。建议都切换到HTML5播放器。

2.清除浏览器的浏览数据及缓存。

3.关闭硬件加速。请在浏览器的 设置 - 显示高级设置 中,将“使用硬件加速模式”(如果可用)一项取消勾选,并重新启动浏览器。

4.检查你的网速。你可以尝试在其他视频网站播放视频(如优酷、土豆等),如果你在其他网站仍无法观看视频,那么你的网络连接很可能有问题。你需要重新连接你的网络或者切换至网速更快的网络以实现流畅的视频播放。

Q:我想考二级,学完这个课程可以考吗? 

A:二级考试题考查语言的语法细节较多,所以能否通过二级考试,要看你的应试水平如何。本课侧重于讲解程序设计的方法以及错误程序的排错方法,更关注实战能力,因此应该说本课程对学生的要求是高于二级考试的要求的。


Q:上机编写C语言程序使用什么软件好?

A:课程演示会使用Code::Blocks+gcc+gdb集成开发环境,但是你使用任何其他C语言开发工具也都可以。不过,我们推荐使用Code::Blocks,在教材网站(https://book.sunner.cn)上有软件下载的网址链接,《C语言程序设计学习指导(第4版)》上有关于如何使用这个软件的详细介绍,它是一个开源的跨平台的C/C++集成开发环境,它安装简单,比Visual C 6.0等其他集成开发环境更简单易学。

 

Q:使用codeblocks在sources中新建一个file,也就是不在原来默认的main.c里面写代码,那么应该如何调试才能使运行的时候直接运行新建的里面的程序呢?

A:给工程添加完新的文件后,移出旧的文件main.c再重新编译即可,移出文件的方法和添加的方法类似。

 

Q:为什么安装好软件后创建新项目的时候软件总是说:could not save project<invalid path> maybe the file is write-protected 呢?

A:codeblocks要求软件安装的目录最好不要带空格或汉字,不要按默认设置安装到program file目录下,卸载后再选择安装到根目录下试试。更多注意事项,参见高等教育出版社的《C语言程序设计学习指导(第3版)》


Q:请问为什么我在Code::Blocks里面点开Debug中的watch里面是空白的?

A按照视频1.2讲的方法新建一个控制台应用程序,不要直接新建一个C文件,直接新建或者打开一个 C文件是无法使用调试功能的。

检查一下是不是将CB安装到默认的program files目录下了,CB不能安装到中文或者有空格的目录下,请卸载软件,重新安装到根目录下,再试试。

此外,全速运行程序时,是看不到watch窗口内的内容的,必须在单步运行的时候才能看到watch窗口内的内容。


Q:为什么我的程序编译不了?

A:一种可能是你安装了不带编译器和调试器的版本,重新安装带编译器和调试器的版本。免费开源的C 语言集成开发环境Code::Blocks+gcc+gdb的官方下载网址:https://www.codeblocks.org/downloads/26(目前最新版本是codeblocks-17.12mingw-setup.exe)。请下载带gcc编译器和gdb调试器的code::blocks(下载软件名中务必包含mingw),否则程序无法编译。无法从官方下载软件的,也可以从百度云盘上下载:链接: 链接: https://pan.baidu.com/s/1q7iVuo8qjFVVW9YLf3BDvQ 提取码: f2n7

C 语言集成开发环境code::blocks的安装和使用方法见教材《C语言程序设计学习指导(第3版)》

如果不想重装系统,可参考

https://zhidao.baidu.com/link?url=T8WrKoa6dHXfZdTIOFex4uWais6SaTY2VbmNnLyKL77fb62LdzxrdJxBT_-UVf48AA9Z14K8l_nyueKFxD_q4Rh3BH0UMZvx5Kvxjx8o1MG重新设置编译器和调试器。

安装软件的完整步骤可参考:https://jingyan.baidu.com/article/b24f6c822756b886bfe5da90.html 

另一种可能是你用的系统自带了迈克菲杀毒软件,请卸载迈克菲上毒软件即可。


Q:为什么我的程序无法运行,显示cannot open output file bin\Debug\election.exe Permission denied.

A:可能是你的文件正在别的程序中使用,或者还有程序的副本正在执行(或者你上次运行没有关闭),因此不能写入election.exe,把副本关闭或者结束election.exe任务应该就能够纠正这个问题。另外,请检查一下你的IDE是不是是不是安装到C盘的默认目录下了,请将IDE安装到D盘,并将你的程序也保存到D盘,不要保存到C盘。


Q:为什么我的程序与网站上的程序运行结果中的小数点最后一位存在差异?

A: 这是因为网站的OJ使用的操作系统和编译器与我们自己使用的操作系统和编译器不一样,从而导致浮点运算的精度不一致。

此外,使用float和double定义变量得到的计算结果也可能在结果的最后一位小数上有所不同。

显示全部
四川师范大学
4 位授课老师
廖雪花

廖雪花

教授

杨军

杨军

副教授

徐勇

徐勇

讲师

下载
下载

下载App