ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:71.69KB ,
资源ID:6795884      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6795884.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第七次课上课程序及习题参考程序.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第七次课上课程序及习题参考程序.docx

1、第七次课上课程序及习题参考程序第七次课上课程序复习:例1:选择法排序:#include int main(void) int arr10, i, j, temp, min; printf(Please input 10 numbers:n); for (i = 0; I 10; i+) /*数组的输入*/ scanf(%d, &arri); for (i = 0; i 10 - 1; i+) /*选择法从小到大排序*/ min = i; for(j = i + 1; j arrj) min = j; if (min != i) temp = arri; arri = arrmin; arrmi

2、n = temp; printf(The sorted numbers:n); for (i = 0; i 10; i+) /*数组的输出*/ printf(%4d, arri); return 0;例2:冒泡法排序#include int main(void) int arr10, i, j, temp; printf(Please input 10 numbers:n); for ( i = 0; i 10; i+) /*数组的输入*/ scanf(%d, &arri); for (i = 0; i 10 - 1; i+) /*冒泡法从小到大排序*/ for ( j = 0; j arrj

3、+1) temp = arrj; arrj = arrj+1; arrj+1 = temp; printf(The sorted numbers:n); for ( i = 0; i 10; i+) /*数组的输出*/ printf(%4d, arri); return 0;函数独立:记忆1:理解并记忆例1和例2选择法、冒泡法函数的声明、调用、定义例1:选择法排序:#include void select_sort(int arr, int n); /*选择法排序函数声明*/int main(void) int arr10, i; printf(Please input 10 numbers:

4、n); for (i = 0; i 10; i+) scanf(%d, &arri); select_sort(arr, 10); /*选择法排序函数调用*/ printf(The sorted numbers:n); for (i = 0; i 10; i+) printf(%4d, arri); printf(n); return 0;void select_sort(int arr, int n) /*选择法排序函数定义*/ int i, j, min, temp; for (i = 0; i n - 1; i+) min = i; for(j = i + 1; j arrj) min

5、= j; if (min != i) temp = arri; arri = arrmin; arrmin = temp; 例2:冒泡法排序#include void bubble_sort(int arr, int n); /*冒泡法排序函数声明*/int main(void) int arr10, i; printf(Please input 10 numbers:n); for ( i = 0; i 10; i+) scanf(%d, &arri); bubble_sort(arr, 10); /*冒泡法排序函数调用*/ printf(The sorted numbers:n); for

6、 ( i = 0; i 10; i+) printf(%4d, arri); printf(n); return 0;void bubble_sort(int arr, int n) /*冒泡法排序函数定义*/ int i, j, temp; for (i = 0; i n - 1; i+) for ( j = 0; j arrj+1) temp = arrj; arrj = arrj+1; arrj+1 = temp; 例3:二维数组举例58题码:章节:数组考查点:键盘输入技巧的掌握和二维数组的应用难度:2编写一程序P2-216.C实现以下功能求任意的一个mm矩阵的最大数及其所在的行列数,m

7、(2=m=20)及矩阵元素从键盘输入(只考虑int型)。编程可用素 材:printf(Pleaseinputm:).、printf(nPleaseinputarray:n).、 printf(nmax=.,i=.,j=.n.。程序的运行效果应类似地如图1所示,图1中的5和1456723546435689323428347934647957464678543619434634323556724846525是从键盘输入的内容。图1 程序运行效果示例分析结果:输入: m和arr值输出:最大值max及其行标maxi和列标maxj算法:初值max=arr00,maxi=0,maxj=0;将max与arr

8、数组中所有元素进行比较找出最大值并记下其行标和列标#include int main(void) /*定义变量*/ int arr2020; int i, j, m, max, maxi, maxj; /*输入数据*/ printf(Please input m: ); scanf(%d, &m); printf(nPlease input array:n); for (i = 0; i m; i+) /*i控制行*/ for (j = 0; j m; j+) /*j控制列*/ scanf(%d, &arrij); /*处理数据*/ max = arr00; maxi = 0; maxj =

9、0; for (i = 0; i m; i+) /*i控制行*/ for (j = 0; j m; j+) /*j控制列*/ if (max arrij) max = arrij; maxi = i; maxj = j; /*输出数据*/ printf(nmax=%d,i=%d,j=%dn, max, maxi, maxj); return 0;类似有59题(p2-217.c)、60题(p2-218.c)例4:顺序查找函数有序表和无序表皆可int search(int a, int n, int x) int i; for (i=0; in; i+) if (ai = x) return (i

10、); return (-1);例5:折半查找函数适用于有序表int binsearch(int a, int n, int x) int low, high, mid; low = 0; high = n - 1; while (low amid) low = mid + 1; else if (x amid) high = mid - 1; else return (mid); return(-1); 记忆2:排序+查找:理解并记忆例6例6:输入10个数,从小到大排序,然后输入一个数,要求找出该数是数组中第几个(序号从1开始计算)元素:#include void select_sort(in

11、t arr, int n); /*函数声明*/int binsearch(int a, int n, int x);/*函数声明*/ int main(void) int arr10, i, num, flag; printf(Please input 10 numbers:n); for (i = 0; i 10; i+) scanf(%d, &arri); select_sort(arr, 10); /*函数调用*/ printf(The sorted numbers:n); for (i = 0; i 10; i+) printf(%4d, arri); printf(n); print

12、f(input the num to look for:n); scanf(%d, &num); flag = binsearch(arr, 10, num);/*函数调用*/ if (flag != -1 ) printf(the position of %d is %dn, num, flag+1); else printf(not find!n); return 0;void select_sort(int arr, int n) /*函数定义*/ int i, j, min, temp; for (i = 0; i n - 1; i+) min = i; for(j = i + 1;

13、j arrj) min = j; if (min != i) temp = arri; arri = arrmin; arrmin = temp; int binsearch(int a, int n, int x) /*函数定义*/ int low, high, mid; low = 0; high = n - 1; while (low amid) low = mid + 1; else if (x amid) high = mid - 1; else return (mid); return(-1); 字符串与字符数组记忆3:理解并记忆例7和例8一维字符数组和二维字符数组的输入和输出例7

14、_1:一维字符数组逐个输入与输出,理解并记忆for中循环终止条件#include int main(void) int i; char str80, ch; printf(Input a string:); for (i=0; (ch = (char)getchar() != n; i+) /*字符串输入遇上n结束*/ stri = ch; stri = 0; /*人为加上结束符*/ printf(output a string:); /*字符串输出遇上结束符 0 结束*/ for (i=0; stri != 0; i+) putchar(stri); printf(n); return 0;

15、例7_2:一维字符数组整体输入使用scanf()和printf()不能输入带空格字符串使用gets()和puts()可输入带空格的字符串#include int main(void) char str80; printf(Input a string: ); gets(str); /* scanf(%s, str); */ printf(Output a string: ); puts(str); /* printf(%s,str); */ printf(n); return 0;例8:二维字符数组的输入和输出#include int main(void) char str580; print

16、f(Input a string: ); for (i=0;i5;i+)gets(str); printf(Output a string: ); for (i=0; i5; i+)puts(str); printf(n); return 0;例9:53题码:章节:数组考查点:字符数组的处理,循环和判断难度:2编写一程序P2-220.C实现以下功能从键盘读入一行字符(约定:字符数127字节),统计及输出其中的字母、数字、空格和其他符号的个数。编程可用素 材:printf(Please input string:).、 printf(nzimu=.,shuzi=.,kongge=.,qita=.

17、。程序的运行效果应类似地如图1所示,图1中的gfaskl45623cvsac,53dwafl faf32535是从键盘输入的内容。#include int main(void) char str128; int i, zimu = 0, shuzi = 0, kongge = 0, qita = 0; printf(Please input string:); gets(str); for (i= 0; stri != 0; i+) if (stri = a) & (stri = A) & (stri = 0) & (stri = 9) shuzi+; else if (stri = ) ko

18、ngge+; else qita+; printf(nzimu=%d,shuzi=%d,kongge=%d,qita=%dn, zimu, shuzi, kongge, qita); return 0;记忆4:理解并记忆例10中二维字符数组的输入和输出及排序例10:95题码:章节:数组考查点:排序算法,二维字符数组及字符串处理函数的应用 难度:3编写一程序P7-719.C实现以下功能从键盘上输入5个字符串(约定:每个字符串中字符数80字节),对其进行升序排序并输出。编程可用素材:printf(Input 5 strings:n).、printf(-n).。程序的运行效果应类似地如图1所示,图1

19、中的 hello my friend Are you ready? help!是从键盘输入的内容。#include #include void sel_sort(char s81, int n);int main(void) char str581; int i; printf(Input 5 strings:n); for (i = 0; i 5; i+) gets(stri); sel_sort(str, 5); printf(-n); for (i = 0; i 5; i+) puts(stri); return 0;void sel_sort(char s81, int n) int

20、i, j, min; char temp81; for (i = 0; i n - 1; i+) min = i; for (j = i + 1; j 0) min = j; if (min != i) strcpy(temp, si); strcpy(si, smin); strcpy(smin, temp); 习题参考程序习题7-5P7-771.c思路:找到一个单词将其放在temp128数组中,并用count统计其长度,若countmaxlen,则将temp128中的暂存单词复制到max128中,并用maxlen(maxlen=count)记下该单词长度。#include #include

21、 int main(void) char str128, temp128, max128; int i, j = 0, count = 0, maxlen = 0; printf(please input a string:n); gets(str); for (i = 0; stri != 0; i+) if (stri != ) tempj = stri; j+; count+; else if (j != 0 ) /*处理单词和单词之间有多个空格*/ tempj = 0; if (count maxlen) strcpy(max, temp); maxlen = count; j = 0

22、; count = 0; if (count maxlen) /*处理最后一个单词是最长单词*/ strcpy(max, temp); maxlen = count; printf(nmax_length of the string is: %dn, maxlen); return 0;习题7-6P7-705.c#include int main(void) char ch; printf(Please input the letter of someday: ); while (ch = (char)getchar() != Y) switch (ch) case M: printf(Mon

23、dayn); break; case W: printf(Wednesdayn); break; case F: printf(Fridayn); break; case T: ch = (char)getchar(); if (ch = u) printf(Tuesdayn); else if (ch = h) printf(Thrusdayn); else ungetc(ch, stdin); /*将ch中的字符还给stdin即键盘*/ printf(data errorn); break; case S: ch = (char)getchar(); if (ch = a) printf(Saturdayn); else if (ch = u)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1