导航

2022-2023-1 20221301 《计算机基础与程序设计》第八周学习总结

作业信息

这个作业属于哪个课程 <班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP
这个作业要求在哪里 <作业要求的链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08
这个作业的目标 计算机科学概论第9章 并完成云班课测试 《C语言程序设计》第7章并完成云班课测试

教材学习内容总结

1.面向对象方法

  • 对设计的底层概念是类和对象
  • 自项而下的设计方法重点在于把输入转化为输出的过程,结果将生成任务的体系结构。面对设计对象的重点是要转换的数据对象,结果生成的是对象的体系结构。
    2.翻译过程
  • 编译器:把用高级语言编写的程序翻译成机器码的程序
  • 解释器:输入用高级语言编写的程序,知道计算机执行每个语句指定的动作的程序
    3.程序设计言语的范型
    4.高级程序设计语言的功能性
  • 布尔表达式:布尔表达式是一个标识符序列,标示符之间由相容的运算符分隔。
  • 数据类型:实数、整数、字符、布尔型
  • 控制结构:重复、选择和子程序
    5.面向对象语言的功能性

阅读教材中遇到的问题

  • 在学习break语句exit(0)以后,知道了不止只有return 0;语句可以结束程序(函数),但是又没有太分清楚这些用于结束的语句有什么区别,通过上网查找,了解到:
    • return 0:
      用return这种形式就能定义返回值, return 0可以 终止 main() 函数,并返回值 0。
      return 0 代表程序正常退出,return 1代表程序异常退出!
      使用return 语句可以返回一个变量内的值或一个指针,也可用return0,表示返回为空。
      return 代表调到函数外,
      return 0代表函数正常终止
      return 1代表函数非正常终止

    • exit函数:
      函数名: exit()

所在头文件:stdlib.h

功 能: 关闭所有文件,终止正在执行的进程。

  • exit(1)表示异常退出.这个1是返回给操作系统的。
  • exit(x)(x不为0)都表示异常退出
  • exit(0)表示正常退出
    exit()的参数会被传递给一些操作系统,包括UNIX,Linux,和MS DOS,以供其他程序使用。
    stdlib.h: void exit(int status);
    参 数 : status //程序退出的返回值.

exit(0):正常运行程序并退出程序。
exit(1):非正常运行导致退出程序;
return():返回函数,若在主函数中,则会退出函数并返回一值。

其中:

  • return返回函数值,是关键字; exit 是一个函数。

  • return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。

return是函数的退出(返回);exit是进程的退出。

  • return是C语言提供的,exit是操作系统提供的(或者函数库中给出的)。

  • return用于结束一个函数的执行,将函数的执行信息传出个其他调用函数使用;exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS(操作系统),这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是 0 为正常退出,非0 为非正常退出。

  • 非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的。

代码调试中的问题和解决过程

  • 问题1:没有明白同样是用于清除缓冲区数据
    fflush(stdin)和while(getchar() != ‘\n’)
    有什么区别。
  • 问题1解决方法:在云班课中提问,得到了同学的解答:getchar()是专门从缓冲区读取一个字符的函数。fflush(stdin)是直接将输入缓冲区全部清空。
  • 问题2:在做一些测试题的时候,有时候出现问题的不是语法知识不会,而是数学逻辑不够,很多东西不会算,或者不会用代码表示出来(比如求素数,最大公约数,最小公倍数等)。
  • 问题2解决办法:需要自己多去看不同的算法,并且在网上查找资料,看看别人是怎么解决的,逐步增强数学逻辑。

其他(感悟、思考等,可选)

通过之前的反思,已经有意识的开始每天积累新的知识了,但是内容还是不够多,虽然不能贪多求快,但是还是希望自己可以在有限的时间里,尽可能多的,尽可能扎实的掌握更多的东西!!

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 0/0 3/3
第二周 200/200 6/6 18/21
第三周 200/400 10/10 10/31
第四周 300/700 2/12 19/50
第五周 300/1000 3/15 20/70
第六周 300/1300 5/20 15/85
第七周 900/2200 1/21 15/100
第八周 1400/3600 5/25 15/115

参考资料