实验07 循环结构程序设计(二)

合集下载

C语言程序设计实验指导书参考答案

C语言程序设计实验指导书参考答案

C 语言程序设计上机实验指导与习题参考答案(仅供教师内部参考)华南农业大学目录上机实验 (1)实验 1 C 语言程序初步 (1)一、实验目的 (1)二、实验内容 (1)实验 2 基本数据类型、运算和表达式 (3)一、实验目的 (3)二、实验内容 (3)实验 3 基本输入与输出 (5)一、实验目的 (5)二、实验内容 (5)实验 4 选择结构程序设计 (4)一、实验目的 (4)二、实验内容 (4)实验 5 循环结构程序设计(一) (9)一、实验目的 (9)二、实验内容 (9)实验 6 循环结构程序设计(二) (15)一、实验目的 (15)二、实验内容 (15)实验7 数组 (17)一、实验目的 (17)二、实验内容 (17)实验8 字符数组的应用 (22)一、实验目的 (22)二、实验内容 (22)实验9 函数的基本应用 (24)一、实验目的 (24)二、实验内容 (24)实验10 指针与结构体 (26)一、实验目的 (26)二、实验内容 (26)*实验11 链表 (29)一、实验目的 (29)二、实验内容 (29)*实验12 文件 (32)一、实验目的 (32)二、实验内容 (32)上机实验实验1 C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个 C 程序。

(3)通过运行简单的 C 程序,初步了解C 程序的特点。

(4)在教师的指导下,学会使用JudgeOnline 实验系统。

二、实验内容1. 运行第一个C 程序[题目:The first C Program]将下列程序输入TC(或VC++),编译、连接和运行该程序。

void main(){printf("The first C Program\n");}[具体操作步骤]以Turbo C 上的操作为例(1)Windows 进入后,按照第一章中介绍的方法,进入Turbo C。

Python程序设计 第4章 循环结构程序设计(第7次课)2

Python程序设计 第4章 循环结构程序设计(第7次课)2
print score[i],
sum += score[i]
#循环体——对列表元素求和
aver = sum / 8.0 #循环之后,求平均值 print '\naver = ', aver
计算机编程导论
Copyright © SWFU-CISD, 2012. All rights reserved.
Copyright © SWFU-CISD, 2012. All rights reserved. 1-11
为 i 赋初值 1 False
判断 i <= 100? True
判断 i 是否能被 7 整除但不能被 5 整 除 ?
False
True 输出 i
i 自增 1
结束 图 4-10 整除问题的框图
计算机编程导论

1 1 2 1 2 3 1 2 3 4 1 2 n 1 2 3 3 5 3 5 7 3 5 7 9 3 5 (2n 1)
Copyright © SWFU-CISD, 2012. All rights reserved.
1-10
Copyright © SWFU-CISD, 2012. All rights reserved.
计算机编程导论
【例4-8】求1 ~ 100之间能被7整除,但不能同 时被5整除的所有整数 。
开始
【分析】 (1)本题需要对1 ~ 100 范围内的所有数一一进 行判断。 (2)本题的循环次数确 定是100次。 (3)在每次循环过程中 需要用 if 语句进行条件 判断。因此本题是循环 嵌套选择的结构。
1-19
利用for语句实现双层循环嵌套
循环的嵌套是指在一个循环中又包含另外一个 完整的循环,即循环体中又包含循环语句。 while循环和for循环可以相互嵌套。 循环嵌套的执行过程是:一次外循环对应着完 整的一轮内循环。

循环结构程序设计实验报告

循环结构程序设计实验报告

循环结构程序设计实验报告在计算机程序设计中,循环结构是一种非常重要的控制结构,它能够让程序在满足一定条件下重复执行某段代码,从而实现对重复性任务的高效处理。

本次实验旨在通过实际编写程序,掌握循环结构的使用方法及其在程序设计中的应用。

一、实验目的。

本次实验的主要目的是:1. 掌握循环结构的基本概念和语法;2. 熟练掌握for循环、while循环和do-while循环的使用方法;3. 能够运用循环结构解决实际问题。

二、实验内容。

1. 编写一个程序,利用for循环计算1-100的累加和,并输出结果。

2. 编写一个程序,利用while循环计算1-100的累加和,并输出结果。

3. 编写一个程序,利用do-while循环计算1-100的累加和,并输出结果。

4. 编写一个程序,利用循环结构求解实际问题,如计算阶乘、斐波那契数列等。

三、实验步骤。

1. 编写for循环程序。

```c。

#include <stdio.h>。

int main() {。

int sum = 0;for (int i = 1; i <= 100; i++) {。

sum += i;}。

printf("1-100的累加和为,%d\n", sum); return 0;}。

```。

2. 编写while循环程序。

```c。

#include <stdio.h>。

int main() {。

int sum = 0;int i = 1;while (i <= 100) {。

sum += i;i++;}。

printf("1-100的累加和为,%d\n", sum); return 0;}。

```。

3. 编写do-while循环程序。

```c。

#include <stdio.h>。

int main() {。

int sum = 0;int i = 1;do {。

sum += i;i++;} while (i <= 100);printf("1-100的累加和为,%d\n", sum); return 0;}。

《C语言程序设计实验》指导书

《C语言程序设计实验》指导书

《C语言程序设计实验》指导书以下是为大家整理的《c语言程序设计实验》指导书的相关范文,本文关键词为c语言程序设计实验,指导书,c语言程序设计实验,简明版,中北,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。

《c语言程序设计实验》指导书(简明版)中北大学软件学院20XX年10月实验一顺序结构程序设计(2学时)一、实验目的1、熟悉c编译环境、简单c程序结构及书写方式、以及c程序的编辑、编译、连接、运行、调试的步骤;2、掌握c语言的基本数据类型及其输入输出格式,以及输入输出函数的使用方法;3、掌握c语言的算术运算符(特别是自增、自减运算符)、赋值运算符、关系运算符、逻辑运算符、条件运算符、逗号运算符的使用;4、掌握c语言顺序结构程序的执行流程、设计方法,能够根据实际问题灵活使用顺序结构,画出程序的算法流程图,设计出逻辑合理、思路清晰、结果正确的顺序结构程序。

二、实验内容及要求1、实验内容包括8道题目,分为基本内容和选做内容两部分。

要求:(1)基本内容中的实验题目是必须要完成的,选做内容中的实验题目可以根据自己的情况选做或全做(越多越好,适当加分);(2)在实验之前编写出基本内容、选做内容中的所有程序,实验前检查(视未完成情况适当扣分);(3)对于设计型题目,要求画出程序流程图(传统流程图和n-s 图);(4)在上机实验过程中,注意总结和体会上机步骤(编辑、编译、连接、运行、调试、结果分析),注意培养观察、分析和排除编译错误、连接错误和程序逻辑错误的初步能力;(5)上机结束后,应按要求认真书写实验报告(格式见附件)。

2、基本内容(1)[验证型]编辑下列程序,然后进行编译、连接和运行,观察结果,并简要总结简单c程序的结构、书写格式以及上机过程;#includeintmain(){printf(\return0;}(2)[验证型]通过运行下列程序,分析各种格式符的使用方法。

循环程序设计_实验报告

循环程序设计_实验报告

一、实验目的1. 理解循环程序设计的基本原理和方法。

2. 掌握不同编程语言中循环结构的实现方式。

3. 学会使用循环程序解决实际问题。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.8.03. 编程工具:PyCharm三、实验内容1. 循环结构的基本概念循环结构是程序设计中的一种常见结构,用于重复执行一段代码。

在Python中,常见的循环结构有while循环、for循环和嵌套循环。

2. while循环while循环是一种基于条件的循环结构,当条件满足时,循环体中的代码会被重复执行。

实验示例:```pythoni = 0while i < 5:print(i)i += 1```3. for循环for循环是一种基于迭代对象的循环结构,通常用于遍历列表、元组、字符串等可迭代对象。

实验示例:```pythonfor i in range(5):print(i)```4. 嵌套循环嵌套循环是指在循环体内部再嵌套一个循环结构。

实验示例:```pythonfor i in range(3):for j in range(3):print(f"i={i}, j={j}")```5. 循环控制语句循环控制语句用于改变循环的执行流程,包括break、continue和pass。

实验示例:```pythonfor i in range(5):if i == 3:breakprint(i)```6. 循环程序解决实际问题(1)计算1到100的偶数之和```pythonsum = 0for i in range(1, 101):if i % 2 == 0:sum += iprint(sum)```(2)判断一个整数是否为水仙花数```pythonnum = int(input("请输入一个整数:")) temp = numsum = 0while temp > 0:digit = temp % 10sum += digit 3temp //= 10if sum == num:print(f"{num}是水仙花数")else:print(f"{num}不是水仙花数")```四、实验总结通过本次实验,我对循环程序设计有了更深入的了解。

实验作业7 循环结构程序设计(一)

实验作业7 循环结构程序设计(一)
2、设计界面,当程序运行后,在text1和text2中分别输入两个整数,单击“=”按钮后,将两个整数之间的所有整数累加起来并在text3中显示出来。
在窗体上每行4个输出100-200之间所有既可以被3整除又可以被6整除的数,并输出这些数的和。
4、编写程序输出图形,运行界面如下:
5、阅读并运行下面的程序,理解程序功能。
实验小结
实验名称
实验七循环结构程序设计(一)
实验时间
第八周
实验目的
(1)掌握由while语句构成的循环结构
(2)掌握由for语句构成的循环结构
(3)学会编写循环结构程序解决实际问题
实验环境
硬件:微型计算机
软件:Microsoft Visual Basic 6.0
实验内容
1、求100以内所有奇数的和,并将结果输出在窗体上。

程序设计基础(C语言)实验报告

程序设计基础(C语言)实验报告

程序设计基础(C语言)实验报告课程名称:程序设计基础(C语言)姓名:学号:年级:专业:指导教师:实验地点:目录实验一顺序结构程序设计实验二选择结构程序设计实验三循环结构程序设计实验四数组及其应用实验五函数及其应用实验六指针及其应用实验(一)顺序结构程序设计一、实验目的1.掌握顺序结构程序的设计思想,领会顺序结构的程序执行时顺次执行的特点。

2.掌握赋值语句的特点、功能。

3.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。

4.掌握编写程序和调试程序的方法。

二、实验内容及要求1.用下面的scanf函数输入数据使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。

#include <stdio.h>int main(){int a,b;float x,y;char c1,c2;scanf("a=%db=%d",&a,&b);scanf("%f%e",&x,&y);scanf("%c%c",&c1,&c2);printf("a=%d,b=%d,x=%.1f,y=%.2f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);return 0;}运行时分别按以下方式输入数据,观察输出结果,分析原因(□表示空格,↙表示回车)。

(1)a=3,b=7,x=8.5,y=71.82,A,a↙(2)a=3□b=7□x=8.5□y=71.82□A□a↙(3)a=3□b=7□8.5□71.82□A□a↙(4)a=3□b=7□8.5□71.82Aa↙(5)3□7□8.5□71.82Aa↙(6)a=3□b=7↙8.5□71.82↙A↙a↙(7)a=3□b=7↙8.5□71.82↙Aa↙(8)a=3□b=7↙8.5□71.82Aa↙通过此题,总结输入数据的规律和容易出错的地方。

东北石油大学C实验教案2017年度第3学期

东北石油大学C实验教案2017年度第3学期

实验名称
循环结构程序 设计(二)
实验次数
第 4 次
是否上交报告

备注
实验内容(教学过程) 实 验 目 的
1.掌握 for 语句的语法结构和执行顺序。 2.掌握 for 语句执行次数的计算方法。 3.掌握 break 语句和 continue 语句的用法。 4.掌握适合用 for 语句编程的循环问题。 编程题: 1.求下面表达式的值。1*2+2*3+„„+20*21。 2.输入一个整数 n,求 1+2+3+„„+n 的累加和。 3.输出[1,40]之间的所有能被 3 整除的数,及数的个数。 4.输入两个整数,n1,n2(要求 n1<n2),统计两整数范围内被 3 整除的数的 个数。 5.求 1-3+5-7+„„-99+101 的值。 6.输出斐波那契(Fibonacci)数列(1,1,2,3,5,8,13„„)的前 20 项 7.从键盘上输入 10 个整数,求出其中的最大值。 8.用 for 循环求 n! 。 9.求 1!+2!+3!+„„+n! ,n<12,要求用一重循环设计程序。 10.编程求出 1~20 之间的奇数之和,偶数之积。 11.打印水仙花数。水仙花数是一个三位数,其各位数字的立方和与原数相 等。 12.从键盘输入一个任意正整数判断其是否为素数,若为素数则输出"YES", 否则输出" NO"。 13.任意输入 10 个整数,求其中偶数之积。 14.计算数列的第 n 项。
实 验 目 的
实 验 项 目
思 考 题
实 验 报 告 要 求
实验名称
选择结构程序设计

浙教版(2023)五年级信息技术下册 第14课 循环结构(二) 教案2(表格式)

浙教版(2023)五年级信息技术下册 第14课 循环结构(二) 教案2(表格式)
2. 展示一些生活中的循环现象,如四季更替、钟表秒针的走动等,引导学生理解循环的概念。
1. 积极回答教师提出的问题,回忆之前学过的知识。
2. 认真听讲,理解循环的概念和意义。
通过回顾和展示生活中的循环现象,引导学生理解循环结构的概念和意义,为后续学习打下基础。
讲授新课
1. 计次循环
(1)解释计次循环的概念和作用,展示一些计次循环的示例代码。
2. 学生自行编写一个简单的计次循环和条件循环的代码,并运行调试。
3. 学生展示自己编写的代码,并讲解代码实现的思路和意图。
1. 通过教师给出的例子和学生的小组讨论,加深学生对计次循环和条件循环的理解,掌握其异同点。
2. 通过学生的实践编写代码和展示讲解,提高学生的编程能力和逻辑思维。
课堂小结
安排学生练习写一个简单的计次循环和条件循环的代码,并运行调试。
```
3. 安排学生小组讨论,分析这两个例子中循环结构的特点和异同点,并给出结论。
4. 引导学生思考在实际应用中,如何根据不同的需求选择合适的循环结构。通过例子进行说明,例如需要重复执行某个操作时可以使用计次循环,当需要重复执行某个操作直到满足某个条件时可以使用条件循环。
1. 学生小组讨论分析教师给出的两个例子中的循环结构的特点和异同点,并得出结论。
(2)引导学生了解计次循环的语法和结构特点。
(3)通过实例演示,让学生了解计次循环的实现过程和注意事项。
2. 条件循环
(1)解释条件循环的概念和作用,展示一些条件循环的示例代码。
(2)引导学生了解条件循环的语法和结构特点。
(3)通过实例演示,让学生了解条件循环的实现过程和注意事项。
(1)认真听讲,理解计次循环的概念和作用。
课堂练习

C语言课件第5章循环结构程序设计2

C语言课件第5章循环结构程序设计2
18
思考 1、如果去掉循环体 中的大括号会怎样? 2、在循环体中,使 循环条件趋向于不满 足(假)的语句是哪 条?
第5章
循环结构程序设计
举例
while和do-while循环的比较。
此程序的 功能?
#include <stdio.h> int main() { int i,sum=0; scanf("%d",&i); while(i<=10) { sum=sum+i; i++; } printf("sum=%d\n",sum); return 0; }
第5章
循环结构程序设计
举例
现有某班20名学生的C语言成绩,求该班学生的C语 言的平均成绩。即:输入20个学生的成绩,计算平 均值,输出平均值。
分析:定义变量表示学生的成绩、全班总和、平均成绩。 如果定义20个变量保存20 算法设计: 个成绩,程序中计算成绩 第一步:输入20个学生的成绩 总和会有什么问题? 第二步:计算成绩总和 (用累加求和的方法)
运行结果:凵2550
#include <stdio.h> int main() { int i=1, n; float fac=1; printf("请输入n:"); scanf ("%d",&n); while (i<=n) { fac=fac*i; i++; } printf("%.0f\n",fac); return 0; } 请输入n:5
分析
求1~100的累加和。
换一种思路:
sum=sum+n;
首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依次 取1、2、……、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n;”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1~100的累 计和。

C语言程序设计 上机实验指导与习题 参考答案

C语言程序设计 上机实验指导与习题 参考答案

C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。

C语言程序设计学习指导与实践教程习题和实验解答(第2章)2

C语言程序设计学习指导与实践教程习题和实验解答(第2章)2

C语言程序设计学习指导与实践教程——第2章习题和实验解答2.1 C语言概述1.【习题解答】1结构化程序有三大基本结构:顺序、分支和循环.2..算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。

或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。

有穷性:一个算法应包含有限的操作步骤而不能是无限的。

确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的,有零个或多个输入输出,有一个或多个输出。

有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。

对于程序设计人员,必须会设计算法,并根据算法写出程序。

可以用自然语言、流程图、伪代码和计算机语言表示算法。

3.C语言的主要特点有:语言简洁、紧凑,使用方便、灵活。

ANSI C一共只有32个关键字;控制语句丰富,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分;运算符丰富,共有34种;数据结构类型丰富;具有结构化的控制语句;语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。

因此有人把它称为中级语言;生成目标代码质量高,程序执行效率高;与汇编语言相比,用C语言写的程序可移植性好。

4.用传统流程图表达如下:5. 计算机硬件系统的组成:计算机硬件系统主要由运算器、控制器、存储器、输入设备和输出设备构成,运算器和控制器合称为中央处理器(CPU),输入设备和输出设备统称为外部设备。

6.计算机网络常用的传输介质:分为有线介质和无线介质;有线介质包括光纤、同轴电缆和双绞线;无线介质包括红外信号、微波等。

2.2 数据类型与表达式1.【习题解答】一、选择题1.D2.B3.A4.B5.A6.B7.D8.D9.C二、填空题1.整型、实型、字符型、枚举类型2.3.5000003.逗号运算符4.三,自右向左5.1,06.32767三、编程题1.已知球的半径为1.5cm,计算球的体积。

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

C语言循环结构程序设计实验报告
运行结果:1!+2!+3!+.+25!=1.61587e+25
while语句:
main()
{ float n=1,s=0,t=1;
while(n<=25)
{ t=t*n;
s=s+t;
n++;
}
printf(“1!+2!+3!+…+25!=%e\n”,s);
}
do-while语句:
main()
{ float n=1,s=0,t=1;
(3)计算并输出Σ(2n+1)超过1000的第一个n值。
n=1
main()
{ int n=1,sum=0;
for(; ; n++) sum=sum+(2*n+1);
if(sum>2000) break;
printf(“n=%d,sum=%d\n”,n,sum);
}
if(sum>1000)break;for中的表达式2不能省去
while语句do-while语句
#include<stdio.h>#include<stdio.h>
void main() void main()
{{
int i=1,sum=0; int i=1,sum=0;
while(i<=100) do
{ {
sum=sum+i; sum=sum+i;
i++;i++;
5.某班有学生n人,从终端读入n及n个人学生的成绩,试编程实现以下功能:
①印出前3个最好成绩及取得每个最好成绩的人数;

MATLAB实验七 循环结构程序设计

MATLAB实验七 循环结构程序设计

1.根据n3212222211116+⋯+++=π,求π的近似值。

当n 分别取100、1000、10000时,记过是多少? n=100程序设计: n=100; i=1:n; f=1./i.^2; x=sum(f); y=sqrt(6*x) 运行结果: x =3.1321 n=1000 程序设计: n=1000; i=1:n; f=1./i.^2; x=sum(f); y=sqrt(6*x) 运行结果: x =3.1406 n=10000 程序设计: n=1000; i=1:n; f=1./i.^2; x=sum(f); y=sqrt(6*x) 运行结果: x =3.1415 2.根据y=1+1-n 215131+⋯++,求: (1)y<3时的最大n 值。

(2)与(1)的n 值对应的y 值。

程序设计: y=1;n=1; while(y<3)n=n+2; y=y+1/n; end y=y-1/n n=(n+1)/2 运行结果: y =2.9944 n =57 3.考虑以下迭代公式:x x nn b a+=+1其中a 、b 为正的常数。

(1)编写程序求迭代的结果,迭代的终止条件为1051-+≤-x x n n ,迭代初值x=1.0,迭代次数不超过500次。

程序设计: x=1.0; a=2; b=3;x=a/(b+x); n=1;while(abs(x-(a/x-b))> 10e-5&n<=500) x=a/(b+x); n=n+1; end x n运行结果: x =0.5616 n =6(2)如果迭代过程收敛于r ,那么r 的准确值是242ab b+±-,当(a,b )的值取(1,1)、(8,3)、(10,0.1)时,分别对迭代结果的准确值进行比较。

(a,b)取(1,1)程序设计:x=1.0;a=1;b=1;x=a/(b+x);n=1;while(abs(x-(a/x-b))>10e-5&n<=500)x=a/(b+x);n=n+1;endxr1=(-b+sqrt(b^2+4*a))/2r2=(-b-sqrt(b^2+4*a))/2运行结果:x =0.6181r1 =0.6180r2 =-1.6180(a,b)取(8,3)程序设计:x=1.0;a=8;b=3;x=a/(b+x);n=1;while(abs(x-(a/x-b))>10e-5&n<=50 0)x=a/(b+x);n=n+1;endxr1=(-b+sqrt(b^2+4*a))/2r2=(-b-sqrt(b^2+4*a))/2运行结果:x =1.7016r1 =1.7016r2 =-4.7016(a,b)取(10,0.1程序设计:x=1.0;a=10;b=0.1;x=a/(b+x);n=1;while(abs(x-(a/x-b))>10e-5&n<=50 0)x=a/(b+x);n=n+1;endxr1=(-b+sqrt(b^2+4*a))/2r2=(-b-sqrt(b^2+4*a))/2运行结果:x =3.1127r1 =3.1127r2 =-3.21274.已知⎪⎪⎩⎪⎪⎨⎧>+-=======---3,23,12,01,1321321nnnnfffffffnnnn求ff1001~中:(1)最大值、最小值、各数之和。

Matlab上机实验答案

Matlab上机实验答案

Matlab 上机实验答案实验一MATLAB运算基础1.先求以下表达式的值,尔后显示 MATLAB 工作空间的使用状况并保存所有变量。

2sin850(1)z11 e2>>z1=2*sin(85*pi/180)/(1+exp(2)) z1 =(2) z21 1 x2212iln( x) ,此中x5 2>>x=[2 1+2i;-0.45 5];>>z2=1/2*log(x+sqrt(1+x^2))z2 =(3) z3e0.3a e sin(a0.3) ln0.3 a22>>a=-3.0:0.1:3.0;>>z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) (>> z33=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)可以考据 z3==z33 ,能否都为 1)z3 =Columns 1 through 5Columns 6 through 10Columns 11 through 15Columns 16 through 20 Columns 21 through 25 Columns 26 through 30 Columns 31 through 35 Columns 36 through 40Columns 41 through 45 Columns 46 through 50 Columns 51 through 55 Columns 56 through 60Column 61t 20 t1(4) z4t 211t 2 ,此中t 22t 1 2t3>>t=0:0.5:2.5;>>z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^2-2.*t+1)z4 =002.已知:12344131A 34787, B2033657327求以下表达式的值:(1)A+6*B 和 A-B+I (此中 I 为单位矩阵)(2)A*B 和 A.*B(3)A^3 和 A.^3(4)A/B 及 B\A(5) [A,B] 和[A([1,3],:);B^2]>>A=[12 34 -4;34 7 87;3 65 7];>>B=[1 3 -1; 2 0 3;3 -2 7];>>A+6*Bans =1852-10467105215349>>I=eye(3);>>A-B+Ians =1231-3328840671(2)>> A*Bans =684462309-72596154-5241>>A.*Bans =1210246802619-13049(3)>> A^3ans =372262338244860424737014918860076678688454142118820>>A.^3ans =172839304-643930434365850327274625343 (4)>> A/Bans =>>B\Aans =(5)>>[A,B]ans =1234-413-13478720336573-27 >>[A([1,3],:);B^2]ans =1234-436574511101920-5403.设有矩阵 A和B1234530166789101769A 1112131415, B02341617181920970212223242541311(1)求它们的乘积 C。

循环结构程序设计课后习题及答案

循环结构程序设计课后习题及答案

循环结构程序设计习题及答案1、循环语句的三要素分别是、、;2、for语句括号内的3个表达式的作用分别是、、;3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整地,只有当时,才结束整个循环;4、在循环结构中,break语句的作用是;continue语句的作用是;5、当循环条件一开始就为假时,对于while语句、do…while语句、for语句,分别执行循环体次、次、次;6、下面程序段的执行次数:int a=0;whilea=0{ printf"good\n";a--;}7、下面程序段的执行次数:int a=0;whilea==0{ printf"good\n";a--;}8、下面程序段的执行次数:int a=1;whilea=1{ printf"good\n";a++;}9、下面程序段的执行次数:int a=1;whilea==1{ printf"good\n";a++;}10、下列程序段的运行结果是;fori=5;i>=0;i--printf“%d “,i;11、下列程序段的运行结果是;forn=1;n<20;n=n+3printf“%d “,n;12、下列程序段的运行结果是;for ch='a' ;ch<='e' ;ch++printf“%d“,ch-97;13、下列程序段的运行结果是;fori=1,j=5 ; i<j ; i++,j--printf“i=%d j=%d\n“,i,j;14、下列程序段的运行结果是;forn=1 ; nn<20 ; n++printf“%d \n“,n+n;二、选择题1、下列程序段中,死循环的是A、for i=1; ;B、i=32767;{ if++i%2==0 continue; doif++i%3==0 break; { ifi<0 break;} }while++i;C、i=1;D、fori=1; ;whilei--; if++i<10 break;2、下列程序段中,不是死循环的是A、int i=10;B、for ; 1;while1{ i=i%100+1;ifi>100 break;}C、int a=0;D、int x=21;do whilex{ ++a; --x;}whilea>=0;三、阅读程序,写出程序运行结果;1、include"stdio.h"main{int i=0,sum=1;do{sum+=i;i++;}whilei<5;printf"%d\n",sum;}程序运行结果:2、include"stdio.h"main{int a,b;b=10;a=1;whilea<=ba=2;printf"%d\n",a;}程序运行结果:3、include"stdio.h"main{int x=2;whilex--;printf"%d\n",x;}程序运行结果:4、include"stdio.h"main{int x=3;do{printf"%d\n",x-=2;}whilex;}程序运行结果:5、include"stdio.h"main{int i;fori=1;i<=5;i++switchi%5{case 0:printf"";break;case 1:printf"";break;case 2:printf"&";break;default:printf"\n";}}程序运行结果:6、include"stdio.h"main{char ch;whilech=getchar=''putchar++ch;}程序运行结果:7、include"stdio.h"main{int i,j;fori=0;i<=5;i++{forj=1;j<10;j++ifj==5 break;ifi<2 continue;ifi>2 break;printf"j=%d\n",j;}printf"i=%d\n",i;}程序运行结果:8、include"stdio.h"main{int x ,y;x=37,y=13;whilex=y{ifx>yx=x-y;ify>xy=y-x;}printf"x=%d\n",x;}程序运行结果:四、编程题1、输出下列图案12 43 6 94 8 12 165 10 15 20 252、输出下列图案3、编程求2-4+6-8+…-100+102的值;4、输出公元1500年至2500年所有的闰年的年号;5、从键盘上输入若干学生的C语言成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入;循环结构程序设计参考答案一、填空题、1.循环条件循环体循环控制变量2.循环变量赋初值循环测试条件循环变量更新3.执行整个周期外层循环条件为假4.提前结束包含它的循环语句的执行提前结束本次循环周期开始执行下一次循环周期5.0 1 06.07. 18.无数9. 110.5432111.147****161912.0123413.I=1,j=5I=2,j=414.14916二、选择题1. B2. D三、程序运行结果1.112.163.-14.15.&6.bgufsoppo7.i=5J=38.x=1四、编程题1.include"stdio.h"main{int i,j;fori=1;i<=5;i++{forj=1;j<=i;j++printf"%d ",ij;printf"\n";}}2.include"stdio.h"main{int i,j;fori=5;i>=1;i-=2{forj=1;j<=i;j++printf"";printf"\n";}}3.include"stdio.h"main{int i,y=1,s=0;fori=2;i<=102;i+=2{ s=s+yi;y=-1; y=-y; }printf"2-4+6+...-100+102=%d",y;}4.include"stdio.h"main{int i;fori=1500;i<=2500;i++ifi%4==0&&i%100=0||i%400==0printf"%d ",i;}5.include"stdio.h"main{float cj,min,max=0;printf"请输入学生成绩,输入负数时结束:\n";scanf"%f",&cj;min=cj;whilecj>=0{ifcj>maxmax=cj;ifcj<minmin=cj;scanf"%f",&cj;}printf"max=%f\nmin=%f",max,min; }。

程序设计语言实验指导书12版

程序设计语言实验指导书12版

《程序设计语言》实验指导书徐东燕编北方民族大学计算机科学与工程学院2012年9月目录实验一 C语言编程环境熟悉及简单程序的编写(验证型实验,2学时) (3)实验二分支结构程序设计(设计型实验,2学时) (6)实验三循环结构程序设计(设计型实验,2学时) (8)实验四函数程序设计(设计型实验,2学时) (10)实验五数组程序设计((设计型实验,2学时) (12)实验六指针程序设计(设计型实验,2学时) (14)实验七结构体程序设计(设计型实验,2学时) (15)实验八程序结构与递归函数(综合性实验,2学时) (16)实验九指针进阶及综合程序设计(综合型实验,2学时) (17)实验十文件的程序设计(设计型实验,2学时) (18)参考文献 (20)课程编号:11101203 课程类别:专业基础课适用专业:计算机科学与技术、软件工程、网络工程、信管专业课程总学时:76 实验课学时:20开设实验项目数:10实验一C语言编程环境熟悉及简单程序的编写(验证型实验,2学时)一、实验目的与要求实验环境1.熟悉Cfree开发环境或Visual C++ 6.0的使用环境;2.掌握Cfree开发环境或Visual C++ 6.0环境下建立C程序的步骤;3.掌握C程序在Cfree开发环境或Visual C++ 6.0环境下的编辑、调试和运行的步骤、方法;4.理解C程序的一般结构;5.理解并掌握程序的顺序结构程序设计;6.在Cfree开发环境或Visual C++ 6.0环境下编写并运行基本的C程序;7.理解程序调试思想,能修改简单的C语法错误;8.掌握算术、赋值表达式,输入输入语句和简单数据处理方法。

二、实验环境1.微机每人一台,要求PⅢ以上处理器。

2.windows2000/xp操作系统。

3.Cfree开发环境或或Visual C++ 6.0开发环境。

三、实验预习与准备1.计算机基本操作练习。

2.Cfree开发环境或Visual C++ 6.0软件使用预习。

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

实验七循环结构序程序设计(二)循环结构是三种基本程序结构之一,是用于解决复杂问题的一类程序结构。

在实验六中已经学习了循环结构的基本概念,以及DO循环语句和DO WHILE循环语句的基本功能和使用规则,但这仅是循环结构的基本内容,还需要学习和掌握循环结构的综合应用,以及更复杂的循环结构,用于解决更复杂的问题。

循环结构允许嵌套,嵌套的循环结构称为多重循环,即一个循环结构的循环体中包含另一个循环结构,根据实际需要可使用多层嵌套。

FORTRAN90新增了强制性终止循环语句CYCLE 和EXIT,使用这两条语句可在循环体执行过程中提前终止本次循环或者整个循环。

这两条语句的使用虽然不符合结构化程序设计思想,但使用得当,可使用程序简洁、短小、高效。

本次实验是学习和掌握循环结构的综合应用的一次实系统验活动。

通过本次实验,能够设计和编写比较复杂的循环结构程序。

一.实验目的1.进一步掌握三种基本循环结构的使用。

2.掌握强制性终止循环语句EXIT和CYCLE的基本功能和使用规则,以及相互区别。

3.掌握嵌套循环结构概念和应用。

4.掌握顺序结构、选择结构和循环结构相互嵌套和综合应用。

5.掌握设计和编写较复杂程序的基本技能。

二.实验内容11.问题描述公元五世纪末,我国古代数学家张丘建在《算经》中提出了“百钱买百鸡问题”:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。

百钱买百鸡,问公鸡、母鸡、小鸡各几何?”意思是:公鸡每只5元,母鸡每只3元,小鸡一元三只。

100元买100只鸡。

公鸡、母鸡、小鸡各买多少只?编写程序实现之。

2.算法设计求解本题,有两个限定条件:其一是所有的鸡共计100只;其二是所有买鸡的钱共计100元。

根据这两个条件可列出下面两个方程式:(设公鸡、母鸡和小鸡数分别为x、y、z) x+y+z=1005x+3y+z/3=100这是一个三元一次方程组,但是其限定条件也就是方程式只有两个,这就意味着它是一个多解题。

求解该问题,有多种解法,可利用计算机快速计算的特点采用试探法求解该问题。

公鸡、母鸡和小鸡数各用0、1、2、3、…、100去试探是否满足上述方程组,共需试探101×101×101=1030301次。

用三重循环结构设计算法和编写程序,通过分析,设计算法,绘制框图,如图7-1所示。

每层循环的循环次数确定,都是101次,所以用“计数型”循环结构实现,程序中使用DO 循环语句。

图7-1 框图最外层out中间层mid最内层in3.程序编写根据算法和框图,设计和编写不完整示例程序如下(请在下划线空白处填充正确内容):程序7-1:!班级:???!姓名:???!时间:???!求解百钱买百鸡PROGRAM problem01INTEGER :: x,y,z,n=0,sumREAL moneyout: DO x=0,100mid: DO y=0,100in: DO z=0,100sum=money=IF ( .and. ) THENn=n+1WRITE(*,100) n,x,y,zEND IFEND DO inEND DO midEND DO out100 FORMAT (1X,'第',I2,'组解:','公鸡=',I2,'只',2x,'母鸡=',I2,'只',2x,'小鸡=',I2,'只') PRINT *,'共计',n,'组解'END4.实验要求●分析问题,理解算法和程序,将程序填写完整。

●掌握“计数型”循环结构、DO循环语句、循环嵌套关系。

●在D盘上创建新工作区:shiyan07和新项目:xm71。

●在项目xm71内创建源程序文件:xm71.f90,同时在文件中编辑输入给定程序7-1。

●在项目xm71内编译、构建、运行、调试程序。

●将输出结果以注释形式编辑输入到源程序文件xm71.f90末尾。

●改写程序,提高通用性(总钱数和总鸡数从键盘输入,方程系数通过PARAMETER语句定义)。

运行输入几组不同数据,获得不同运行结果。

●改写程序,提高运行效率(减少内循环体中块IF语句执行次数)。

提示:块IF语句在x+y+z≤100时执行才有意义。

可课后完成。

5.实验步骤●分析问题,理解框图和程序,完成程序填空,得到正确完整程序。

●启动软件开发环境Microsoft Developer Studio。

●在D盘上创建新工作区:shiyan07。

●在工作区shiyan07内创建新项目:xm71。

●在项目xm71内创建源程序文件xm71.f90,编辑输入源程序文本7-1。

●编译、构建、运行、调试程序。

得到输出结果。

●将输出结果以注释形式编辑输入到源程序文件末尾。

●在工作区shiyan07内创建新项目:xm711,在新项目内创建源程序文件xm711.f90,在文件中编辑输入已改写的通用程序。

编译、构建、运行、调试程序。

输入自定的几组数据,获得输出结果。

三.实验内容21.问题描述验证哥德巴赫猜想。

哥德巴赫提出,一个不小于6的偶数必定能表示为两个素数之和。

如:8=3+5。

求6至20之间的所有偶数的两个素数之和。

编写程序实现之。

输出格式为:6=3+38=3+510=3+710=5+5……2.算法设计求解本题,需要将6至20之间任一偶数分解为a和b两个奇数(3以上的素数必然是奇数);验证a和b是否为素数。

a从3开始验证,如果a是素数,则验证b(b=100-a),如果如果b是素数,则满足哥德巴赫猜想,输出验证结果,否则将a 加2后再验证,依此类推,直至a大于50验证结束。

验证a是素数可参考下面程序段:m=INT(SQRT(REAL(a)))i=3in: DO WHILE ((i<=m) .AND. (MOD(a,i)/=0))i=i+2ENDDO inIF (i>m) PRINT *,n,’是素数。

’根据分析,可自行设计算法和绘制框图。

3.程序编写根据算法和框图,设计和编写不完整示例程序如下(请在下划线空白处填充正确内容):程序7-2:!班级:???!姓名:???!时间:???!验证哥德巴赫猜想PROGRAM mainINTEGER :: a,b,i,m,nout: DO n=6,20,2mid: DO a=3,n/2,2m=INT(SQRT(REAL(a)))i=3in1: DO WHILE ( )i=i+2ENDDO in1IF (i>m) THENb=n-am=i=3in2: DO WHILE ((i<=m).AND.(MOD(b,i)/=0))i=i+2ENDDO in2IF ( ) THENPRINT *,n,'=',a,'+',bENDIFENDIFEND DO midEND DO outEND4. 实验要求●分析问题,设计算法,绘制框图,将程序填写完整。

●在工作区shiyan07内创建新项目:xm72。

●在项目xm72内创建源程序文件:xm72.f90,同时在文件中编辑输入给定程序7-2。

●在项目xm72内编译、构建、运行、调试程序。

●将输出结果以注释形式编辑输入到源程序文件xm72.f90末尾。

●改写程序,提高通用性和输出数据的可读性(验证偶数的区间上界(如:20、100、200等)从键盘输入,按数据有格式输出方式输出验证结果,同一个偶数,多个验证结果输出到一行上,用“,”间隔,按3位整数格式输出)。

5.实验步骤●分析问题,设计算法,绘制框图,将程序填写完整。

●在工作区shiyan07内创建新项目:xm72。

●在项目xm72内创建源程序文件xm72.f90,编辑输入源程序文本7-2。

n11n )1(31211+-+⋅⋅⋅-+-● 编译、构建、运行、调试程序。

得到输出结果:● 将输出数据以注释形式编辑输入到源程序文件末尾,可以只输入部分结果。

● 在工作区shiyan07内创建新项目:xm721,在新项目内创建源程序文件xm721.f90,在文件中编辑输入已改写程序。

编译、构建、运行、调试程序。

输入自定的几组数据,获得输出结果。

四.实验内容31.问题描述计算其中n 为满足不等式11+22+33+…+n n>A 的最小项数n。

A 从键盘输入,如:10000。

编写程序实现之。

2.算法设计求解本题,先通过“条件型”循环结构求最小项数n ,整型数,然后再通过“计数型”循环计算级数之和。

计算级数之和时要注意每项的正负变化。

用实型变量sum 存储级数之和,实型变量term 存储级数通项。

分析问题,自行设计算法和绘制框图。

3.程序编写通过需求分析,设计和编写含有错误的示例程序如下(请查找并改正程序中错误)。

程序7-3:!班级:??? !姓名:??? !时间:??? !计算级数之和 PROGRAM mainREAL :: sum=1,term,sign=1,s=0 INTEGER :: A,i,n=0PRINT*,’请输入一个较大整数(如:10000):’ READ *, A DO s=s+2**n n=n+1IF (s>A) CYCLE ENDDO DO i=1,n-1,2sign=-1*signterm=sign*1.0/isum=sum-termENDDOWRITE(*,*) sumEND4. 实验要求●分析问题,设计算法,绘制框图,查找并改正程序错误,得到正确程序。

●在工作区shiyan07内创建新项目:xm73。

●在项目xm73内创建源程序文件:xm73.f90,同时在文件中编辑输入给定程序7-3●在项目xm73内编译、构建、运行、调试程序。

●将输入数据和输出结果以注释形式编辑输入到源程序文件xm73.f90末尾。

●改写程序,提高程序结构化程度(将特殊DO循环语句改为用DO WHILE语句实现)。

5.实验步骤●上机实验前,完成程序改错,得到正确程序。

●在工作区shiyan07内创建新项目:xm73。

●在项目xm72内创建源程序文件xm73.f90,编辑输入源程序文本7-3。

●编译、构建、运行、调试程序。

输入数据:10000、20000,得到输出结果。

●将输入输出数据以注释形式编辑输入到源程序文件末尾。

●在工作区shiyan07内创建新项目:xm731,在新项目内创建源程序文件xm731.f90,在文件中编辑输入已改写程序。

编译、构建、运行、调试程序。

输入自定的几组数据,获得输出结果。

五.实验小结本次实验是深入学习、理解和掌握循环结构程序设计的一次综合实验,实验效果对掌握较复杂的循环结构程序设计方法和技术至关重要。

通过本次实验,学生对循环结构嵌套概念有一个完整和准确理解,掌握循环结构的综合应用和编写含有多重循环结构程序的基本技能,掌握循环结构的强制性终止语句,掌握循环和分支结构的嵌套应用。

相关文档
最新文档