实验4_循环结构程序设计1题目及解答
循环结构程序设计典型例题
特别注意此题中变量不能定义成
此题可做改进,在循环时确保
for(a=1;a<=99;a++)
for(b=1;b<=99;b++)
for(c=1;c<=99;c++)
if(a>b&&b>c&&a+b+c<100
&&c*c* (a*a+b*b)==a*a*b*b)
n++;
例6:e=1+1/1!+1/2!+….+1/n!(精度为1e-6)
分析:用变量a从1至U sqrt( 2698)-1循环。变量s初值为6000。若2698%a==0,则b=2698/a,若s>a+b,则s=a+b,并保存b的值在变量t.
mai n()
{int a,b,s=6000,t;
for( a=1;a<sqrt(2698);a++)
{if(2698%a==0)
for(a=n; a<=m;a++)
if(a%3==0)
{ x=a;
while(x>0)
{i=x%10;
if(i==5){printf (“%ld”,a);break;}
x=x/10;
}
}
}
问:能把
例
算法分析:
1.
2.
3.若a%i==0,结束i的循环,执行第4步
4.若i==a,把a累加到s上。
5.
注意:此题中执行第
float s=0;
for(n=1; n<=30 ;n++)
实验四 循环结构程序设计
#include "stdio.h"
void main( )
{
}
2.从整数1开始向上找,直至m和n中较小的数,每找到一个能同时被m和n整除的整数,将其存入一个变量中,当循环结束时,变量中存放的即为最大公约数。设n为m和n中较小的数,则如下程序段可实现:
for(k=1; k<=n; k++) if(m%k==0 && n%k==0) x=k;
}
2.字符常量’0’与数值常量0是不同的。
(六)下面程序的功能是:计算1到100之间的奇数之和及偶数之和,并输出。请在程序中的横线上填入适当的内容,将程序补充完整并运行。
/* c4-6.c */
/* 计算1到100之间的奇数之和及偶数之和 */
#include "stdio.h"
void main( )
六、思考题
(一)求两个正整数x和y的最大公约数,请填空。
/* 求最大公约数程序 */
#include "stdio.h"
void main( )
{ int x,y,t,i;
printf("请输入两个数:");
scanf("%d,%d",&x,&y); /*注意scanf语句中间用“,”隔开*/
if(x > y){t = x; x = y; y = t;}
程序的基本结构如下:
/* c4-9.c */
/* 按条件求数列和 */
#include "stdio.h"
void main( )
{定义变量;
变量赋初值;
实验报告4
实验四:循环结构程序设计班级:学生姓名:学号:一、实验目的1、理解循环的概念2、理解并掌握循环结构相关语句的含义、格式及使用3、学会循环的应用及控制,包括:①掌握使用循环输入多个数据的方法②掌握在多个数据中有选择地输出数据的方法③掌握在多个数据中对某种数据进行计数的方法④掌握求多个数据中最大值、最小值的方法⑤掌握使用break、continue语句终止循环4、掌握循环的嵌套二、知识要点1、循环变量、循环条件、循环体的概念2、三种循环语句的一般格式、执行过程3、理解选择结构与循环结构中“条件表达式”之不同含义4、二重循环的执行过程三、实验预习(要求做实验前完成)1、循环变量的主要用途是:2、用循环求多个数的和之前,先要把和的初始值赋为:3、用循环求多个数的乘积之前,先要把乘积的初始值赋为:4、字符变量能否作为循环变量?5、循环过程中,如果循环条件成立,但需要结束循环,可采用什么办法?6、什么叫循环的嵌套?四、实验内容(要求提供:①算法描述或流程图②源程序)1. 编程,利用循环计算以下表达式的值:(5+52)*(4+42)*(3+32)*(2+22)*(1+12)*(1/2+1/3+1/4+1/5)(for循环)include <stdio.h>#include <stdlib.h>int main(){int a;double sum=1,sum1=0;for(a=1;a<=5;a++)sum=sum*(a+a*a);printf("结果为%lf\n",sum);for(a=2;a<=5;a++)sum1=sum1+(1.0/a);printf("%lf\n",sum1);printf("结果为%lf\n",sum*sum1);return 0;}2. 编程,从键盘输入若干个整数,当输入0时,输入停止。
实验结论循环结构程序设计
实验结论循环结构程序设计一、引言二、实验目的三、实验原理1.循环结构的概念2.循环结构的分类3.循环结构程序设计的基本原则四、实验步骤1.确定循环次数和循环条件2.选择合适的循环结构语句3.编写循环体语句五、实验结果分析六、结论与讨论引言:编程是计算机科学中非常重要的一部分,而程序设计中常用到的循环结构也是非常重要的一种控制流程方式。
本文将介绍如何进行循环结构程序设计,并给出相应实验结果及分析。
实验目的:通过本次实验,我们将学会如何使用不同类型的循环结构来控制程序流程,并能够编写简单而有效的程序。
实验原理:1. 循环结构的概念:在程序运行过程中,为了重复执行某些操作或者根据特定条件反复执行某些操作,需要使用到循环结构。
2. 循环结构的分类:常见的有while循环、do-while循环和for循环。
3. 循环结构程序设计基本原则:确定好需要重复执行多少次或在什么情况下需要重复执行,选择合适的循环结构语句,编写循环体语句。
实验步骤:1. 确定循环次数和循环条件:在程序设计之前,需要明确需要重复执行多少次或在什么情况下需要重复执行。
2. 选择合适的循环结构语句:根据确定好的循环次数和循环条件,选择while、do-while或for等不同类型的循环结构语句。
3. 编写循环体语句:在循环结构中,需要编写具体的操作语句来实现所需功能。
实验结果分析:通过本次实验,我们可以发现,在程序设计中使用不同类型的循环结构可以有效地控制程序流程,并且能够编写出简单而有效的程序。
同时,在实际应用中也需要根据具体需求来选择合适的循环结构类型以及确定好相应的循环次数和条件。
结论与讨论:通过本次实验,我们深入了解了循环结构程序设计,并掌握了相应技能。
在今后的学习和工作中,我们将继续深入研究相关知识,并且不断提高自己在编程方面的能力。
循环程序设计习题及答案
循环程序设计习题及答案循环程序设计习题及答案1-基本循环控制结构1-1 基本循环结构示例<代码示例>1-2 循环条件<代码示例>答案:循环条件是一个布尔表达式,如果条件为true,循环将继续执行。
如果条件为false,循环将终止。
1-3 循环计数器<代码示例>答案:循环计数器是一个变量,用于记录循环执行的次数。
1-4 循环控制语句1-4-1 break语句<代码示例>答案:break语句用于提前终止循环,并跳出循环体。
1-4-2 continue语句<代码示例>答案:continue语句用于跳过当前循环体中剩余的代码,直接进入下一次循环。
2-常见循环题型2-1 计算累加和<代码示例>答案:使用循环结构,每次迭代都将当前值累加到一个变量中。
2-2 计算阶乘<代码示例>答案:使用循环结构,每次迭代都将当前值与累积值相乘,并更新累积值。
2-3 猜数字游戏<代码示例>答案:使用循环结构,与用户交互对比猜测的数字与目标数字,直到猜测正确或达到最大猜测次数。
3-循环的嵌套和嵌套控制结构3-1 嵌套循环结构示例<代码示例>3-2 循环的嵌套控制3-2-1 嵌套循环的break语句<代码示例>答案:break语句可以终止当前循环,并直接跳出嵌套循环的外层循环。
3-2-2 嵌套循环的continue语句<代码示例>答案:continue语句可以跳过当前循环体中的剩余代码,并继续下一次迭代。
4-附件本文档没有涉及附件。
5-法律名词及注释5-1 循环:程序中一种重复执行的结构,可通过循环变量控制执行次数。
5-2 循环条件:循环结构中的判断条件,决定循环是否继续执行。
5-3 循环计数器:循环结构中用于记录循环次数的变量。
5-4 break语句:用于提前终止循环,并跳出循环体的语句。
5-5 continue语句:用于跳过当前循环体中剩余的代码,直接进入下一次循环的语句。
matlab实验4_循环结构程序设计_参考解答
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
clear all; close all; clc; y=0; n=1; while y<3
y=y+1/(2*n-1); n=n+1; end n=n-1; y=y-1/(2*n-1) n=n-1
运行结果:
y= 2.9944
x1=a/(b+x0); y=abs(x1-x0); x0=x1;
MATLAB 语言
3
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
n=n+1; end x1 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2
clear all; close all; clc; prime=[]; for n=2:49
x=n*(n+1)-1; signx=0; for k=2:sqrt(x)
MATLAB 语言
5
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
根据
π2 6
=1 12
+
1 22
+1 32
+"+
1 n2
,求 π 的近似值。当
n
分别取
100、1000、10000
时,
结果是多少?
要求:分别用循环结构和向量运算(使用 sum 函数)来实现。 答:程序设计:
(1) 循环结构
《C语言程序开发》实验报告和参考答案
《C语言程序开发》实验报告和参考答案1实实验报告课程名称:C语言程序开发学生姓名:学生学号:专业班级:指导教师:实验日期:2目录实验一循环结构程序设计(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验二数组及其应用(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验三函数及其应用(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
问第4个学生岁数,他说比第3个学生大2岁。
问第3个学生,又说比第2个学生大2岁。
问第2个学生,说比第1个学生大2岁。
最后问第1个学生,他说是10岁。
请问第5个学生多大。
(二)用选择法对数组中10个整数按由小到大排序,一维数组名作函数参数。
实验四指针及其应用(一)将若干字符串按字母顺序(由小到大)输出。
(二)有a个学生,每个学生有b门课程的成绩。
要求在用户输入学生序号以后,能输出该学生的全部成绩。
用指针函数来实现。
3实验一循环结构程序设计实验题目:(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验目的1.掌握循环语句的执行过程及用法2.初步掌握循环程序设计的基本技巧3.掌握用while语句,do-while语句和for语句实现循环的方法4.掌握多重循环的使用(一)实验步骤1.题目分析2.源程序代码3.运行结果(二)实验步骤:1.题目分析源程序代码3.运行结果4实验二数组及其应用实验题目:(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验目的1.掌握一维数组的定义及其元素的引用方法2.掌握利用一维数组实现一些常用算法的基本技巧3.掌握二维数组的定义及其应用4.掌握字符数组和字符串函数的使用5.掌握有关二维数组的基本编程技巧(一)实验步骤:1.题目分析2.源程序代码:3.运行结果(二)实验步骤:1.题目分析2.源程序代码3.运行结果5实验三函数及其应用实验题目:(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
循环结构程序设计习题及答案
第6章循环结构程序设计6-1.比较while语句、do–while语句和for语句的异同。
答:(1)while语句、do-while语句用于条件循环,for语句用于计数循环。
(2)while语句、for语句是先判断循环条件,后执行循环体,如果循环条件一开始就不成立,则循环体一次也不被执行;而do-while语句是是先执行循环体,后判断循环条件,所以循环体至少被执行一次。
(3)知道循环的次数可选用for语句实现循环,不知道循环的次数可选用while语句或do-while语句实现循环.(4)一般而言,三种循环语句可等价实现.6-2 仔细阅读下面的程序,指出程序的运行结果.#include<>void main(){ int i;for(i=0;++i;i<5){ if(i==3){printf("%d\n",++i);break;}printf("%d\n",++i);}}答:24思考:语句“for(“i=0;++i;i<5”)在编译时为何会给出语法警告错误当将其改为“for(i=0;i<5;++i)”时,运行结果又将如何6-3 仔细阅读下面的语的程序,指出程序的运行结果。
#include""void main(){ int i, a=0;for(i=1;i<=5;i++){do{i++;a++;} while(i<3);}i++;printf("a=%d,i=%d",a,i);}答:a=3,i=7思考:在for循环中嵌套着do-while循环,那么do-while循环中对i的修改会对for循环产生影响吗6-4编写程序,用1000个单词”computer”填充屏幕,每行60个.解:#include<>void main(){ int i;for(i=1;i<=1000;i++){ printf("computer.");if(i%60==0)printf("\n");}}思考:在for循环中,”if(i%60==0)printf(“\n”);”语句的作用是什么没有此语句将会是什么状况6-5输入一行字符(以$结束),统计其中的数字字符、空格字符出现的次数。
循环结构的程序设计实验
一、实验目的
通过针对循环问题求解的程序填空,认识循环结构的程序流程框架,理解循环结构流程控制语句的正确应用以及条件的正确表示、循环入口和循环结束的正确控制。
二、实验内容
1、题目:输入某年某月某日,判断这一天是这一年的第几天?
算法分析提示:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天。
特殊情况:闰年且输入月份大于3时需考虑多加一天。
请按照表格中“期待的输出”要求,将程序空缺的【1】、【2】、【3】、【4】、【5】语句补充完整,并调试运行,针对每一组输入,将对应的输出填写在表中。
【1】month
【2】case 11:sum=303;break;
【3】case 12:sum=334;break;
【4】return 0
【5】sum++
2、题目:将一个正整数分解质因数。
算法分析提示:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2) 如果n不等于最小的质数k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
请按照表格中“期待的输出”要求,将程序空缺的【1】、【2】、【3】语句补充完整,并调试运行,针对每一组输入,将对应的输出填写在表中。
【1】i<=n 【2】n==i 【3】break。
实训四 循环结构程序设计和答案
实训四循环结构程序设计(注:答案在后面)班级:学号:姓名:实训时间:一、实训目标掌握循环结构程序的设计和调试方法。
1、掌握while、do whil、for三种C循环语句的执行流程。
2、掌握一般循环程序设计的步骤(循环体、循环条件、循环初始化)。
3、学会提前结束程序的方法(break语句)。
4、学会多循环出口时判断循环出口的方法。
5、学会循环程序的调试方法。
6、掌握求极值、分类统计、求素数等常用算法。
7、学会循环嵌套程序的设计和调试方法。
二、语法基础1. 在C语言中,实现循环的语句有: while语句、 do-while语句和语句2. break语句不能出现在()语句中A. switchB.forC. whileD. if…else3.语句while(!y);中的表达式!y等价于A)y==0 B)y!=1 C)y=!0 D) y==14.若有“int a=1,x=1;”,则循环语句“while(a<10) x++; a++;”的循环执行()A.无限次B.不确定次C.10次D.9次5..以下程序段 ( )x=-1;do { x=x*x; }while(x>0);A. 是死循环B. 循环执行一次C. 循环执行二次D. 有语法错误6. 思考题:在循环中,continue语句与break语句的区别是:continue语句只是,break语句。
break语句只能用于语句和语句中。
7.熟悉三种循环语句的执行流程,以计算 s=1+2+3+…+100为例,分别写出三种循环结构的核心程序。
示例:while 语句:s=0;i=1;while(i<=100){s=s+i;i++;}依据右侧的流程,改写为for 语句:do while 语句程序 do while结构流程图NO yes i<=100 i=0 s=s+i s=0 i++ while 下条语句三、实训内容和步骤1、改错(copy下面源程序到VC编辑界面,调试并改错)。
C语言程序设计实验循环结构的程序设计
实验3:循环结构的程序设计
一、实验目的
1.熟悉用while语句,do-while语句以及for语句实现循环的方法。
2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。
3.了解使用break, continue的差别。
二、实验内容
编写程序,实现如下功能:
1.求Sn =a + aa + aaa + … + a…a (n个a)之值,其中a是1~9中的一个数,例如:2+22+222+2222+22222
(此时a=2, n=5),n由键盘输入。
(多测试几组,并验证是否正确)
2.找出100~200之间所有不能被3整除的数,输出这些数,并回答:一共有多少个数(Total)?这
些数的和(Sum)、平均值(Average)、最大值(Max)、最小值(Min)分别是多少?(提示:最大值和最小值要求在循环结构中不断进行比较而得到。
)
三、实验结果记录
第1题上机调试后的最终代码及上机调试结果:
第一题程序代码:
运行结果:
2+22+222+2222+22222=24690
3+33+333+3333+33333=37035
4+44+444+4444+44444+444444=493824 5+55+555+5555+55555+555555=617280
第2题上机调试后的最终代码及上机调试结果:第二题程序代码:
运行结果:
四、实验小结:
经过此次C语言实验,我熟练掌握了for循环语句的应用,对循环语句有了更加深刻的认识,使我的逻辑更加清晰,思维更加灵敏。
同时,我学会了在定义一个数值可能很大的变量时,用long或者double,以免数据溢出。
结束。
MATLAB实验四 选择结构和循环结构程序设计
实验四 选择结构和循环结构程序设计实验目的:1.掌握建立和执行M 文件的方法 2.掌握利用if 语句实现选择结构的方法 3.掌握利用switch 语句实现多分支选择结构的方法 4.掌握利用for 语句实现循环结构的方法 5.掌握利用while 语句实现循环结构的方法 6. 熟悉利用向量运算来代替循环操作的方法实验内容:1. 求分段函数的值。
3及2其它,1x 且50,653且0,6222≠⎪⎩⎪⎨⎧--≠<≤+--≠<-+=x x x x x x x x x x y用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
x=input('请输入x 的值:x=');if(x<0&x~=-3)y=x.*x+x-6elseif(x>=0&x<5&x~=2&x~=3)y=x.*x-5.*x+6elsey=x.*x-x-1end请输入x 的值:x=[-5.0 -3.0 1.0 2.0 2.5 3.0 5.0]y =29.0000 11.0000 -1.0000 1.0000 2.7500 5.0000 19.00002. 输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。
其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:a) 分别用if 语句和switch 语句实现。
If 语句x=input('请输入分数:')if(x<=100&x>=90)disp('A')elseif(x>=80&x<=89)disp('B')elseif(x>=70&x<=79)disp('C')elseif(x>=60&x<=69)disp('D')elseif(x<60)disp('E')end请输入分数:95x =95Aswitch语句c=input('请输入分数:')switch ccase num2cell(90:100)disp('A')case num2cell(80:89)disp('B')case num2cell(70:79)disp('C')case num2cell(60:69)disp('D')case num2cell(0:59)disp('E')end请输入分数:83c =83Bb)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
C语言程序设计(第3版)何钦铭-颜-晖-第4章-循环结构
第4章循环结构【练习4-1】在例4-1 程序中,如果对item 赋初值0,运行结果是什么?为什么?如果将精度改为10-3,运行结果有变化吗?为什么?解答:如果对item 赋初值0,则程序运行结果是pi=0,因为item 为0 时不满足while 循环的执行条件,即不执行循环,故pi 值为0。
如果将精度改为10-3,运行结果会有变化,因为精度改变意味着while 循环的条件改变,精度变大使得while 循环次数减少,必然影响到π的值。
【练习4-2】运行例4-2 程序时,如果将最后一个输入数据改为-2,运行结果有变化吗?如果第一个输入数据是-1,运行结果是什么?为什么?解答:如果将最后一个输入数据改为-2,运行结果没有变化,因为最后一个负数是一结束标志,不进行统计,故任意一个负数都可以。
如果第一个输入数据是-1,运行结果是:Grade averageis 0,因为第一个输入就是-1,则while 循环条件不成立,不执行循环体。
【练习4-3】序列求和(1-1/4+1/7-1/10+1/13-1/16+…):输入一个正实数eps,计算序列1-1/4+1/7-1/10+1/13-1/16+…的值,精确到最后一项的绝对值小于eps (保留6位小数)。
试编写相应程序。
解答:#include <stdio.h>#include <math.h>int main(void){int denominator, flag;double item, s,eps;printf(“Input eps:”);scanf(“%lf”,&eps);flag = 1;denominator = 1 ;item = 1.0;s = 0;while(fabs (item) >= eps) {item = flag * 1.0 / denominator;s = s + item;flag = -flag;denominator = denominator +3;}printf ( “s = %f\n”, s);return 0;}【练习4-4】如果将例4-3 程序中的do-while 语句改为下列while 语句,会影响程序的功能吗?为什么?再增加一条什么语句,就可以实现同样的功能?while(number != 0){number = number / 10;count ++;}解答:会有影响,因为当输入数据number 为0 时,上述while 循环将不执行,count 值仍为0,故输出为0,不符合题目要求。
C语言循环结构程序设计习题与答案
一、单选题1、计算1!+2!+3!+4!+5!编程如下,程序中下划线处应填写#include <stdio.h>void main(){int i;int t= z s=;for(i=l;i<6;i++){t=t*i;s=s+t;)printf("l!+2!+3!+4!+5!=%d\n"z s);)A.l 1B.O 0C.O 1D.l 0正确答案:D2、下面代码段的输出是一int k,m;for(k=0;k<10;k++ ){if(m>50) continue;m=k*k;)printf("%d,%d\n”,k,m);A. 10,64B.9,81C.10,81D.8,64正确答案:A3、对于以下代码:int i;for(i=0;i<10;i++)pnntf("%d",i);for循环结束后,i的值是—A.llB.10C.9D.i不再存在了正确答案:B4、对于以下代码:int i=6;do{printf("%d", i-);}while(i-);正确的是—A,输出6420-2-4…,程序无法停机B,输出6420C.输出6420-2D输出642正确答案:A5、对于以下代码:int i=6;do{printf("%d", i-);}while(i);最后一个输出的值是—A.2B.3C.OD.l正确答案:D6、在代码:while(e)中,e等价于_A.e == 0B.e != 1C.e == 1D.e!=0正确答案:D7、在代码:while© |1)中,e等价于_A.e!=0B.e == 1C.e取任何值D.e == 0正确答案:C8、设有程序段int k=5;while(k=0) k=k-l;则下面描述中正确的是A,循环体语句一次也不执行B.while循环执行5次C.循环体语句执彳亍一次D彳盾环是无限循环正确答案:A9、下面程序段的运行结果是int n=0;while(n++<=2);printf("%d",n);A.有语法错B.2C.4D.3正确答案:C10、若有如下语句int x=3;do{ printf("%d\n"z x -=2);} while(!(-x));则上面程序段—A,是死循环B,输出的是1C.输出的是3和0D,输出的是1和・2正确答案:D11、下面程序的功能是计算正整数2345的各位数字平方和,请选择填空,答案是#includemain()int n,sum=0;n=2345;sum=sum+(n%10)*(n%10);n=_;}while(n);printf("sum=%d"/sum);}A.n/10B.n%10C.n/100D.n/1000正确答案:A12、下面程序段—for(t=l;t< = 100;t++){scanf("%d",&x);if(x<0) continue;printf("%3d",t);)A.最多允许输出100个非负整数B.x>=0时什么也不输出C.printf函数永远也不执行D・当x<0时整个循环结束正确答案:A13、下列运算符中结合方向与其他不同的是A.+=B.< =c.>D.+正确答案:A14、下列运算符中结合方向与其他不同的是A.&&B.?:c.||D.+正确答案:B15、以下代码输出结果是—int x=0,y=20,z=30 ;if ( x||(y=50)>z ) printf("y=%d"z y); else printf("y=%d",y);A.代码错误,不能输出B.y=50C.y=20D,不确定正确答案:B16、以下代码输出结果是—int x=0z y=20,z=30if ( x||(y=50)>z ) printf("y=%d"z y); else printf("y=%d",y);A.y=20B.代码错误,不能执行C.y=50D,不确定正确答案:B17、下列程序段的输出结果是一int a=3,b=15;a+=b;b=b/2;}while(b>l);printf("%d\rT,a);正确答案:28二、多选题1、在c语言中,叙述正确的是()。
循环结构程序设计实验报告(实验一)
实验题目:循环结构程序设计实验目的:1.熟悉VC++6.0的运行环境,掌握C程序的执行方法;2.掌握三种基本数据类型、部分运算符号和常用函数;3.掌握三种循环控制语句及break和continue语句的使用方法;4.掌握循环结构的嵌套及正确控制计数型循环结构次数的方法。
实验内容:程序1:搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬1砖,要求一次搬完,问男、女和小孩各若干?#include<stdio.h>int main(){int a,b,c;for(a=0;a<=9;a++)for(b=0;b<=12;b++)for(c=0;c<=36;c++)if(a+b+c==36&&4*a+3*b+c/2==36&&c%2==0)printf("%d %d %d",a,b,c);return 0;}程序2 打印形状为直角三角形的乘法口诀。
#include<stdio.h>void main(){int i,j,n;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d*%d=%-4d",i,j,i*j);printf("\n");}}程序3 求1000以内的所有素数。
#include <stdio.h>int main(){int m,i;scanf(“%d”,&m);for(i=2;i<m-1;i++)if(m%i==0) break;if(i>=m) printf(“m=%d’,m);else printf(“%d不是素数”,m);return 0;}程序4:计算和统计旅客运费程序。
由键盘输入旅客行李重量(w),按公式:若( w<=50kg )f=1.5*w ,若(w>50kg)f=1.5*50 + 2.8*(w-50) ( w>50kg ) 计算运费,要求:(1)打印每位旅客的顺序号,行李重量,应付运费;(2)假定每天最多办理100人的行李托运手续或当w≤0时循环结束, 下班时打印出全天的运费总收入和办理的总人数。
实验四 循环结构程序设计(答案)
实验四循环结构程序设计(解答)1.改错题(1)下列程序的功能为:求1~100之和(和值为5050)并输出。
请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_1.c存盘。
#include <stdio.h>main(){int i,sum=0;i=1;while(i<100)sum=sum+i;i++;printf(“The sum from 1 to 100 is %d\n”,sum);}改正后的程序:#include <stdio.h>main(){int i,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("The sum from 1 to 100 is %d\n",sum);}(2)下列程序的功能为:倒序打印26个英文字母。
请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_2.c存盘。
#include <stdio.h>main(){char x;x='z';while(x!='a'){printf("%3d",x);x++;}}改正后的程序:#include <stdio.h>main(){char x;x='z';while(x!='a'-1) 或while(x>='a') 或 while(x!=96){printf("%3c",x);x- -;}}(3)下列程序的功能为:输出如下的图形,要求顶端的*定位在第21字符位置,请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_3.c存盘。
****************#include <stdio.h>void main(){ int i,j;for (i=0;i<4;i++){ for (j=0;j<=20;j++)printf("\n");for (j=0;j<2*i+1;j++)printf("*");}}改正后的程序:#include <stdio.h>void main(){ int i,j;for (i=0;i<4;i++){ for (j=0;j<=20-i;j++)printf(" ");for (j=0;j<2*i+1;j++)printf("*");printf("\n");}}2.程序填空(1)下列程序的功能为:用辗转相除法求两个正整数的最大公约数;请填写适当的符号或语句,使程序实现其功能,程序以文件名sy4_4.c存盘。
实验4循环结构——参考答案
实验4循环结构——参考答案实验四循环结构程序设计参考程序⼀、程序调试⽅法实验上机题⽬:编写程序利⽤公式:!!2!112n x x xe n++++= 求xe 的近似值。
找出并改正以下源程序中错误,得出正确的运⾏结果。
#includevoid main(){int i;float a,e,x;printf("请输⼊x 的值:");scanf("%d",&x); //改为 scanf("%f",&x);e=0; //改为 e=1;i=0; //改为 i=1;a=1;while(a>1e-6); //去掉尾部的分号{a=a*x/i;e=e+a;i++;}printf("循环次数为:%d 次,e 的%d 次⽅为:%f\n",i,x,e);//改为printf("循环次数为:%d 次,e 的%.2f 次⽅为:%f\n",i,x,e);}程序正确的运⾏结果为:请输⼊x 的值:1.0循环次数为:11次,e 的1.00次⽅为:2.718282Press any key to continue⼆、编写程序1、分别利⽤三种循环语句编程,求1+2+3+…50之和。
参照例⼦4-12 (1)while 循环 #includevoid main(){int sum=0,i=1;while(i<=50){sum=sum+i;i++;}printf("1+2+3+...50=%d\n",sum);}(2)do~while循环#includevoid main(){int sum=0,i=1;do{sum=sum+i;i++;}while(i<=50);printf("1=2+3+...50=%d\n",sum);}(3)for循环#includevoid main(){int sum=0,i;for(i=1;i<=50;i++)sum=sum+i;printf("1+2+3+...50=%d\n",sum);}2、编程,输⼊10个整数,求其中正数的个数及其平均值(精确到⼩数点后两位)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.3 循环结构程序设计1
【(1)题中页码均为《C 语言程序设计教程》中的页码
(2)题后为原程序文件名 (3)仅提交名为【*.c 】的源程序文件,可一起提交,也可逐题提交 】
1、 按照右边给出的流程图用while 语句求1~100之间的偶数之和。
(007张三t411.c, 007张三t412.c ) 【提示:参见p89—例4.18 ,并按照下面的左流程图书写007张三t411.c ,右流程图书写007张三t412.c 程序运行结果: s=2550 】
2、 按照右边给出的流程图用while 语句求出所有的水仙花数(如135:
153=13+53+33)。
(007张三t42.c )【限制用一重循环实现】 【提示:
程序运行结果:
全部水仙花数如下:⋃⋃153⋃⋃370⋃⋃371⋃⋃407 】
3、 根据公式,求)(1n n 1
4313212
11
....+∙∙∙∙++++ 的前n 项之和。
(007张三t431.c ,007张三t432.c ) 【提示:参见p90—例4.19了解类似算法的实现
参见p93--例4.18了解do-while 语句的应用 007张三t431.c---用while 语句实现, 007张三t432.c 用do —while 语句实现
程序运行时: 程序运行结果:
请输入n :10↵ 前10项之和=0.91 请输入n :20↵ 前20项之和=0.95 】
4、求1!+2!+……+n!(007张三441.c和007张三442.c)【要求n≤10】
【提示:参见p90—例4.20,注意当n=10时,结果超过int 的最大值,建议用长整型(long int--%ld)007张三441.c---用while语句实现,
007张三442.c 用do—while语句实现
程序运行时:程序运行结果:
请输入n:1↵1!~1!之和=1
请输入n:3↵1!~3!之和=9
请输入n:10↵1!~10!之和=4037913
请输入n:20↵20超出本程序的求解范围!
请输入n:0↵0超出本程序的求解范围!
】
5、输出个位数字是6,且能被3整除的所有3位数(007张三45.c)【要求:输出时,每个数字占4位,右对齐】
程序运行结果:
附加题:
1、编制一个能破解4位数字组成的数字密码的程序(即密码不能以0开头),假设数字密码为:1234(007张三4附加1.c)。
【程序运行结果:
密码是:1234
】
2、鸡兔同笼问题,已知鸡和兔的总头数为a,总脚数为b,求鸡和兔的有多少只?(007张三4附加21.c,007张三4附加
22.c)【要求:(1)用循环结构实现,存于007张三4附加21.c
(2)顺序结构实现,存于007张三4附加22.c
【程序运行时:程序运行结果:
请输入鸡和兔的总头数和总脚数:4 8↵当4个头,8只脚时:鸡4只, 兔0只
请输入鸡和兔的总头数和总脚数:4 12↵当4个头,12只脚时:鸡2只, 兔2只
】
参考解答:
1、
2、
#include <stdio.h>
void main( )
{
int x, g, s, b; /*x-三位整数,g –个位,s-十位b-百位*/ x =100;
printf("全部水仙花数如下:");
while ( x <=999 )
{
g =x %10;
s =x /10 %10;
b =x /100 %10;
if ( x == g*g*g +s*s*s +b*b*b)
{
printf("%5d", x); /*输出满足水仙花条件的数*/
}
x++;
}
printf(“\n”);
}
3、
#include <stdio.h>
void main( )
{
double s=0.0;
int n, i=1;
printf(“请输入n:”);
scanf(“%d”, &n);
s=s+1.0/(i*(i-1));
i++;
}
printf(“前%d项之和=%.2lf\n”, n, s);
}
4、
#include <stdio.h>
void main( )
{
int i=1, n;
long p=1, s=0;
printf(“请输入n(1~10):”);
scanf("%d", &n);
if(n<1 || n>10)
{
printf(“%d超出本程序的求解范围!\n”, n); }
else
{
while ( i <=n )
{
s=s+p;
i++;
p=p*i;
}
printf(“1!~%d!之和=%ld\n”, s);
}
5、
#include <stdio.h>
void main( )
{
int x, g;
x=106;
while(x<=999)
{
g=x%10;
if(g==6 && x%3==0)
{
printf("%4d", x);
}
x++;
}
附加1:
方法1:
#include <stdio.h>
void main( )
{
int a, b; /*a--总头数,b总脚数*/
int j=1,t; /*j 鸡数,t兔数*/
printf("请输入鸡和兔的总头数和总脚数:");
scanf("%d %d", &a, &b);
while(j<=a)
{
t=a-j;
if( 2*j+4*t==b )
{
printf("当%d个头,%d只脚时:鸡%d只,兔%d只\n", a,b,j,t);
}
j++;
}
}
方法2:
#include <stdio.h>
void main( )
{
int a, b; /*a--总头数,b总脚数*/
int j,t; /*j 鸡数,t兔数*/
printf("请输入鸡和兔的总头数和总脚数:");
scanf("%d %d", &a, &b);
t= (b-2*a)/2;
j=a-t;
printf("当%d个头,%d只脚时:鸡%d只,兔%d只\n", a,b,j,t);
}。