程序设计流程:
1.读题:了解掌握现实世界问题,明确输入和输出,即明确用什么数据算什么结果;
2.数据表示(Data Description):用数据表示问题;
3.设计算法(Algorithm Design):设计计算步骤或流程;
4.编写程序(Programming):根据数据描述和算法编写程序;
5.运行调试(Run,Testing & Debug):运行程序、测试程序和修改错误。

第一章
ex1-1 求n!
解法一:用宏定义实现程序通用性

/* ex1-1 求n! */#include <stdio.h>#define N 5int main(void)
{int i, p = 1;for(i = 1; i <= N; i++)p *= i;printf("%d\n", p);return 0;
}

解法二:根据读入数据进行计算

/* ex1-1 求n! */#include <stdio.h>int main(void)
{int n, i, p = 1;scanf("%d", &n);for(i = 1; i <= n; i++)p *= i;printf("%d\n", p);return 0;
}

解法三:把功能封装到函数

/* ex1-1 求n! */#include <stdio.h>int fact(int n)
{int i, p = 1;for(i = 1; i <= n; i++)p *= i;return p;
}int main(void)
{int n;scanf("%d", &n);printf("%d\n", fact(n));return 0;
}

ex1-3 求1-1/2+1/3-1/4+…+1/99-1/100
解法一:用宏定义实现程序通用性

/* ex1-3 求1-1/2+1/3-1/4+......+1/99-1/100 */#include <stdio.h>#define N 100int main(void)
{int i;float sum = 0, sign = 1;for(i = 1; i <= N; i++) {sum += sign * (1.0 / i);sign = -sign;}printf("%f\n", sum);return 0;
}

解法二:根据读入数据进行计算

/* ex1-3 求1-1/2+1/3-1/4+......+1/99-1/100 */#include <stdio.h>int main(void)
{int n, i;float sum = 0, sign = 1;scanf("%d", &n);for(i = 1; i <= n; i++) {sum += sign * (1.0 / i);sign = -sign;}printf("%f\n", sum);return 0;
}

解法三:把功能封装到函数

/* ex1-3 求1-1/2+1/3-1/4+......+1/99-1/100 */#include <stdio.h>float sum(int n)
{int i;float sum = 0, sign = 1;for(i = 1; i <= n; i++) {sum += sign * (1.0 / i);sign = -sign;}return sum;
}int main(void)
{int n;scanf("%d", &n);printf("%f\n", sum(n));return 0;
}

ex1-4 鸡兔同笼
解法一:枚举法,同时枚举鸡和兔的数量x和y。

/* 鸡兔同笼:给定鸡兔的头数和脚数(n和m),计算鸡和兔的数量 */#include <stdio.h>int main(void)
{int n, m, x, y;scanf("%d%d", &n, &m);for(x = 0; x <= n; x++)for(y = 0; y <= n; y++)if(x + y == n && 2 * x + 4 * y == m) {printf("%d %d\n", x, y);x = n;break;}return 0;
}

解法二:枚举法,枚举鸡的数量x,兔的数量y=n-x。

/* 鸡兔同笼:给定鸡兔的头数和脚数(n和m),计算鸡和兔的数量 */#include <stdio.h>int main(void)
{int n, m, x;scanf("%d%d", &n, &m);for(x = 0; x <= n; x++)if(2 * x + 4 * (n - x) == m) {printf("%d %d\n", x, n - x);break;}return 0;
}

解法三:数学法,直接计算兔的数量。

/* 鸡兔同笼:给定鸡兔的头数和脚数(n和m),计算鸡和兔的数量 */#include <stdio.h>int main(void)
{int n, m, y;scanf("%d%d", &n, &m);y = (m - 2 * n) / 2;printf("%d %d\n", n - y, y);return 0;
}

ex1-5 判定大于或等于3的正整数是否为素数

/* ex1-5 判定大于或等于3的正整数是否为素数 */#include <stdio.h>
#include <math.h>int isprime(int n)
{if(n % 2 == 0) return 0;int end = sqrt(n), i;for(i = 3; i <= end; i += 2)if(n % i == 0) return 0;return 1;
}int main(void)
{int n;while(scanf("%d", &n) != EOF)printf(isprime(n) ? "YES\n" : "NO\n");return 0;
}

第4章

例4-7 分段函数
解法:把功能封装到函数

/* 例4-7 分段函数 */#include <stdio.h>int f(int x)
{if(x < 0)return 3 * x + 2;else if(x == 0)return 0;else if(0 < x && x <= 5)return 2 * x - 1;elsereturn x * x + 3;
}int main(void)
{int x;while(scanf("%d", &x) != EOF)printf("y=%d\n", f(x));return 0;
}

ex4-9 根据三角形的三条边计算三角形面积
解法:把功能封装到函数,使用数学函数进行计算

/* ex4-9 根据三角形的三条边计算三角形面积 */#include <stdio.h>
#include <math.h>double area(double a, double b, double c)
{double s = (a + b + c) / 2;return sqrt(s * (s - a) * (s - b) * (s - c));
}int main(void)
{double a, b, c;while(scanf("%lf%lf%lf", &a, &b, &c) != EOF) {printf("area=%5.2f\n", area(a, b, c));}return 0;
}

第5章

ex5-1 计算1+2+3+…+100
解法:使用循环语句while,使用++运算符(++写在前面则先加1再使用,++写在后面则先使用再加1)

/* ex5-1 计算1+2+3+...+100 */#include <stdio.h>#define N 100int main(void)
{int i = 1, sum = 0;while(i <= N)sum += i++;printf("%d\n", sum);return 0;
}

《程序设计技术基础》第1-5章例程相关推荐

  1. 计算机网络基础学测,《计算机网络技术基础》第二1章单元学习测习题-20210622072616.docx-原创力文档...

    <计算机网络技术基础>第二1章单元学习测习题 <计算机网络技术基础>第二1章单元学习测习题 PAGE PAGE3 <计算机网络技术基础>第二1章单元学习测习题 PA ...

  2. python程序设计与基础教程第六章上机实验_《Python程序设计与算法基础教程》教学大纲.doc...

    PAGE 1/ NUMPAGES 2 作者:江红.余青松 定价:59元 ISBN:9787302466833 <算法与程序设计>课程教学大纲 Programming and algorit ...

  3. python程序设计与基础教程第六章上机实验_《Python程序设计与算法基础教程(第二版)》江红 余青松 课后代码题详解...

    (还在更新中-) 这本书对Python的知识点的描述很详细,而且排版看的很舒服 几个例题: 假装自己从零开始学,将一些有代表性.有意思的例题抽取出来 部分复习题: 遇到有意思的复习题,我会拿出来,并且 ...

  4. 《程序设计技术》第九章例程

    <程序设计技术>例程 <程序设计技术>第一章 C语言与程序设计(例程) <程序设计技术>第二章 C语言基础知识(例程) <程序设计技术>第三章 程序控制 ...

  5. 《程序设计技术》第七章例程

    <程序设计技术>例程 <程序设计技术>第一章 C语言与程序设计(例程) <程序设计技术>第二章 C语言基础知识(例程) <程序设计技术>第三章 程序控制 ...

  6. 《程序设计技术》第六章例程

    <程序设计技术>例程 <程序设计技术>第一章 C语言与程序设计(例程) <程序设计技术>第二章 C语言基础知识(例程) <程序设计技术>第三章 程序控制 ...

  7. 《程序设计技术》第五章例程

    <程序设计技术>例程 <程序设计技术>第一章 C语言与程序设计(例程) <程序设计技术>第二章 C语言基础知识(例程) <程序设计技术>第三章 程序控制 ...

  8. 《程序设计技术》第四章例程

    <程序设计技术>例程 <程序设计技术>第一章 C语言与程序设计(例程) <程序设计技术>第二章 C语言基础知识(例程) <程序设计技术>第三章 程序控制 ...

  9. 《程序设计技术》第三章例程

    <程序设计技术>例程 <程序设计技术>第一章 C语言与程序设计(例程) <程序设计技术>第二章 C语言基础知识(例程) <程序设计技术>第三章 程序控制 ...

最新文章

  1. OpenGL中使用glutDisplayFunc(myDisplay),myDisplay里面的代码不显示
  2. Hacker:编写高级语言脚本可破解各个云盘的下载速度限制
  3. Linux技巧:多核下绑定硬件/进程到不同CPU
  4. 用python做一张图片_如何用python下载一张图片
  5. php用户同步,ucenter同步用户登录【转】
  6. swift 运算符快速学习(建议懂OC或者C语言的伙伴学习参考)
  7. 三桥君:如何把SQL Server的数据库导为sql文件
  8. Apple pay 论述
  9. iis 服务器修复,如何修复未找到的Windows 10 inetmgr(IIS管理器)
  10. 代码与国家地区对照表
  11. 计算机音乐制作专业的大学,音乐制作专业哪些大学
  12. 如何申请163 VIP邮箱?163 VIP邮箱如何注册登录?
  13. 共轭相似以及共轭对角化
  14. xx闪购——商品信息
  15. 【数据库】达梦数据库更新key文件
  16. AtCoder Beginner Contest 236 A-D题解
  17. React Native适配安卓IOS刘海屏、异形屏方案
  18. python抠图精确到发丝_ps抠图有一些发丝怎么扣
  19. RT-Thread源码解读-------UART设备
  20. 漳平市举行“宪法宣传周”法治主题毛笔书法创作大赛

热门文章

  1. 2015年1月微信上线原创声明功能:智能添加原创标识 转载自动注明出处
  2. 开源GIS(九)——openlayers中简单要素的添加与geojson数据修改添加
  3. 浅析 golang module
  4. Windows7安装PowerShell5.1方法(Flutter新版本需要)
  5. android gps转换度分秒,如何将GPS数据转换为度分秒
  6. springboot 物联网_【阿里云生活物联网架构师专题】基于在 SpringBoot Java私有云上对接阿里云物联网,实现M2M设备数据流转。...
  7. python练手程序_写的python练习程序
  8. 新泰一中2021年高考成绩查询,牛!泰安新泰一中2018年高考一班级62人全部上本科线...
  9. qt creator 设置按键颜色_Qt编写自定义控件30-颜色多态按钮
  10. offset函数的高级用法_数据验证(数据有效性)结合Offset函数 的综合用法