C语言结构化程序设计实验报告

  • 格式:doc
  • 大小:51.00 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 结构化程序设计

一、 实验目的

1.了解C/C++语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。

2.学会正确使用逻辑运算符和逻辑表达式。

3.熟练掌握if 语句和switch 语句。

4.熟练掌握while 语句、do ...while 语句和for 语句格式、使用方法以及区别,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。

5.掌握break 和continue 程序控制语句的使用。

6.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

7.结合程序掌握一些简单的算法。

8.学习调试程序。

二、实验环境

PC 微机

Windows 操作系统

VS 2019 程序集成环境

三、实验内容与步骤

1.编写程序:根据公式

2

222213121116n ++++= π ,输出 π的值。 要求:

(1)变量π为单精度类型,n 为整型;

(2)计算当n 的取值分别为20,50 ,100,200时的π值,说明什么问题?

(3)修改程序,不给出n 值,而改为求π值,直到最后一项的数值小于10-4 为止。

(4)对修改后的程序,输出π值以及总的项数n 。输出格式为:π=值;n=值。 代码①:

#include

#include

int main()

{

int n,i;

float pi;

double sum = 0;

while ((scanf("%d", &n) != EOF)) {

for (i = 1; i <= n; i++) {

sum += 1.0 / (i * i);

}

pi = (float)sqrt(6 * sum);

printf("%f\n", pi);

sum = 0;

}

return 0;

}

代码②:

#include

#include

int main()

{

int n,i;

float pi;

double sum = 0;

for (i = 1; 1.0 / (i * i) >= 1e-4; i++) {

sum += 1.0 /( i * i);

}

pi = (float)sqrt(6.0 * sum);

n = i;

printf("pi = %f;n = %d",pi,n);

return 0;

}

结果分析:

1.第一问:当n = 20、50、100、200时pi分别为“3.094670、3.122627、3.132077、3.136826”,

由此可知当n越大时,pi的精度越高。

2.第二问:pi =

3.132077,n = 101。

实验总结:这道题主要是运用for语句来实现变量的增长和控制,做题时应注意对限制量的思考。

2.编程实现:由用户从键盘输入一串字符(以回车键结束),统计其中数字、大、小写字母、空格、其它字符的个数。

要求:

(1)通过键盘输入字符。

(2)给出相应的输入/输出信息提示。并按照数字、大写字母、小写字母、空格、其它字符数的顺序输出结果。

代码:

#include

int main()

{

int a = 0, b = 0, C = 0, d = 0,e = 0;

char c;

while ((c = getchar()) != '\n') {

if ('0' <= c && c <= '9') a++;

else if ('A' <= c && c <= 'Z') b++;

else if ('a' <= c && c <= 'z') C++;

else if (c == ' ') d++;

else e++;

}

printf("%d %d %d %d %d", a, b, C, d, e);

return 0;

}

实验结果:

输入:123 asvdu23ADasd @#$a

输出:5 2 9 2 3

实验结果和预期一致。

实验总结:应注意题目要求回车键结束和对各种类型的字符的判断。

3.计算并输出1000以内最大的10个素数以及它们的和。

要求:

(1)在程序内部加必要的注释。

(2)由于偶数不是素数,可以不考虑对偶数的处理。

(3)虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。

(4) 输出形式为:素数1+素数2+素数+…+素数10=总和值。

代码:

#include

int main()

{

int a[11] = { 0 }, sum = 0, n = 0, cnt = 0, j;

for (int i = 1000;cnt < 10; i--) {//从1000倒着搜索,取前十个素数

if (i % 2 == 0) continue;//排除偶数

for (j = 2; j*j <= i; j++) {//判断是否为素数

if (i % j == 0) break;

}

if (j * j > i) {