全国计算机等级考试二级,C语言考前复习资料重点(2)

2019-03-03 13:31

#include \main() { int i,j,k; int a[6]={9,8,5,4,2,0}; for(i=1;i<6;i++) { for(j=0;j<6-i;j++) { if(a[j]>a[j+1]) { k=a[j]; a[j]=a[j+1]; a[j+1]=k; } } } for(i=0;i<6;i++) { printf(\ } } 练习:编写程序,用冒泡法对字符串maritime排序(ASCII码小的在前面)

例题5:选择排序

【选择排序】

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最前,直到全部待排序的数据元素排完。 【示例】:

初始 [49 38 65 97 76 13 27 49] 第一趟排序后 13 [38 65 97 76 49 27 49] 第二趟排序后 13 27 [65 97 76 49 38 49] 第三趟排序后 13 27 38 [97 76 49 65 49] 第四趟排序后 13 27 38 49 [76 97 65 49 ] 第五趟排序后 13 27 38 49 49 [97 65 76] 第六趟排序后 13 27 38 49 49 65 [97 76] 第七趟排序后 13 27 38 49 49 65 76 [97]

最后排序结果 13 27 38 49 49 65 76 97

第一步:在[49 38 65 97 76 13 27 49]找到min

回顾范例1 使用另一种方法:记录最大值的下标t, #include \#include \ main() main() { { int i,min; int i,t; int a[8]={49,38,65,97,76,13,27,49}; int a[8]={49,38,65,97,76,13,27,49}; min=a[0]; t=0; /*用a[t]代表max*/ for(i=1;i<8;i++) for(i=1;i<8;i++) { { if(min>a[i]) if(a[t]>a[i]) { { min=a[i]; t=i; } } } } printf(\ printf(\a[t]); } printf(\ t); }

第二步:找到min后,将min与第一个位置的元素相交换

交换13与49,即交换a[t]与a[0],此时t=5。得到:13 [38 65 97 76 49 27 49]

#include \ main() { int i,t,temp; int a[8]={49,38,65,97,76,13,27,49}; t=0; for(i=1;i<8;i++) { if(a[t]>a[i]) { t=i; } } if(t!=0) /*如果原本a[o]就最小,那么就不用换*/ { temp=a[t]; a[t]=a[0]; a[0]=temp; } printf(\ }

最后,对于8个数:[49 38 65 97 76 13 27 49] ,总共进行了7趟排序,第1趟排序进行了7次两两比较,第i趟排序进行了8-i次两两比较 (此处i从1开始)

#include \ main() { int i,j,t,temp; int a[8]={49,38,65,97,76,13,27,49}; for(i=0;i<8;i++) { t=i; /*第i趟从第i个元素开始比较,i从0开始*/ for(j=i+1;j<8;j++) { if(a[t]>a[j]) { t=j; } } if(t!=i) /*将第i趟中最大值放在a[i]的位置*/ { temp=a[t]; a[t]=a[i]; a[i]=temp; } } for(i=0;i<8;i++) { printf(\ } }

练习:编写程序,用选择法对大小为10的数组按从大到小排序

附录 字符串的输入输出

(1)采用循环的方式读取字符串 #include \ main() { char a[15]; int i; printf(\请输入15个字符:\\n\ for (i=0;i<=14;i++) scanf(\ printf(\ printf(\您刚输入的15个字符:\ for (i=0;i<=14;i++) printf(\ }

我们发现:不输完15个字符就会一直等待你输入

(2)采用%s的方式读取字符串 #include \ main() { char c[15]; printf(\请输入15个以内的字符:\\n\ scanf(\ printf(\您刚输入的字符为:\\n\ printf(\ }

注意:%s读取时遇到空格就认为是结束标志!

(3)采用gets()的方式读取字符串 #include \ main() { char c[15]; printf(\请输入15个以内的字符:\\n\ gets(c); printf(\您刚输入的字符为:\\n\ puts(c); } 输入:I am a worker. 输出结果:I am a worker. 输入:I am a worker. 输出结果:I 输入:I am a worker. 输出结果:I am a worker.

说明:gets函数用来输入字符串,能够读取空格和回车符。puts函数用来输出的,输出时会自动在字符串末尾加一个换行符。


全国计算机等级考试二级,C语言考前复习资料重点(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:优化课堂教学目标, 提高教学效率

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: