04单元4 循环结构程序设计

单元4 循环结构程序设计

源代码

SC 01 02 01 04 001 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

例4-1

3.例题问题描述

编写程序计算1+2+3+ (100)

4.程序代码

#include

#define N 100

int adds(void)

{

int i=1,p=0; //变量p称为累加器,初始值设置为0

while(i<=N)

{

p=p+i;

i++;

}

return p;

}

int main()

{

int sum=0;

sum=adds();

printf("%d\n",sum);

return 0;

}

SC 01 02 01 04 002 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

例4-2

3.例题问题描述

利用do-while语句计算1+1/2+1/4+…+1/50。

4.程序代码

#include

float adds(int n)

{

float sum=1.0;

int i=2; //i为循环变量

do

{

sum=sum+1.0/i;

i+=2;

} while(i<=n);

return sum;

}

int main()

{

float sum;

sum=adds(50);

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

return 0;

}

SC 01 02 01 04 003 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

例4-3

3.问题描述

键盘输入一个正整数,逆序输出各位数码,并输出该整数的位数。

4.程序代码

#include

int dem(int k)

{

int m,n; //m表示当前商n的个位

int sum=0; //变量sum称为计数器,初值设置为0

for(n=k;n!=0;n=n/10)

{

m=n%10; //得到n的个位数

sum++;

printf("%d\t",m);

}

return sum;

}

int main()

{

int k;

int sum;

printf("请输入一个正整数:");

scanf("%d",&k);

sum=dem(k);

printf("\n此数是一个%d位数。\n",sum);

return 0;

}

SC 01 02 01 04 004 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

例4-4

3.问题描述

输出100~200之间所有的素数,并统计输出此范围内素数的个数。

4.程序代码

#include

#include

int prime(int n)

{

int i,flag=1;

for(i=2;i<=sqrt(n);i++)

{

if(n%i==0)

{

flag =0;

break;

}

}

return flag;

}

int main()

{

int n;

int count=0;

for(n=101;n<=200;n=n+2)

{

if(prime(n))

{

count++;

printf("%d是素数。\n",n);

}

}

printf("100~200之间共有%d个素数。\n",count);

return 0;

}

SC 01 02 01 04 005 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

例4-5

3.问题描述

百马百担问题

有100匹马,驮100担货,大马驮三担,中马驮两担,两匹小马驮一担,问有大、中、小马各多少?

4.程序代码

#include

void horse(void)

{

int dm,zm,xm;

for(dm=1;dm<=32;dm++)

{

for(zm=1;zm<=48;zm++)

{

xm=100-dm-zm; //计算小马的数量

if(xm%2==0&&dm*3+zm*2+xm/2==100)

{//xm%2==0保证小马的数量是偶数

printf("\n大马:%d,中马:%d,小马:%d\n",dm,zm,xm);

}

}

}

}

int main()

{

horse();

return 0;

}

SC 01 02 01 04 006 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

例4-6

3.问题描述

用递归法求n!

4.程序代码

#include

int fun(int n)

{

if(n==1||n==0) //递进调用终止条件

return 1;

else

return n*fun(n-1); //利用递归关系进行递归调用

}

int main()

{

int n,m;

printf("请输入一个自然数:");

scanf("%d",&n);

m=fun(n); //此处需要注意m的数据类型

printf("%d!=%d\n",n,m);

return 0;

}

SC 01 02 01 04 007 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

例4-7

3.问题描述

汉诺塔问题。

4.程序代码

#include

void hanoi(int n,char A,char B,char C)

{

if(n==1)

{

printf("将%d 号盘子从%c 柱移动到%c 柱\n",n,A,B);

}

else

{

hanoi(n-1,A,C,B);

printf("将%d 号盘子从%c 柱移动到%c 柱\n",n,A,B);

hanoi(n-1,C,B,A);

}

}

int main()

{

int n;

printf("请输入汉诺塔盘子个数:\n");

scanf("%d",&n);

hanoi(n,'A','B','C');

return 0;

}

SC 01 02 01 04 008 1.源代码编号

SC010********

2.源代码来源

单元五构造类型程序设计

课堂实践4-1

3.课堂实践问题描述

求自然数数n的阶乘n!,其中n由用户通过键盘输入。对于你所编写的程序,用户输入13或17或22及以上,能得到正确结果吗?

4.程序代码

#include

int fac(int n)

{

int i;

int f=1;

for(i=2;i<=n;i++)

{

f=f*i;

}

return f;

}

int main()

{

int fact;

int n;

scanf("%d",&n);

fact=fac(n);

printf("%d",fact);

return 0;

}

SC 01 02 01 04 009 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

课堂实践4-2

3.课堂实践问题描述

利用while和do-while语句计算数列1/2、2/3、3/5、5/8、…的前十项和。4.程序代码

#include

#define N 3

float tennum()

{

float sum=0;

int fz1=1,fm1=2;

int fz2=2,fm2=3;

int fz3,fm3;

int i=2;

sum=(float)fz1/fm1+(float)fz2/fm2;

do

{

fz3=fm2;

fm3=fm2+fm1;

sum+=(float)fz3/fm3;

fz1=fz2;

fm1=fm2;

fz2=fz3;

fm2=fm3;

i++;

}while(i

return sum;

}

int main()

{

float sum;

sum=tennum();

printf("此数列前%d项和为%f",N,sum);

return 0;

}

SC 01 02 01 04 010 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

课堂实践4-3

3.课堂实践问题描述

阅读程序,给出程序的执行结果。

4.程序代码

#include

int main()

{

int a,b;

for(a=1,b=1;a<=10;a++,b++)

{

if(b%3==1)

{

b+=3;

continue;

}

if(b>=10)

break;

}

printf("%d,%d\n",a,b);

return 0;

}

SC 01 02 01 04 011 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

课堂实践4-4

3.课堂实践问题描述

36块砖,36人搬,男搬4,女搬3,两个小孩抬一砖,要求一次全搬完,问男、女、小孩各若干?

4.程序代码

#include

void banzhuan()

{

int man;

int woman;

int children;

f o r(man=1;man<=7;man++)

{

for(woman=1;woman<=10;woman++)

{

children=36-man-woman;

if(4*man+3*woman+children/2==36&&children%2==0)

{

printf("男人:%d女人:%d小孩:%d\n",man,woman,children);

}

}

}

}

int main()

{

banzhuan();

return 0; }

SC 01 02 01 04 012 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

课堂实践4-5

3.课堂实践问题描述

斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、…… 这个数列从第三项开始,每一项都等于前两项之和。求斐波那契数列的第20项。

4.程序代码

#include

int fib(int n)

{

if(n==1||n==2)

{

return 1;

}

else

{

return fib(n-1)+fib(n-2);

}

}

int main()

{

int fib_20;

fib_20=fib(20);

printf("斐波那契数列第20项是:%d",fib_20);

return 0;

}

SC 01 02 01 04 013 1.源代码编号

SC010********

2.源代码来源

单元4 循环结构程序设计

引例

3.引例问题描述

编写一个计算器程序,要求可以根据菜单显示,实现简单的整数的加、减、乘、除功能。

菜单显示如下:分别输入1,2,3,4进行相应的加、减、乘、除运算。若输入0,则退出程序。

4.程序代码

#include

#include//exit函数

int sum(int a,int b);//求a+b

int sub(int a,int b);//求a-b

int mul(int a,int b);//求a*b

double div1(int a,int b);//求a/b

void showmenu();//显示菜单

void select(char ch);//选择

int main()

{

char ch;

while(1)

{

system("cls");

showmenu();

printf("请输入需要进行的计算(1,2,3,4),输入0表示退出程序:");

ch=getchar();

select(ch);

}

return 0;

}

void select(char ch)

{

int x,y, answer;double f;

switch(ch)

{

case '1': printf("请输入两个整数,以空格分开:");

scanf("%d%d",&x,&y);

answer=sum(x,y);break;

case '2': printf("请输入两个整数,以空格分开:");

scanf("%d%d",&x,&y);

answer=sub(x,y);break;

case '3': printf("请输入两个整数,以空格分开:");

scanf("%d%d",&x,&y);

answer=mul(x,y);break;

case '4': printf("请输入两个整数,以空格分开:");

scanf("%d%d",&x,&y);

if(y==0)

{

printf("您输入的除数为0,请重新输入除数的值:");

scanf("%d",&y);

}

f=div1(x,y);break;

case '0':exit(0);

}

if(ch=='4')

printf("计算结果为%.2f。\n",f);

else

printf("计算结果为%d。\n",answer);

flushall();

printf("按任意键继续……");

getchar();

}

int sum(int a,int b)

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

循环结构程序设计习题及答案 1、循环语句的三要素分别是、、。 2、for语句括号内的3个表达式的作用分别 是、、。 3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整 地,只有当时,才结束整个循环。 4、在循环结构中,break语句的作用是;continue语句的作用是。 5、当循环条件一开始就为假时,对于while语句、do…while语句、for语句,分别执行循环体次、次、次。 6、下面程序段的执行次数: int a=0; while(a=0) { printf("good\n"); a--; } 7、下面程序段的执行次数: int a=0; while(a==0) { printf("good\n"); a--; } 8、下面程序段的执行次数: int a=1; while(a=1) { printf("good\n"); a++; } 9、下面程序段的执行次数: int a=1; while(a==1) { printf("good\n"); a++; } 10、下列程序段的运行结果是。 for(i=5;i>=0;i--) printf(“%d “,i); 11、下列程序段的运行结果是。 for(n=1;n<20;n=n+3) printf(“%d “,n); 12、下列程序段的运行结果是。 for( ch='a' ;ch<='e' ;ch++) printf(“%d“,ch-97);

13、下列程序段的运行结果是。 for(i=1,j=5 ; i100) break; } C、int a=0; D、int x=21; do while(x) { ++a; --x; }while(a>=0); 三、阅读程序,写出程序运行结果。 1、#include"stdio.h" main() { int i=0,sum=1; do { sum+=i; i++; }while(i<5); printf("%d\n",sum); } 程序运行结果: 2、 #include"stdio.h" main() { int a,b;

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

仲恺农业工程学院实验报告纸 信息学院(院、系) 专业 班 C 语言程序设计 课 实验目的: (1)熟练掌握用三种循环语句实现循环的方法。 (2)掌握在程序设计中用循环方法实现的一些常用算法。 (3)进一步学习调试程序。 实验内容与总结: 编程练习 1、打印出所有“水仙花数”——教材P129-6.6 程序如下: #include void main() { int i,j,k,n; for(n=100;n<1000;n++) { i=n/100; j=(n-i*100)/10; k=n-i*100-j*10; if(n==i*i*i+j*j*j+k*k*k) printf("水仙花数为:%d\n",n); } } (1)程序编制要点: ①用for 语句实现循环; ②立方的表示; ③if 语句的表达。 (2)该题目涉及的知识点和难点: ①for 语句的输入与使用; ②if 语句的使用。 2、用迭代法求a x = 。求平方根的公式为:)(211n n n x a x x +=+ 程序如下:

#include #include void main () { float x1,x2=1,a; printf("请输入求平方跟的数a="); scanf("%f",&a); do { x1=x2; x2=(x1+a/x1)/2; } while (fabs(x2-x1)>1e-5); printf("x的平方根是:%f\n",x2); } (1)程序编制要点: ①用do…while语句实现循环; ②平方根公式的输入; ③前后两次求出的x的差的绝对值小于1E-5。 (2)该题目涉及的知识点和难点: ①scanf函数,求绝对值函数fabs; ②do…while语句的输入与使用。 3、猜数字:编程先由计算机“想”一个1到100之间的整数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则结束游戏。 程序如下: #include #include /*使用srand和rand函数*/ #include /*使用time函数*/ void main() { int magic,guess,count=0; srand(time(NULL)); magic = rand() % 100 + 1; /*magic得到一个1到100的随机数*/ printf("请输入一个1到100之间的数,你共有10次机会:\n"); do { scanf("%d",&guess); count++; if((guess<=0)||(guess>=100))

实验2-循环结构程序设计

实验2 循环结构程序设计 一、实验目的 1.学习循环语句for、while和do-while语句的使用方法。 2.学习用循环语句实现各种算法,例如穷举法、迭代法等。 3.进一步熟悉C语言集成环境的使用方法 二、实验内容 1.用while循环实现数据统计问题。:从键盘输入一批任意数量的整数,统 计其中不大于100的非负数数值的个数。 2.编写并调试程序,使用do-while循环控制语句实现上面的数据统计问 题。调试数据仍参照上面给出的几种情况设计使用。 3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题。 4.阶乘累加问题。编写程序,求1+2!+3!+…+n!的值。 三、实验指导 1.用while循环实现数据统计问题。 ?编程分析 由于输入数据个数是不确定的,因此每次执行程序时,循环次数都是不确定的。在进行程序设计时,确定循环控制的方法是本实验的一个关键问题。循环控制条件可以有多种确定方法: (1).使用一个负数作为数据输入结束标志。 (2).输入一个数据后通过进行询问的方式决定是否继续输入下一个数 据。 ?参考程序 参考程序一 /* 使用负数作为数据输入结束标志的程序 */ #include "stdio.h" void main()

{ int m,counter=0; while(1) { printf("请输入一个整数:"); scanf("%d",&m); if(m<0) break; if(m<=100) counter++; printf("\n"); } printf("符合要求的整数个数为: %d\n",counter); } 参考程序二 /* 通过进行询问的方式决定是否继续输入下一个数据的程序 */ #include int main() { int m,counter=0; char ask; while(1) { printf("请输入一个整数:"); scanf("%d",&m); getchar(); if(m>=0&&m<=100) counter++; printf("继续输入下一个数据?(Y/N)"); ask=getchar();

循环结构程序设计练习题 内含答案

第三单元循环结构练习题 选择题: 1、有以下程序执行后的输出结果是( D )。 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf("%d\n",s);} A.自然数1~9的累加和 B.自然数1~10的累加和 C.自然数1~9中的奇数之和 D.自然数1~10中的偶数之和 2、以下关于for语句的说法不正确的是( A )。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先判断表达式,后执行循环体语句 C. for循环中,可以用break跳出循环体 D. for循环体语句中,可以保含多条语句,但要用花括号括起来 3、若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是( d )。 A.循环体执行两次 B.循环体执行一次 C.循环体一次也不执行 D.构成无限循环 4、以下程序程序的执行后的输出结果是( c )。 main() {int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);} A.7 5 3 B. 3 5 7 C.3 6 9 D.7 5 1 5、以下程序运行后的输出结果是( A )。 void fun(char*s) { while(*s) { if(*s%2==0) printf(“%c”,*s); s++;} } main() { char a[]={“good”};fun(a);printf(“\n”);} 注意:字母a的ASCⅡ码值为97 A.d B.go C.god D.good 6、已知 int t=0; while(t=1){...} 则以下叙述正确的是( B )。 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 7、设有以下程序段 B int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A)运行程序段后输出0

循环结构程序设计代码

实验五代码: 基础能力落实: 1)编写一个程序,将用分钟表示的时间转化成以小时和分钟表示的时间。使用#define 或者const来创建一个代表60的字符常量。使用while循环来允许用户重复键入值,并且当键入一个小于等于0的时间时终止循环。要求用while语句 #include int main(void) { const int minperhour = 60; int minutes, hours, mins; printf("Enter the number of minutes to convert: "); scanf("%d", &minutes); while (minutes > 0 ) { hours = minutes / minperhour; mins = minutes % minperhour; printf("%d minutes = %d hours, %d minutes\n", minutes, hours, mins); printf("Enter next minutes value (0 to quit): "); scanf("%d", &minutes); } printf("Bye\n"); return 0; } 2)编写一个程序打印一个表,表的每一行都给出一个整数,它的平方以及它的立方,要求用户输入表的上限和下限。使用一个for循环。 #include int main( void ) { int lower, upper, index; int square, cube; printf("Enter starting integer: "); scanf("%d", &lower);

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

甘肃政法学院 本科生实验报告 ( 五) 姓名:赵明翔 学院:公安技术学院 专业:安全防范工程 班级: 2015级安全防范工程班 实验课程名称:程序设计 实验日期:2016年月日 开课时间:2015学年第二学期

(2)输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字李方和等于该数本身。例如,153是水仙花数,因为153=12+53+33程序如下: #include int main() { int i,j,k,n; printf("paicissus numbers are"); for (n=100;n<1000;n++) { i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf("%d",n); } printf("\n"); return 0; } 运行结果: (3)猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又

多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下了1个桃子了。求第一天共摘了多少桃子。 程序如下: #include int main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2; x2=x1; day--; } printf("total=%d\n",x1); return 0; } 运行结果: (4)①用牛顿迭代法求方程0634223=-+-x x x 在1.5附近的根. #include #include int main() {double x1,x0,f,f1; x1=1.5; do {x0=x1; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x1=x0-f/f1;

包装结构设计实验

《包装结构设计》课程实验教学大纲 1、实验课程名称:包装结构设计 2、实验课程名称(英文):Packaging Structure Design 3、课程代码:120037 4、实验课程性质:非独立设课 5、学时:4 6、学分: 7、适用专业:包装工程 8、先修或同修课程:包装CAD、包装材料学、包装电脑装璜、包装工艺 9、开设单位:工程技术学院 10、制定实验教学大纲的依据: 东北林业大学本科专业人才培养计划 11、本实验课在培养实验能力中的地位及作用: 该课程实验是设计性实验,通过实验可以充分发挥学生的主观能动性及创新性,学生对自己设计的产品进行分析评价体验设计的合理性、表现性,为以后的课程学习及工作打下基础。符合增强“素质教育”的要求,为培养具有创新能力的人才奠定了基础。 12、应达到的实验能力标准: 在实验教学过程中,培养学生动手能力及设计创新能力。要求学生掌握典型包装容器的设计步骤及方法,了解包装容器常见类型、使用材料及成型工艺,重点掌握纸包装容器设计的方法及制造过程。 13、实验内容: (1)折叠纸盒设计与制作 应用纸盒的设计理论和方法进行折叠纸盒的设计和制作实践,通过实际操作加深对包装纸盒结构设计方法的理解,熟练包装纸盒结构设计与制作方面的工艺方法。并通过纸盒的设计熟练掌握TULIC系列公式的应用方法及要点。 (2)瓦楞纸箱设计与制作 应用瓦楞纸箱的设计理论和方法进行纸箱的设计与制作实践,通过设计制作加深对瓦楞纸箱容器的设计及制造方法的理解,获得瓦楞纸箱结构设计与制造方面的知识。 14、实验成绩考核办法 根据学生预习情况、实验操作情况、实验报告的质量、考试成绩和设计研究性实验成绩综合评定,最终成绩分级为:优、良、中、及、不及格。 15、实验教材、参考资料: [1]宋宝峰,宋翼生主编.包装容器结构设计与制造.北京:印刷工业出版社,2001 [2]孙诚,王德忠主编.包装结构设计.北京:中国轻工业出版社,2003 [3]萧多皆主编.纸盒包装设计指南.沈阳:辽宁美术出版社,2003 [5]黄虹主编.塑料成型加工与模具.北京:化学工业出版社,2003

循环结构程序设计典型例题

循环结构程序设计典型例题 例1有数列2/3、4/5、6/9、10/15……求此数列前30项的和。 算法分析: 对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for语句来编写比较方便。 此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一 项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30项的和,循环执行30次。 1.初值i=2,j=3,s=0; 2.用n从1到30循环 3.s=s+ i/j; 4.c=i; i=j+1; j=c+j; 5输出s; 程序: #in clude mai n() { int i=2,j=3, n,c; float s=0; for(n=1; n<=30 ;n++) { s=s+(float)i/j; c=i; i=j+1; j=c+j; } printf( "n%f” ,s); } 此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。 例2:下面这个程序,想想它实现的是什么功能? #in clude mai n() { int i,s=0; for(i=1;i<=100;i++) {if(i%5==0) continue; s=s+i; } printf( n“d' ,s); } 在左边的程序中,i从1到100循环,当i是5的倍数时,直接进入下一个i,当i不是5的倍数时,把i累加到s,最后输出s。所以,这个程序实现的是求1~100中间所有非5的倍数的数之和。 例3:输出n~m中(0<*m)能被3整除,且至少有一个数字是5的所有数。 算法分析:

循环结构程序设计(汇编语言)

循环结构程序设计(汇编语言)

汇编语言实验报告 实验名称:循环结构程序设计 姓名: 学号: 班级:

一、实验内容 1. 用多种循环方法实现1+2+3+…+20的程序(至少二种方法); 2. 编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z 或a-z字符,均显示“c”;若是回车字符(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入;(选做) 3、编写一个汇编语言程序,要求将BX寄存器内的小写字母用大写字母显示出来。 4、ADDR单元是存放数据的内存单元,要求将该内存单元中的字依次用十六进制数显示出来。 二、实验目的 1. 掌握循环程序的结构。 2. 掌握循环程序的设计、编写及调试方法。 3. 掌握循环程序设计的基本方法。主要掌握几种基本的循环程序设计技巧,如计数法程序设计、当循环、直到循环等程序设计技术。 三、实验结果 1、将内存中的数据块中(BUFF为起始地址)奇数和偶数分别存入以ADDR1和ADDR2开始的存储块中,并分别统计其中的奇、偶数,将统计结果存放在RESULT 开始的两个字存储单元中。 实验代码:(1.ASM 1.OBJ 1.EXE) data segment buff dw 6,35,99,17,80,69,50,33 addr1 dw 8 dup(?) addr2 dw 8 dup(?) result dw 0,0 data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov cx,8d

实验5_循环结构程序设计2题目及解答

4.3 循环结构程序设计2 【注意事项: (1)题中页码均为《C语言程序设计教程》中的页码 (2)题后为原程序文件名 (3)仅提交名为【*.c】的源程序文件,可一起提交,也可逐题提交 调试程序中常见问题及处理方法: (1)出现死循环时:关闭运行窗口即可。 】 1、按照下面的流程图书程序,用for语句实现。 【提示:参见p97—例4.23 ,并按照下面的左流程图书写007张三511.c,右流程图书写007张三512.c 程序运行结果: s=2550 】 2、用for语句编程,求300~500之间的水仙花数(如135:153=13+53+33)。(007张三52.c) 【程序运行结果: 300~500之间的全部水仙花数如下:??370??371??407 】 3、判断输入的数是否为素数。【提示:素数是只能被1和其自身和整除的数,】(007张三53.c) 【提示:参见p114—例4.36 程序运行时:程序运行结果: 请输入一个正整数:25?25不是素数 请输入一个正整数:12?125不是素数 请输入一个正整数:13?13是素数 】 4、判断输入的一个不超过32767的正整数是几位数。(007张三54.c)【提示:按照右侧的N-S图编程 运行时:运行结果: 请输入一个正整数(1~32767): 135?135是3位数请输入一个正整数(1~32767): 1356?1356是4位数请输入一个正整数(1~32767): 28906?28906是5位数】

附加题: 1、求出100~200间的所有素数。(007张三5附加1.c )。 【 运行结果: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 】 2、根据以下公式求π值(直到最后一项小于10 –6 为止)(007张三5附加2.c ) 【 运行结果: pi=3.141590 】 3、百钱百鸡问题中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?(007张三5附加3.c ) 【提示:在编程之前,需先根据题意列出方程, 如: 设鸡翁x 只,鸡母y 只,鸡雏z 只 则有下列方程: x+y+z=100 和 5x+3y+z/3=100 因为2个方程,3个未知数,故为不定方程,需用穷举法解题。 运行结果: x=0??? y=25??z=75?? x=4??? y=18??z=78?? x=8??? y=11??z=81?? x=12?? y=4???z=84?? 】 参考解答: 1、~2、略 3、 #include void main( ) { int x, I, k; printf(“请输入一个正整数:”); scanf("%d", &x); k=x/2; while ( i <=k ) { if( x%i ==0 ) break; } if ( i>k ) { printf(“%d is \n”, x); } ??????+???+??+?++=9 4 73523173523152313112π

《包装结构设计》实验指导书

《包装结构设计》课程实验指导书 张新昌、王利强、孙昊 江南大学机械工程学院包装工程系 2016.3

“包装结构设计”课程是包装工程专业的主干和核心课程之一。按教学大纲要求,本课程主要围绕不同材料的包装容器结构进行讨论,包括纸包装容器(折叠纸盒、粘贴纸盒、瓦楞纸箱)、塑料包装容器(注射、压制容器、中空吹塑容器和其他)、玻璃包装容器、金属包装容器等内容。通过本课程的学习,要求学生掌握典型包装容器的设计步骤和方法,了解包装容器常见结构类型、所使用材料、成型工艺,同时,结合本学期的相关教学与实践环节(产品包装创新实践及包装设计大赛等,在实践中有所创新。 根据“包装结构设计”卓越课程建设安排,本课程安排了 3 组课内外制作实践的内容,每次所需课时约 4学时(课内/课外各2学时),设计过程由学生在课外进行。 一、纸盒设计与制作 1. 实验目的 学习了各种纸盒的基本结构和基本设计方法后,还须进行纸盒的设计与制作实践。通过实际作业才能加深对包装纸盒结构的理解,获得包装纸盒设计制作方面的工艺知识。 要求设计者经过认真构思,设计和制作实样,并听取用户意见做进一步修改。 2. 实验要求 要求学生通过实践,制作出合格而有销售魅力的纸包装设计。应该做到: ①适合于内装物的形态和规格; ②其结构足以承受内装物品重量,确保在流通中不破裂,不散落; ③结构形式新颖别致,富有创新性;兼有制作方便打开方便的优点; ④符合对本包装的特别要求(指装箱、分组、流通、携带、销售和使用等)。 确认设计制作的实样符合以上基本要求后,进入生产过程(打样或制作)。 3. 设计选题 表1列出较常见的8种包装盒设计课题,题目的具体内容及要求说明均列于表中,学生可根据要求选择1-2种进行设计制作。 表1 包装纸盒设计选题

循环结构程序设计典型例题

循环结构程序设计典型例题 例1:有数列2/3、4/5、6/9、10/15……求此数列前30项的和。 算法分析: 对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for语句来编写比较方便。 此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30项的和,循环执行30次。 1. 初值i=2,j=3,s=0; 2. 用n从1到30循环 3. s=s+ i/j; 4. c=i; i=j+1; j=c+j; 5.输出s; 程序: #include<> main( ) { int i=2,j=3,n,c; float s=0; for(n=1;n<=30;n++) { s=s+(float)i/j; c=i; i=j+1; j=c+j; } printf(“\n%f”,s); } 此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。 例2:下面这个程序,想想它实现的是什么功能? #include<> main( ) { int i,s=0; for(i=1;i<=100;i++) {if(i%5==0) continue; s=s+i; } printf(“\n%d”,s); } 在左边的程序中,i从1到100循环,当i是5的倍数时,直接进入下一个i,当i不是5的倍数时,把i累加到s,最后输出s。所以,这个程序实现的是求1~100中间所有非5的倍数的数之和。 例3:输出n~m中(0

第三节:循环结构程序设计题目

1. 用 +-+-≈7 1513114π公式求π的近似值,直到发现某一项的绝对值小于10-6 为止(该项不累计加)。 #include #include int main() { int sign=1; double pi=0,n=1,term=1; while(fabs(term)>=1e-6) { pi=pi+term; n=n+2; sign=-sign; term=sign/n; } pi=pi*4; printf("pi=%10.8f\n",pi); return 0; } 2. 输入一个大于3的整数n ,判定它是否素数(prime ,又称质数) #include int main() { int n,i; printf(“n=?"); scanf("%d",&n); for (i=2;i<=n-1;i++) if(n%i==0) break; if(i int main() { int n,i,k; printf(“n=?"); scanf("%d",&n); k=sqrt(n); for (i=2; i<=k; i++) if(n%i==0) break; if(i<=k) printf("%d is not\n",n); else printf("%d is\n",n); return 0; } 3. 求100~200间的全部素数, 并控制换行。 #include "math.h" main( ) { int m, i, k, c=0; printf("\n"); for(m=101; m<200; m=m+2)

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

循环结构程序设计习题及答案1、循环语句的三要素分别 是、、。 2、for语句括号内的3个表达式的作用分别 是、、。 3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整地,只有当时,才结束整个循环。 4、在循环结构中,break语句的作用是;continue语句的作用是。 5、当循环条件一开始就为假时,对于while语句、do…while语句、for 语句,分别执行循环体次、次、 次。 6、下面程序段的执行次数: int a=0; while(a=0) { printf("good\n"); a--; } 7、下面程序段的执行次数: int a=0; while(a==0)

{ printf("good\n"); a--; } 8、下面程序段的执行次数: int a=1; while(a=1) { printf("good\n"); a++; } 9、下面程序段的执行次数: int a=1; while(a==1) { printf("good\n"); a++; } 10、下列程序段的运行结果是。 for(i=5;i>=0;i--) printf(“%d “,i); 11、下列程序段的运行结果是。 for(n=1;n<20;n=n+3) printf(“%d “,n); 12、下列程序段的运行结果是。

for( ch='a' ;ch<='e' ;ch++) printf(“%d“,ch-97); 13、下列程序段的运行结果是。 for(i=1,j=5 ; i

循环程序设计习题及答案

模块三循环程序设计习题及答案 一、填空题 1、当在数据处理中要重复执行相同的操作时,宜采用程序结构来实现。 2、循环的3要素是、、。 3、在循环语句体中包含另一个循环语句的用法称为。 4、执行循环语句体中的break语句后将使用包含它的循环语句。 5、要结束当前正在执行循环体语句而直接进入下一循环周期,需要执行语句。 6、在for语句中表达式允许省略,但不能少,语句for( ; ;) ;构成的是循环。 7、在for语句中,省略表达式2时,则循环为循环。 8、执行语句for(i=1;i++<4; );后变量i的值是。 9、要使用循环程序提前结束本次循环周期并开始下一个循环周期,应在循环体内有条件使用语句。 10、在每次循环周期均要执行一次的语句,称为。 11、for语句括号内的3个表达式的作用分别是、和循环控制变量的更新。 二、选择题 1、若k为整形变量,则while循环共循环()。 k=5; while(k>=0) k-1; A、无限循环 B、6次 C、5次 D、4次 2、与while( ! n) ; 中表达式!dn等价的是()。 A、dn>=0 B 、dn!=0 C、dn == 0 D、dn != 1 3、以下程序段,while循环执行的次数是() int k=0;

while( k == 1) k++; A、无限次 B、有语法错,不能执行 C、一次也不执行 D、执行1次 4、在C语言中,当do while语句中的条件为()时,结束该循环。 A、0 B、1 C、TRUE D、非0 5、下面程序段的输出结果是() do { b-=a; a++; }while(b--<0); A、10,-1 B、2,8 C、9,0 D、4,-3 6、以下描述正确的是() A、由于do while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do while循环由do开始,用while结束,在while(表达式)后面不能写分号 C、在do while循环体中,一定要有能使while后面匠值变为零的操作 D、do while循环中,根据情况可以省略while 7、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。 s=c; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是() A、s=a+b; B、s=a+c; C、s=s+c; D、s=b+c; 8、假定a,b,c,d均已定义为整型变量,且a、c均已赋值,a大于0,c大于0,则与程序段for(d=a,b=1;b<=c;b++) d--;功能等价的语句是() A、d=a+b; B、d=a+c; C、d=a-b; D、d=a-c 9、下列关于for循环的说法正确的是() A、for循环只能用于循环次数已经确定的情况

循环结构程序设计:三种循环语句

一、循环结构(Iteration Structure)的概述 1.目的 为了解决含有重复处理内容的问题,必须采用循环语句(Loop Statement)来编程实现。 2.类型 (1)当型循环结构 (2)直到型循环结构 二、循环语句 1.while语句 ①功能:实现当型循环结构。 ②形式 while(表达式){ 循环体 } ③特点:先判断后执行。 ④举例:(累加和问题)编程计算整数1~100的和。 int i ; //循环变量 int sum = 0 ; //累加和清0 i = 1 ; //循环变量i赋初值 while( i <= 100){ sum = sum + i ; //循环变量累加到sum中 i = i + 1; //改变循环变量i的值 } 2.do-while语句 ①功能:实现直到型循环结构。 ②形式 do{ 循环体

}while(表达式); //注意最后的分号 ③特点:先执行后判断。 ④举例:修改上例。 /*利用do-while语句编程实现整数1~100的和。*/ int i ; //循环变量 int sum = 0 ; //累加和清0 i = 1 ; //循环变量i赋初值 do{ sum = sum + i ; //循环变量累加到sum中 i = i + 1; //改变循环变量i的值 }while(i<=100);//注意最后的分号 3.for语句 ①功能:实现当型循环结构。 ②形式 for(表达式1;表达式2;表达式3){ 循环体 } ③特点:先判断后执行;使用频率最高。 ④举例:修改上例。 /*使用for语句编程计算整数1~100的和。*/ int i ; //循环变量 int sum = 0 ; //累加和清0 for( i = 1 ; i <=100 ; i++ ){//第一个表达式完成循环变量i赋初值;第三个表达式实现改变循环变量i的值 sum = sum + i ; //循环变量累加到sum中 } 4.几种循环语句的比较 ①由于while语句和for语句均实现当型循环结构,两者是完全等价的。 for(表达式1;表达式2;表达式3){

包装结构设计课程设计

《包装结构设计》课程设计说明书三星手机包装设计 学生姓名: 学号: 班级: 指导教师: 完成时间:

1 包装材料的选用原则 (1)对等性原则在选择包装材料时,首先应区分被包装物的品性,即把它们分为高、中、低三档。对于高档产品,如仪器、仪表等,本身价格较高,为确保安全流通,就应选用性能优良的包装材料。对于出口商品包装、化妆品包装,虽都不是高档商品,但为了满足消费者的心理要求,往往也需要采用高档包装材料。对于中档产品,除考虑美观外,还要多考虑经济性,其包装材料应与之对等。对于低档产品,一般是指人们消费量最大的一类,则应实惠,着眼于降低包装成本、方便使用,以经济性为第一考虑原则,可选用低档包装规格和包装材料。 (2)适应性原则包装材料是用来包装产品的,产品必须通过流通才能到达消费者手中,而各种产品的流通条件并不相同,包装材料的选用应与流通条件相适应。流通条件包括气候、运输方式、流通对象与流通周期等。气候条件是指包装材料应适应流通区域的温度、湿度、温差等。对于气候条件恶劣的环境,包装材料的选用更需倍加注意。运输方式包括人力、汽车、火车、船舶、飞机等。它们对包装材料的性能要求不尽相同,如温湿度、振动条件大不相同,因此包装材料必须适应各种运输方式的不同要求。 (3)协调性原则包装材料应与该包装所承担的功能相协调。产品的包装一般分个包装、中包装和外包装,它们对产品在流通中的作用各不相同。个包装也称小包装,它直接与商品接触,主要是保护商品的质量,多用软包装材料,如塑料薄膜、纸张、铝箔等。中包装是指将单个商品或个包装组成一个小的整体,它需满足装潢与缓冲双重功能,主要采用纸板、加工纸等半硬性材料,并适应于印刷和装潢等。外包装也称大包装,是集中包装于一体的容器,主要是保护商品在流通中的安全,便于装卸、运输,其包装材料首先应具备足够的强度,并兼顾其他的功能,多采用瓦楞纸板、木板和胶合板等硬性包装材料。 (4)美学性原则产品的包装是否符合美学,在很大程度上决定一个产品的命运。从包装材料的选用来说,主要是考虑材料的颜色、透明度、挺度、种类等。颜色不同,效果大不一样。当然所用颜色还要符合销售对象的传统习惯。材料透明度好,使人一目了然,心情舒畅。挺度好,给人以美观大方之感,陈列效果好。材料种类不同,其美感差异甚大,如用玻璃纸和蜡纸包装糖果,其效果就大不一样。 2 纸包装的适应性分析 纸类包装材料具有环保、再循环使用、节约成本等特点,随着整个国际市场对包装物环保性要求的日益提高,纸类包装材料是首选包装材料,纸类包装材料除了环保还有另外一个特点,就是可以快速通过商检关口达到快速物流节约成本的目的。现在就来了解纸包装材料的优点和用作食品包装的包装材料的性能。纸和纸板吸收和粘结油墨的能力较强,印刷性能好,因此,在包装上常用作印刷表面。纸和纸板的印刷性能主要决定于表面平滑度、施胶皮、弹性及粘结力等。在纸的加工过程中,尤其是化学法制浆,通常会残留一定的化学物质(如硫酸盐法制浆过程残留的碱液及盐类),因此必须根据包装内容物来正确合理选择各种纸和纸板。纸和纸板属于多孔性纤维材料,对水分、气体、光线、油脂等具有一定程度的渗透性,且其阻隔性受温湿度的影响较大。单一纸类包装材料一般不能用于包装水分、油脂含量较高及阻隔性要求高的食品,但可以通过适当的表面加工来满足其阻隔性能的要求。纸和纸板具有一定的强度、挺度和机械适应性,

2.2.10循环结构程序设计 - 循环结构程序设计_教学案例

【教学案例一】 1. 实验目的 熟练使用for语句控制循环。 2. 实验任务 (1)实验内容:打印输出所有"水仙花数"。所谓"水仙花数"是指一个三位的正整数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=13+53+33。 (2)实验要求:没有输入,输出所有"水仙花数"。 程序输出以下4个"水仙花数": 153 370 371 407 3. 实验分析 (1)问题分析:用循环语句循环测试每一个三位数是否符合"水仙花数"的规则。即对所有100至999的数,把每个数分解出个位数,十位数和百位数,再判断是否符合条件。 (2)实现要点:用一次穷举循环就可以了。因为是固定次数的循环,一般采用for语句。对于每个当前的整数,用取余和整除运算分解出各位的数字。对于三位的正整数n,个位数g = n%10,十位数s = (n%100)/10,百位数b = n/100。 4. 参考代码 #include int main(void) { int n, g, s, b; for (n=100; n<=999; n++) { b = n / 100; s = n / 10 % 10; g = n % 10; if ( g*g*g + b*b*b + s*s*s==n) printf("%d ",n); } return 0; } 5. 思考题 什么情况下采用穷举循环是比较合适的? 【教学案例二】 1. 实验目的 (1)熟练使用while 语句和理解该语句的执行顺序,掌握累加和计算的算法。 (2)熟练运用断点调试。 2. 实验任务 74

(1)实验内容:根据下面关系式,求π的值,直到最后一项的值小于epsilon 。epsilon 的值由键盘输入。 12!3!!12335357357n p =++++???????…+…(2n+1) (2)实验要求:改正下面的错误程序,达到满足如下表的运行示例结果。测试用例: /* 1 */ #include /* 2 */ int main(void)/* 3 */ { /* 4 */double sum,item;/* 5 */double epsilon;/* 6 */int i; /* 7 */printf("Enter Epsilon:");/* 8 */scanf("%lf",&epsilon);/* 9 */item = 1; /* 10*/sum = 0; /*调试时设置断点*//* 11*/while (item >= epsilon)/* 12*/{/* 13*/sum += item;/* 14*/i++;/* 15*/item *= i;/* 16*/item /=(2*i-1);/* 17*/} /* 18*/printf("Pi=%.6lf\n",2*sum); /*调试时设置断点*//* 19*/return 0; /* 20*/ } 3. 实验分析 (1)程序分析:这是一个求累加和的问题。为解决这个问题,首先抽取出具有共性的算式:sum=sum + item ,其中sum 存放累加和,item 表示第i 项的内容。题目没有显式地给出循环次数,只是提出了精度要求。在反复计算累加的过程中,一旦第i 项的绝对值小于Epsilon ,就达到了给定的精度,计算终止,这说明精度要求实际上给出了循环的结束条件,

包装结构设计

一、纸盒包装的基础知识 ?(1)、纸盒尺寸 ?(2)、各种折合线的样式及功能 ?(3)、国际标准中小型反相盒盖纸盒 纸张的性能及常用的品种 白板纸:也叫白卡纸,其底、面分灰、白两种。 黄板纸:俗称草板或马粪纸。主要用于制造各种纸箱或纸盒,也可加工成衬垫材料。 箱板纸:又称麻板纸,以它作为面板纸和瓦楞厚纸芯粘合后,制成各种结构的瓦箱。 瓦楞纸板:因形状有瓦楞波而得名。它可以制各种纸箱和纸盒。 塑料复合纸:复合材料是由多种材料互相粘结组合而成,塑料复合纸是软质复合材料 纸盒结构中的重要成分---盒底结构设计 纸盒包装中,盒底部分是承受载重量、抗压力、振动、跌落等因素中影响最大的部分。在进行结构设计时,需要慎重考虑的部分。 结构主要分框型式结构和托盘式结构二大类。 盒底结构设计---框型式结构: 框型式结构:指纸盒的盒身呈框型,在框型盒身的四个面延伸的基础上设计成不同的栓结形式的纸盒封底结构。 框型式结构可分为以下几种:1、插口封底式:2、粘合封底式:3、锁底式:4、自动锁底式:5、间壁封底式:6、折叠封底式:7、下揿封底式:8、反揿固定式:框型式结构1、2 1、插口封底式:(图示) 这种结构一般只能包装小型产品,盒底只能承受一般的重量,其特点是包装产品简单方便,在普通的产品中已被广泛应用。

2、粘合封底式:(图示) 这种结构一般只能用于机械包装,这种用盒底的两翼互相粘合的封底结构,用料省,盒底已能承受较重的份量,包装粉末产品时可防止粉末漏出,现且耐用,常见的如洗衣粉包装就是这样结构。 3、锁底式:(图示) 这种结构是将框型纸盒盒底的四个摇翼部分设计成互相咬口的形式进行锁底。中小型瓶装产品中已广泛地采用这种结构的封底形式。

相关文档
最新文档