首页 > 编程语言 >C语言编程的结构化要求和正确性与容错性要求

C语言编程的结构化要求和正确性与容错性要求

时间:2023-08-19 17:32:59浏览次数:42  
标签:语句 GOTO 单元测试 编程 程序 C语言 容错性 ELSE

一、结构化要求

(1)禁止出现两条等价的支路。

(2)禁止使用GOTO跳转语句。

(3)用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RETURN。

(4)用 CASE 实现多路分支。

(5)避免从循环引出多个出口。

(6)3.6 函数只有一个出口。

(7)不使用条件赋值语句。

(8)避免不必要的分支。

(9)不要轻易用条件分支去替换逻辑表达式。

二、正确性与容错性要求

(1)程序首先是正确,其次是优美。

(2)无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。

(3)改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。

(4)所有变量在调用前必须被初始化。

(5)对所有的用户输入,必须进行合法性检查。

(6)不要比较浮点数的相等,如:10.0 * 0.1 == 1.0 , 不可靠。

(7) 程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机是否联机等。

(8)单元测试也是编程的一部分,提交联调测试的程序必须通过单元测试。

标签:语句,GOTO,单元测试,编程,程序,C语言,容错性,ELSE
From: https://blog.51cto.com/zdytesting/7150801

相关文章

  • 经典c语言排序算法
    前言前段时间偶然在公众号中看到了一篇汇总c语言排序算法的文章,感觉蛮不错的,这里直接copy记录下,学习积累一下。演示C语言经典排序算法(qq.com)排序算法简介1.算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(n......
  • 第一个C语言程序
    第一个C语言程序#include<stdio.h>/*这是我的第一个C语言程序我很开心*/intmain(void){printf("hello,world\n");return0;}保存退出gcchello.c//a.out文件./a.out//hello,world注意:不要出现中文标点符号分析:[1]C语言程序绝大部分的内......
  • C语言函数(12)--- 递归(4)
    我们前一篇文章介绍了利用函数的递归来实现斐波那契数代码如下:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<windows.h>intFib(intn){ if(n<=2){ return1; } else{ returnFib(n-1)+Fib(n-2); }}intmain(void){ intn=0; intret=0;......
  • Linux网络编程(epoll函数的使用)
    (文章目录)前言本篇文章我们讲解epoll函数的使用方法,epoll相比于poll来说性能方面有所提升和改进。一、epoll概念特点讲解epoll是Linux上一种高性能的多路复用机制,用于监视大量文件描述符并在它们就绪时通知应用程序。它是在select和poll的基础上进一步优化和改进而来......
  • c语言笔记4
    c语言笔记4(指针)1.指针的应用1.1内存空间32位机:一次处理数据的大小4B(字节)64位机:一次处理数据的大小8B(字节)计算处理数据的最小单位是1B(字节),计算存储数据的最小单位二进制的1b(位)一个程序启动后的进程分区:栈、堆、全局区、常量区、代码区内存寻址:(32位)最大......
  • Java8编程 轻松驾驭数据流
    StreamAPI是 Java 8中最重要的新特性之一,它是处理集合和数组的一种新方式。它提供了一种简单、灵活和可读的方式来处理集合和数组中的元素,从而使代码更加简洁、高效和易于维护。1.原理介绍StreamAPI的核心是Stream接口,它表示一组元素的序列,可以按需进行计算。......
  • 程序代做服务:解放您的编程烦恼
    导言:在现代技术驱动的社会中,编程已经成为了解决问题和创新的重要手段。然而,不是每个人都拥有编程的技能和时间来完成复杂的编程任务。在这样的情况下,程序代做服务应运而生,为那些需要技术支持的个人和企业提供了便利。什么是程序代做服务?程序代做服务是一种服务模式,通过该模式,您......
  • 【LeetCode173. 最多连胜的次数】MySQL用户变量编程解法
    目录题目地址题目描述代码题目地址https://leetcode.cn/problems/longest-winning-streak/description/题目描述选手的 连胜数是指连续获胜的次数,且没有被平局或输球中断。编写解决方案来计算每个参赛选手最多的连胜数。结果可以以任何顺序返回。代码WITHt1AS(......
  • 【LeetCode1454. 活跃用户】MySQL 用户自定义变量,面向过程编程解决"连续天数"的问题
    目录题目地址题目描述代码题目地址https://leetcode.cn/problems/active-users/description/题目描述活跃用户是指那些至少连续 5天登录账户的用户。编写解决方案, 找到活跃用户的id和name。返回的结果表按照id排序 。代码注意需要处理,同一天多次登录的情形......
  • Google开源了可视化编程框架Visual Blocks for ML
    VisualBlocksforML是一个由Google开发的开源可视化编程框架。它使你能够在易于使用的无代码图形编辑器中创建ML管道。为了运行VisualBlocksforML。需要确保你的GPU是可以工作的。剩下的就是clone代码,然后运行,下面我们做一个简单的介绍:VisualBlocksforML是运行在支持jav......