程序设计(C语言)1.ppt
《程序设计(C语言)1.ppt》由会员分享,可在线阅读,更多相关《程序设计(C语言)1.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、例例1 1 用简单选择法对用简单选择法对1010个数排序个数排序(从小到大)从小到大)排序过程:(1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数交换第一趟选择排序,结果最小的数被安置在第1个元素位置上(2)从第2个元素开始,再通过n-2次比较,从剩余的n-1个数中找出关键字次小的元素,将它与第二个数交换第二趟选择排序(3)重复上述过程,共经过n-1趟排序后,排序结束1例初始:49 38 65 97 76 13 27 kji=11349一趟:13 38 65 97 76 49 27 i=22738二趟:13 27 65 97 76 49 38 三趟:13 27 38 97 76
2、49 65 四趟:13 27 38 49 76 97 65 五趟:13 27 38 49 65 97 76 六趟:13 27 38 49 65 76 97 kkkkjjjjjjjjjj2#include /*/*对比实验指导书对比实验指导书P22*/P22*/main()int a11,i,j,k,x;printf(Input 10 numbers:n);for(i=1;i11;i+)scanf(%d,&ai);printf(n);for(i=1;i10;i+)k=i;/*k记录本趟排序的最小值元素位置*/for(j=i+1;j=10;j+)if(ajak)k=j;if(i!=k)x=ai;a
3、i=ak;ak=x;printf(The sorted numbers:n);for(i=1;i11;i+)printf(%d,ai);3习习题题:请请在在以以下下程程序序下下划划线线处处填填上上正正确确的的内内容容,以以实实现现对对数数组组中的数据由小到大排序的功能。中的数据由小到大排序的功能。(选择法)选择法)#include include .hmain()main()int int a10=1,0,4,8,12,65,-76,100,-45,123;a10=1,0,4,8,12,65,-76,100,-45,123;int int i,j,x;i,j,x;for(i=0;i10;+i)
4、for(i=0;i10;+i)x=ai;x=ai;for(j=i+1;j9;+j)for(j=i+1;j9;+j)if(aj if(aj )ai=aj;ai=aj;aj=aj=;x=ai;x=ai;for(i=0;i10;+i)for(i=0;ia1,则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束 i:i:i:i:表示第几轮比较表示第几轮比较表示第几轮比较表示第几轮比较 j:
5、j:j:j:表示本轮的比较次数表示本轮的比较次数表示本轮的比较次数表示本轮的比较次数5冒泡法的核心:小数上浮,大数下沉。冒泡法第一轮:使最大的数放在最后一个位置上;i=0,j=04;共N-1次比较6冒泡法第二轮:使次大的数放在倒数第二个位置上;i=1,j=03;65431第1次56431第2次54631第3次54361第4次54316结果7main()int num10;int i,j,temp;printf(Please input 10 numbers:n);for(i=0;i10;i+)scanf(%d,&numi);for(i=0;i=8;i+)for(j=0;jnumj+1)temp
6、=numj;numj=numj+1;numj+1=temp;printf(The sorted numbers:n);for(i=0;i10;i+)printf(%4d,numi);8冒泡法排序中的核心程序段:冒泡法排序中的核心程序段:for(i=0;i=for(i=0;i=8 8;i+);i+)/*/*将将将将8 8改为改为改为改为9 9,怎样怎样怎样怎样?*/*/for(j=0;j=for(j=0;jnumj+1)if(numjnumj+1)temp=numj;temp=numj;numj=numj+1;numj=numj+1;numj+1=temp;numj+1=temp;91、程序填空
7、:从键盘输入由5个字符组成的单词,判断此单词是不是good!,并显示结果。#include“stdio.h”main()static char str=good!;char b5;int i,flag for(i=0;i5;i+)_=getchar();flag=0;for(i=0;i5;i+)if(bi_stri)flag=1;break;if()printf(“This word is not good!”);else printf(“This word is good!”);或或flag=1flag=1 bi!=flag102 2将将两两个个字字符符串串连连接接起起来来的的程程序序,选选
8、择择合合适适的的句句子子填填入入该该空空格中。(书格中。(书P142 P142 习题习题 7.13)7.13)main()char a150,b50;int i=0;j=0;scanf(%s,a);scanf(%s,b);while(ai!=0);while(!=0)ai+=b ;ai=0;i+j+bj113.3.下面程序的功能是输入下面程序的功能是输入5 5个整数,找出最大数和最小数所在的位置,并把个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的二者对调,然后输出调整后的5 5个数,选择合适的句子填入该程序空格中。个数,选择合适的句子填入该程序空格中。main()int
9、a5,max,min,i,j,k;for(i=0;i5;i+)scanf(“%d”,&ai);min=a0;for(i=1;i5;i+)if(aimin)min=ai;_;max=a0;for(i=1;imax)max=ai;_;printf(“nThe position of min is:%3dn”,k);printf(“The position of max is:%3dn”,j);for(i=1;i5;i+)printf(“%5dn”,ai);k=ij=iak=max;aj=min121.找出死循环程序段是 A:int i=150;B:for(i=0;i100)break;C:int
10、k=0;D:int s=25;do while (s/2)k+=2/2;s-;while (k=10);本章习题本章习题答案:A132.For(;3;);代表的意义是 _;A:死循环 B:不循环 C:循环3次 D:语法错误3.打印如下图形的C程序,选择合适的句子填入该空格中。+main()int i,j,k;for(i=1;i=4;i+)for(j=0;j=3-i;j+)printf();for(k=0;k ;k+)printf(_);printf(n);本章习题本章习题A 2*i+144下面程序的功能是打印100以内个位数为6且能被3整除的所有数,选择合适的句子填入该空格中。#include
11、main()int i,a;for(i=0;i+)j=i*10+6;if()continue;printf(%d,j);本章习题本章习题i=9j%3!=0156.3 求s=a+aa+aaa+aaa之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入:P120main()int a,n,i;long tn,sum;scanf(%d,%d,&a,&n);tn=a;sum=a;for(i=2;i=n;i+)tn=tn*10+a;sum+=tn;printf(sum is%dn,sum);分析:先求每一数项的值,1:tn=a2:tn=a*10+a3:tn=a
12、a*10+a i:tn=tn*a+a总和:sum+=tnP120作业评讲作业评讲16main()unsigned long s=0,t=1;int n;for(n=1;n=20;n+)t=t*n;s=s+t;printf(“1!+2!+20!=%lun”,s)6.4 求 (即1!+2!+20!)17main()int k;float s=0;for(k=1;k=100;k+)s+=k;for(k=1;k=50;k+)s+=k*k;for(k=1;k=10;k+)s+=1.0/k;printf(the sum=%.4f,s);6.5 求186.6 6.6 打印出所有打印出所有的的“水仙花数水仙花
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 语言
限制150内