收藏 分销(赏)

高级语言程序设计.ppt

上传人:s4****5z 文档编号:13986105 上传时间:2026-05-22 格式:PPT 页数:65 大小:827KB 下载积分:10 金币
下载 相关 举报
高级语言程序设计.ppt_第1页
第1页 / 共65页
高级语言程序设计.ppt_第2页
第2页 / 共65页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,莆田学院现代教育技术中心 2004年3月,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,莆田学院现代教育技术中心 2004年3月,*,高级语言程序设计,第三章 算法基础与程序控制结构,莆田学院现代教育技术中心,2004年3月 制作,本章主要内容,程序设计方法简述,算法与流程图,算法的两种表示法,两种流程图,三种基本结构,选择结构程序设计,if else 语句 switch语句,循环结构程序设计,四种循环语句,常用算法,枚举法(穷举法)归纳法(递推法),课外阅读材料,程式设计与流程图,(请上网下载),莆田学院现代教育技术中心 2004年3月,一、程序设计方法简述,1、计算机处理问题的过程,【,例一】让某学生解方程,ax,2,+bx+c=0,求解过程:,分析问题,这是一个一元二次方程(代数问题,须中学代数知识),确定处理方案,用求根公式,确定解题步骤,确定,a、b、c,的值,求出,b,2,-4ac,的值,如果,b,2,-4ac0,(双实根),X1=,X2=,如果,b,2,-4ac=0,(单实根),X1=X2=,如果,b,2,-4ac=60),printf(“Passed!”);,else,printf(“Failed”);,莆田学院现代教育技术中心 2004年3月,二、算法与流程图,2、传统流程图,P19,特点:,直观形象;,使用流线。,缺点:,占面积大,使用流线任意转移,易出现“乱麻”现象,造成编程与阅读程序困难。,莆田学院现代教育技术中心 2004年3月,二、算法与流程图,3、N-S结构化流程图,P26-27,77年美学者I.Nassi和B.Scheiderman提出。,特点,取消流线,不允许流程任意转移,只能从上而下顺序执行,规定三种基本结构的流程图单元,由这些基本结构象搭积木似的组成各种算法(结构化设计)。,优点,算法清晰,流程不会无规律乱转移。,莆田学院现代教育技术中心 2004年3月,二、算法与流程图,4、三种基本结构,P23-26,通常情况下,程序中的语句是以所编写的顺序一句接一句地执行,这种执行方法称为“顺序执行”。许多C语句能够让程序员指定不按编写顺序执行下一条执行语句,这种执行方法称为“控制转移”。,Bohm和Jacopini的研究证实,所有的程序都能够只用三种控制结构编写,即,顺序结构,选择结构(selection structure),循环结构(repetition structure),顺序结构是C语言的基本结构,除非指示转移,否则计算机自动以语句编写的顺序一句一句地执行C语句。,任何C语言程序都是由七种控制结构(顺序结构、三种选择结构和三种循环结构)构成的。,莆田学院现代教育技术中心 2004年3月,二、算法与流程图,4、三种基本结构,P23-26,顺序结构,A块、B块顺序执行(每块代表一个或一组操作),莆田学院现代教育技术中心 2004年3月,二、算法与流程图,4、三种基本结构,P23-26,选择结构,条件p成立时执行a块(否则执行b块),if,选择结构,条件为真时执行某个指定的操作,条件为假时跳过该操作(单路选择),if,else选择结构,条件为真时执行某个指定的操作,为假时执行另一个指定的操作(双路选择),switch选择结构,根据表达式的值执行众多不同操作中的某个指定的操作(多路选择),莆田学院现代教育技术中心 2004年3月,二、算法与流程图,4、三种基本结构,P23-26,循环结构,分,当型,和,直到型,两类。,当型,先判断,只要条件为真就反复执行A块,为假则结束循环。,直到型,先执行A块,再判断条件是否为真,为真则继续执行循环体,为假则结束循环。,C语言提供了三种循环结构,即,while,循环结构,,do,while,循环结构和,for,循环结构。,莆田学院现代教育技术中心 2004年3月,三、选择结构程序设计,1、if语句,P91,三种形式:,if(表达式),语句;,(图5.5a),if(表达式),语句1;,else,语句2;,(图5.5b),if(表达式1),语句1;,(图5.6),else if(表达式2),语句2;,else if(表达式n),语句n;,else,语句n+1;,e1,?,e2,:,e3,是,if,else,语句在特定情况下的变体。,莆田学院现代教育技术中心 2004年3月,三、选择结构程序设计,1、if语句,示例,【例一】以下程序的作用是什么?,main(),char c;,printf(“Input:”);,scanf(“%c”,if(c=a&c=z),c=c-32;,else c=c;,printf(“%c”,c);,/*将小写字母转换为大写字母*/,莆田学院现代教育技术中心 2004年3月,三、选择结构程序设计,1、if语句,示例,【例二】以下程序的执行结果是什么?,main(),int x=2,y=-1,z=2;,if(xy),if(y0),;,if(x=2)if(1=x0”);y=x-1;,莆田学院现代教育技术中心 2004年3月,三、选择结构程序设计,2、,switch,语句,P98,switch 语句的一般形式:,switch(,e,),case,c1,:,语句组1;,case,c2,:,语句组2;,case,cn,:,语句组n;,default,:,语句组n+1;,/*可缺省*/,/*,e,表达式(整型、字符型或枚举型,)*/,c1,cn,常量(整数、字符、常量表达式如3+4,不含变量或函数),default,不是c1cn的情况(位置不一定在最后)。,莆田学院现代教育技术中心 2004年3月,三、选择结构程序设计,2、,switch,语句,示例,main(),char s;,scanf(“%c”,switch(s),case A,:,printf(“85100n”);,case B,:,printf(“7084n”);,case C,:,printf(“6069n”);,case D,:,printf(“60n”);,default,:,printf(“,错误输入,n”);,输入“c”,求输出结果。,结果:,6069,60,错误输入,?!,莆田学院现代教育技术中心 2004年3月,三、选择结构程序设计,2、,switch,语句,示例,main(),char s;,scanf(“%c”,switch(s),case A,:,printf(“85100n”);,case B,:,printf(“7084n”);,case C,:,printf(“6069n”);,case D,:,printf(“60n”);,default,:,printf(“,错误输入,n”);,我的成绩应该是6069!,什么!“,60,”?,“,错误输入,”?怎么会这样?!,不好意思,我属于C级!,运行结果:,6069,60,错误输入,莆田学院现代教育技术中心 2004年3月,三、选择结构程序设计,2、,switch,语句,示例,解决方法,break,语句:,main(),char s;,scanf(“%c”,switch(s),case A,:,printf(“85100n”);,break;,case B,:,printf(“7084n”);,break;,case C,:,printf(“6069n”);,break;,case D,:,printf(“60n”);,break;,default,:,printf(“,错误输入,n”);,这才差不多,!,break!,运行结果:,6069,莆田学院现代教育技术中心 2004年3月,三、选择结构程序设计,2、,switch,语句,示例,解决方法,break,语句:,main(),char s;,scanf(“%c”,switch(s),case A,:,printf(“85100n”);,break;,case B,:,printf(“7084n”);,break;,case C,:,printf(“6069n”);,break;,case D,:,printf(“60n”);,break;,default,:,printf(“,错误输入,n”);,讨论,switch(,s,),语句中的,s,实际上并非真正的条件选择,而只是一种跳转指示(与if语句不同),表示下面应该跳转到什么位置继续执行。而各,case,实际上只是一个跳转处的标记。当程序跳转到某个,case,处时,并非只执行此,case,行的程序组,而是从此处开始一直向下执行各条语句,直到整个,switch,开关体结束(“,”)。,如果要使每个,case,处相当于一种,if(s)else,的效果,必须在其语句组最后加上,break,语句。,莆田学院现代教育技术中心 2004年3月,三、选择结构程序设计,2、,switch,语句,示例,main(),int x=1,y=0,a=0,b=0;,switch(x),case 1:,switch(y),case 0:a+;break;,case 1:b+;break;,case 2:a+;b+;break;,case 3:a+;b+;,printf(“a=%d,b=%dn”,a,b);,说明,1、每个case常量表达式的值必须互不相同,否则会出现互相矛盾的结果。,2、允许多个case共用一个执行语句。,求程序运行结果。,结果:,a=2,b=1。,如果x=2?,结果:a=1,b=1,如果x=3?,结果:a=1,b=1,莆田学院现代教育技术中心 2004年3月,三、循环结构程序设计,循环是在循环条件为真时计算机反复执行的一组指令(循环体)。,循环控制通常有两种方式:,计数控制,事先能够准确知道循环次数时用之,用专门的循环变量来计算循环的次数,循环变量的值在每次执行完循环体各语句后递增,达到预定循环次数时则终止循环,继续执行循环结构后的语句。,标记控制,事先不知道准确的循环次数时用之,由专门的标记变量控制循环是否继续进行。当标记变量的值达到指定的标记值时,循环终止,继续执行循环结构后的语句。,莆田学院现代教育技术中心 2004年3月,四、循环结构程序设计,在C语言中可用以下语句构成循环:,if,goto,while,do,while,for,其中,if,goto,是通过编程技巧(,if,语句和,goto,语句组合)构成循环功能。而且,goto,语句将影响程序流程的模块化,使程序可读性变差,所以结构化程序设计主张限制,goto,语句的使用。,其他三种语句是C语言提供的循环结构专用语句。,莆田学院现代教育技术中心 2004年3月,四、循环结构程序设计,循环结构两大要素:,循环条件,p,结束循环的条件表达式,循环体,A,循环执行的语句或语句组,设置循环条件要特别注意确定:,循环变量,的,初值,循环变量,的,终值,循环变量,的,变化规律,名词解释,无限循环,死循环,名词解释,空循环,莆田学院现代教育技术中心 2004年3月,四、循环结构程序设计,1、,if,goto,语句循环结构,P106,【,例一,】,main(),int n=0,sum=0;,loop:,sum+=n;,+n;,if(sum=10000),goto end;,sum+=n;,+n;,goto loop;,end:,printf(“n=%dn”,n);,直到型,当 型,莆田学院现代教育技术中心 2004年3月,四、循环结构程序设计,2、,while,语句循环结构,P107,【例三】,main(),int n=0,sum=0;,while,(sum=10000),sum+=n;,+n;,printf(“n=%dn”,n);,当 型,一般形式,while(,条件表达式,),循环体;,用于构成当型循环:先判断后执行/条件为真继续循环,直到条件为假时结束循环。,【注意】条件表达式或循环体内应有改变条件使循环结束的语句,否则可能陷入“死循环”。,莆田学院现代教育技术中心 2004年3月,四、循环结构程序设计,3、do,while,语句循环结构,P108,【例四】,main(),int n=0,sum=0;,do,sum+=n;,+n;,while,(sum0);,printf(“n”);,/*取得num的个位数*/,/*输出num的个位数*/,/*直到num/10为0*/,结果:,65421,将各位数字反序显示出来,莆田学院现代教育技术中心 2004年3月,四、循环结构程序设计,4、for语句循环结构,P110,一般形式,for(,表达式1;条件表达式;表达式3,),循环语句(组);,用于构成计数型当型循环:先判断后执行/条件为真继续循环,直到条件为假时结束循环。,表达式1:整个循环中只执行1次,常用来对循环变量设置初值,条件表达式(表达式2):其值为真(非0)时继续执行循环语句(组),否则结束循环,表达式3:常用于循环变量值的更新(循环体的一部分每次循环语句组执行完后执行一次),【例六】,求,i=1+2+3+4,+99+100,(i=1100),main(),int i,s=0;,for(,i=1;i50),break;,while(a=14);,printf(a=%d,y=%dn,a,y);,结果:,a=16,y=60,变量跟踪,a y,10 0,12 12,14+2 16+12=28,14+2 16+28=44,14+2 16+44=60,变量跟踪,分析法,莆田学院现代教育技术中心 2004年3月,四、循环结构程序设计,5、其他循环控制结构,P114,break,结束循环,在switch中退出switch结构;,在循环中结束循环。,continue,结束本次循环,循环“短路”(跳过循环体后面的语句,开始下一轮循环,)。,goto,跳转,跳到循环体外指定标号处。,【注意】,goto 语句只能从循环内向外跳转,反之不可!,求以下程序段执行后x和i的值。,int i,x;,for(i=1,x=1;i=10)break;,if(x%2=1),x+=5;,continue,;,x-=3;,结果:,x的值为10,i的值为6,变量跟踪,i x,1 16,2 63,3 38,4 85,5 510,6,莆田学院现代教育技术中心 2004年3月,四、循环结构程序设计,5、其他循环控制结构,P114,break,结束循环,在switch中退出switch结构;,在循环中结束循环。,continue,结束本次循环,循环“短路”(跳过循环体后面的语句,开始下一轮循环,)。,goto,跳转,跳到循环体外指定标号处。,【注意】,goto 语句只能从循环内向外跳转,反之不可!,main(),int i=1;,while(i=15),if(+i%3!=2),continue,;,else,printf(%d,i);,printf(n);,结果:,2 5 8 11 14,变量跟踪,i +i%3,输出,i,12 2 2,23 0,34 1,45 2 5,56 0,莆田学院现代教育技术中心 2004年3月,四、循环结构程序设计,5、其他循环控制结构,P114,break,结束循环,在switch中退出switch结构;,在循环中结束循环。,continue,结束本次循环,循环“短路”(跳过循环体后面的语句,开始下一轮循环,)。,goto,跳转,跳到循环体外指定标号处。,【注意】,goto 语句只能从循环内向外跳转,反之不可!,main(),int i,k=0;,for(i=1;i+),k+;,while(ki*i),k+;,if(k%3=0),goto,loop,;,loop:,printf(%d,%d,i,k);,结果:,2,3,莆田学院现代教育技术中心 2004年3月,编程示例,题目:编写一个用户密码校验程序。用户根据提示输入密码,如果密码正确,显示“Welcome!”信息;密码不正确,除提示密码输入错误外,允许再输入密码,如果三次输入均错,显示“你是非法用户”,然后结束程序。,程序分析(画出传统流程图和N-S流程图),密码输入部分分析(画出N-S流程图),现场程序编写与调试,程序不足处说明(留给学生解决),莆田学院现代教育技术中心 2004年3月,密码校验程序流程图,莆田学院现代教育技术中心 2004年3月,密码校验程序N-S流程图,莆田学院现代教育技术中心 2004年3月,五、常用算法,1、枚举法(穷举法),“笨人之法”:,把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出。,【例一】,百元买百鸡:用一百元钱买一百只鸡。已知公鸡5元/只,母鸡3元/只,小鸡1元/3只。,分析:,这是个不定方程三元一次方程组问题(三个变量,两个方程),xyz=100,5x3yz/3=100,设公鸡为,x,只,母鸡为,y,只,小鸡为,z,只。,莆田学院现代教育技术中心 2004年3月,百元买百鸡问题分析,莆田学院现代教育技术中心 2004年3月,百元买百鸡问题分析,main(),int x,y,z;,for(x=0;x=100;x+),for(y=0;y=100;y+),for(z=0;z=100;z+),if (x+y+z=100&5*x+3*y+z/3.0=100),printf(,cocks=%d,hens=%d,chickens=%dn,x,y,z);,结果:,x=0,y=25,z=75,x=4,y=18,z=78,x=8,y=11,z=81,x=12,y=4,z=84,【讨论,此为“最笨”之法要进行101101101=1030301次(100多万次)运算。,莆田学院现代教育技术中心 2004年3月,百元买百鸡问题分析,main(),int x,y,z;,for(x=0;x=100;x+),for(y=0;y=100;y+),z=100-x-y;,if (5*x+3*y+z/3.0=100),printf(“cocks=%d,hens=%d,chickens=%dn,x,y,z);,【讨论】,令z=100-x-y 只进行101101=10201 次运算(前者的1%),取x=19,y=33 只进行2034=680 次运算(第1种运算的6.7%),莆田学院现代教育技术中心 2004年3月,【,例二】,雨水淋湿了算术书的一道题,8个数字只 能看清3个,第一个数字虽然看不清,但可看出不是1。编程求其余数字是什么?,(3),2,=89,分析,设分别用A、B、C、D、E五个变量表示自左到右五个未知的数字。其中A的取值范围为29,其余取值范围为09。条件表达式即为给定算式。,莆田学院现代教育技术中心 2004年3月,main(),int A,B,C,D,E;,for(A=2;A=9;A+),for(B=0;B=9;B+),for(C=0;C=9;C+),for(D=0;D=9;D+),for(E=0;E=9;E+),if(A*(B*10+3+C)*A*(B*10+3+C)=8009+D*100+E*10),printf(“%2d%2d%2d%2d%2dn”,A,B,C,D,E);,结果:,3 2 8 6 4,【,例二】,雨水淋湿了算术书的一道题,8个数字只 能看清3个,第一个数字虽然看不清,但可看出不是1。编程求其余数字是什么?,(3),2,=89,莆田学院现代教育技术中心 2004年3月,【例三】,求100200之间不能被,3,整除也不能被,7,整除的数。,分析:,求某区间内符合某一要求的数,可用一个变量“穷举”。所以可用一个独立变量x,取值范围100200。,for(x=100;x=200;x+),if(x%3!=0&x%7!=0),printf(“x=%dn”,x);,如果是求指定条件的奇数呢?,如果是求指定条件的偶数呢?,x=101;x=200;x=x+2,x=100;x=200;x=x+2,莆田学院现代教育技术中心 2004年3月,2、归纳法(递推法),“智人之法”,:,通过分析归纳,找出从变量旧值出发求新值的规律。,五、常用算法,【,例一,】,编程求,i=1+2+3+4+99+100 (i=0,100),分析,i,=,0,S0=,0,(,初值,),i=,1,S1=,0+,1,=,S0,+,1,i=,2,S2=,1+,2,=,S1,+,2,i=,3,S3=,1+2+,3,=,S2,+,3,i=,4,S4=,1+2+3+,4,=,S3,+,4,i=,n,S,n,=,1+2+3+4+,+,n,=,S,n-1,+,n,莆田学院现代教育技术中心 2004年3月,【例一】,编程求i=1+2+3+4,+n (n 100),程序:,main(),int i,n,s=0;,printf(n=);,scanf(%d,for(i=1;i=n;i+),s=s+i;,printf(Sum=%dn,s);,运行结果:,n=100,Sum=5050,如果是,i=1+1/2+1/3+,+1/n,呢?,莆田学院现代教育技术中心 2004年3月,算法类型小结:,累加型,【累加型】,类型诸如,+,求其前,n,项之和的编程题。,累加型算法,若设,i,为循环变量,,s,为前,n,项累加之和,则程序的基本结构为:,s=0;,for(i=1;i=,n,;i+),s=s+,;,莆田学院现代教育技术中心 2004年3月,【例二】,编程求11/2+1/31/4+1/5,+1/991/100,分母为奇数时,相加,分母为偶数时,相减,法1,:,从变化规律分析,程序:,main(),int i;,float s=0;,for(i=1;i=100;i+),if(i%2)s=s+1/i;,else s=s-1/i;,printf(Sum=%fn,s);,运行结果:,Sum=1.000000,错在哪里?,莆田学院现代教育技术中心 2004年3月,【例二】,编程求11/2+1/31/4+1/5,+1/991/100,法2,:,这是个累加型算法的编程题,程序:,#include main();,int i;,float s=0;,for(i=1;i=100;i+),s=s+,pow(-1,i+1)/i,;,printf(,Sum=%fn,s);,程序:,#include,main(),int i,k=1;float s=0;,for(i=1;i=100;i+),s=s+,k/i,;,k=-k;,printf(,Sum=%fn,s);,累加型算法,程序基本结构为:,s=0;,for(i=1;i=n;i+),s=s+,;,错在哪里?,(如何检查程序错误?),运行结果:,Sum=0.688172,运行结果:,Sum=1.000000,莆田学院现代教育技术中心 2004年3月,【例三】,编程求n!(n由键盘输入),分析,i=,0,S0=,1,=,S0,(初值),i=,1,S1=,0,1,=,S0,1,i=,2,S2=,1,2,=,S1,2,i=,3,S3=,12,3,=,S2,3,i=,4,S4=,123,4,=,S3,4,i=,n,Sn=,1 234,n,=,Sn-1,n,莆田学院现代教育技术中心 2004年3月,【例三】,编程求n!(n由键盘输入),程序:,main(),int i,n,s=1;,printf(n=);,scanf(%d,for(i=1;i=n;i+),s=s*i;,printf(Sum=%dn,s);,运行结果:,n=5,Sum=120,运行结果:,n=8,Sum=-25216,Why?,莆田学院现代教育技术中心 2004年3月,算法类型小结:,阶乘型,【阶乘型】,类型诸如,求其前,n,项之积的编程题。,阶乘型算法,若设,i,为循环变量,,s,为前,n,项相乘之积,则程序的基本结构为:,s=,1,;,for(i=1;i=,n,;i+),s=s,*,;,莆田学院现代教育技术中心 2004年3月,【例四】,编程求i!=1!+2!+3!,+n!,(n由键盘输入),外循环为累加型,内循环为阶乘型,法1,:,从变化规律分析,程序:,main(),int i,j,n;,float s,s1;,printf(请输入n=);,scanf(%d,s=0;,for(i=1;i=n;i+),s1=1;,for(j=1;j=i;j+),s1=s1*j;,s=s+s1;,printf(Sum=%.0fn,s);,运行结果:,n=5,Sum=153,/*如果n值较大,可改为printf(“Sum=%en”,s);*/,莆田学院现代教育技术中心 2004年3月,【例四】,编程求n!=1!+2!+3!,+n!,(n由键盘输入),在同一个循环中,先阶乘,后累加,法2,:,通过单循环实现,程序:,main(),int i,n;,float s,s1;,printf(请输入n=);,scanf(%d,s=0,s1=1;,for(i=1;i=n;i+),s1=s1*i;,s=s+s1;,printf(Sum=%.0fn,s);,运行结果:,n=5,Sum=153,莆田学院现代教育技术中心 2004年3月,【例五】,P116 例6.7,兔子繁殖问题(斐波那契数列问题),著名意大利数学家斐波那契(Fibonacci)1202年提出一个有趣的问题。某人想知道一年内一对兔子可以生几对兔子。他筑了一道围墙,把一对大兔关在其中。已知每对大兔每个月可以生一对小兔,而每对小兔出生后第三个月即可成为“大兔”再生小兔。问一对小兔一年能繁殖几对小兔?,分析:表示大兔,表示小兔,由分析可以推出,每月新增兔子数Fn=1,1,2,3,5,8,13,21,34,(斐波那契数列),月份n 兔子数Fn,1 F1=1,2 F2=1,3 F3=2=F1+F2,4 F4=3=F2+F3,5 F5=5=F3+F4,n Fn=Fn-1+Fn-2,莆田学院现代教育技术中心 2004年3月,【例五】,P116 例6.7,兔子繁殖问题(斐波那契数列问题),main(),int f1=1,f2=1,f,i,s,n;,clrscr();,printf(请输入月数:);,scanf(%d,for(s=2,i=3;i=n;i+),f=f1+f2;,s=s+f;,f1=f2;,f2=f;,printf(%d个月的兔子数是%dn,n,s);,对照:P116例6.7,莆田学院现代教育技术中心 2004年3月,【例六】,编程显示以下图形(共,N,行,,N,由键盘输入)。,*,*,*,*,*,此类题目分析的要点是:,通过分析,找出每行空格、*与行号i、列号j及总行数N的关系。,其循环结构可用右图表示。,分析:,(设N=5),第1行 4个空格=5-1 1个“*”=2*行号-1,第2行 3个空格=5-2 3个“*”=2*行号-1,第3行 2个空格=5-3 5个“*”=2*行号-1,第4行 1个空格=5-4 7个“*”=2*行号-1,第5行 0个空格=5-5 9个“*”=2*行号-1,由此归纳出:第i行的空格数N-i个;,第i行的“*”数是2i-1个。,莆田学院现代教育技术中心 2004年3月,【例六】,main(),int i,j,N;,clrscr();,printf(,请输入,N=);,scanf(%d,for(i=1;i=N;i+),for(j=1;j=N-i;j+),printf();,for(j=1;j=2*i-1;j+),printf(*);,printf(n);,*,*,*,*,*,莆田学院现代教育技术中心 2004年3月,除了以上例题,要求根据教材掌握:,1、求按指定精度近似值问题(例6.6),2、判断一个数是否素数问题(例6.8),3、密码问题(例6.10),莆田学院现代教育技术中心 2004年3月,判断一个数是否素数问题(例6.8 另一种解法),#include,main(),int m,k,i;,clrscr();,printf(x=);,scanf(%d,for(i=2;im-1;i+),if(m%i=0),printf(%d is not a prime numbern,m);,exit(0);,printf(i=%d,%d is a prime numbern,i,m);,把im-1,改为isqrt(m-1),比较i的值,莆田学院现代教育技术中心 2004年3月,第三章 作业,一、编程题,【要求】,所有编程题须上机调试通过,源程序及运行结果用作业本上交。,源程序要求按缩进形式书写,文字端正整齐。不合格者退回重做,。,1、编写一个程序,计算-32768+32767之间任意整数(由键盘输入)中各位奇数的平方和。,2、编写一个程序,计算给定n时符合下式要求S的值。n由键盘输入(n为不大于10的整数)。,S=(n,(,(6(5+(4(3+(12),3、设有一四位数abcd=(ab+cd),2,,编写一个程序,求a、b、c、d。,4、鸡兔问题:鸡兔共30只,脚共有90个。编写一个程序,求鸡、兔各多少只。,莆田学院现代教育技术中心 2004年3月,第三章 作业,一、编程题,5、编写一个程序,求S值(n由键盘输入):,(程序检验参考:,x=6.66,n=8时,s=40.955;x=6.66,x=15时,s=-1.511),6、编写一个程序,求前 n 项之和S值,其中 n1,x 0。(n由键盘输入):,1 2x 3 5x 8 13x,S=,-,+,-,+,-,+.,2x 3 5x 8 13x 21,(程序检验参考:x=6.66,n=8时,s=-16.492;x=6.66,x=15时,s=-28.469),莆田学院现代教育技术中心 2004年3月,第三章 作业,一、编程题,7、在第二章编程作业题第4题程序的基础上(求任意系数值的一元二次方程任意根的通用程序。),加入可循环使用功能,即程序执行后,询问用户是否继续求解。如果回答“Y”,则继续提示输入a,b,c值求根;如果回答“N”,刚程序运行结束。,8、编写一个程序,将一个二、五、八或十六进制整数与十进制数相互转换。,9、编写一个程序,打印乘法“九九表”,即第一行为11=1,12=2,19=9。第二行:21=2,22=4,29=18。第九行:91=9,9=18,99=81。,10、一辆以固定速度行驶的汽车,清晨司机看到里程表上从左到右的读数和从右到左的读数是相同的,这个数是95859。7小时后,里程表上又出现一个新的对称数。编写一个程序,求此车的时速是多少(是一整数)?这个新的对称数是多少?设里程表为5位数字。,莆田学院现代教育技术中心 2004年3月,第三章 作业,一、编程题,11、编写一个程序,输出3100之间的全部素数(提示:素数求法可参考教材例6.8)。,12、教材P105 第5.5题 第5.8题,二、上机考核题,2004年1月等级考试题第1大题(上机抽查),本阶段项目程序题(见下页),莆田学院现代教育技术中心 2004年3月,本阶段项目程序题(Projects),【要求】,每个项目程序必须有一个软件封面,显示软件名称、作者、简要功能及使用方法,结束时应有告别辞。其余要求同第一题,但源程序不需用作业本上交,可通过电子邮件提交或上机检查。,提交时间:本章授课结束后三周内。,1、编写一个程序,输入从2001到2010年中的任何一年,用for循环输出一个日历。注意对闰年的处理。,2、编写一个程序,使用者可以用这个程序与电脑对玩“石头-剪刀-布”游戏。,3、编写一个程序,小学生可以用这个程序进行两个数的四则运算自我测验。要求:测验者可以选择难度(如取加法乘除或位数为不同难度),可以选择每次做的题数n,电脑会对结果进行正确或错误的评判。题目中的运算数据应随机产生(提示:使用,stdlib.h,中的随机函数,rand(),)。,莆田学院现代教育技术中心 2004年3月,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服