南昌大学实验报告 C语言的编程环境.pdf

上传人:无*** 文档编号:90877472 上传时间:2023-05-18 格式:PDF 页数:42 大小:4.25MB
返回 下载 相关 举报
南昌大学实验报告 C语言的编程环境.pdf_第1页
第1页 / 共42页
南昌大学实验报告 C语言的编程环境.pdf_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《南昌大学实验报告 C语言的编程环境.pdf》由会员分享,可在线阅读,更多相关《南昌大学实验报告 C语言的编程环境.pdf(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、南昌大手实验报告实验课程:_学生姓名:_学 号:_专业班级:_2 0 1 5年5月 22日目 录一、实 验 一 .页 码 3二、实 验 二 .页 码 6三、实 验 三 .页 码 8四、实验四.页 码 1 6五、实 验 五 .页 码 2 4六、实验六.页 码 3 7南昌大学实验报告学生姓名:学 号:专业班级:实验类型:口 验 证 口 综 合 口 设 计 口 创新实验日期:实验成绩:实验1 C 语言的编程环境一.实验目的I .初步了解c程序的编译、连接和运行的过程。2 .掌握和理解C程序的结构。二.实验内容1.使 用TC2 .运行一个简单的C程序三.实验环境P C微机;D O S操作系统或W in

2、d ow s操作系统;Tu r b o C程序集成环境。四.实验步骤1.启动 Tu r b o C如果用户计算机系统已经安装了 Tu r b o C编译系统,则 在D O S命令状态下键入命令t c。进 入Tu r b o C集成环境后,首先在屏幕上显示Tu r b o C主菜单窗口。在该窗口,有8个菜单条目。每一个菜单的意义如下:F ile处理文件(包括装入、存盘、选择、建立、换名写盘),目录操作(包括列表、改变工作目录),退出系统及调用D O S oE d it建立、编辑源文件。R u n控制运行程序。如果程序已经编译连接好,且D e b u g/S ou r c e D e b u gg

3、ing以及 O p t ion/C omp i 1 e r/C od e ge ne r a t ion/O B J D e b u g I nfor ma t ion 开关置为 O n,则可以用此菜单初始化调试阶段。C omp ile编译并生成目标程序与可执行文件。P r oje c t允许说明程序中包含哪些文件的管理条目。O p t ions可以选择集成环境任选项(如存储模式、编译时的任选项、诊断及连接任选项)及定义宏;也可以记录I nc lu d e O u t p u t及L ib r a r y文件目录,保存编译任选项和从配置文件加载任选。D e b u g检查、改变变量的值,查找函

4、数,程序运行时查看调用栈。选择程序编译时是否在执行行代码中插入调试信.息。B r e a k/Wa tc h增加、删除、编辑监视表达式,及设置、清除、执行至断点。特别要指出的是,除了 E d i t项外,每一个菜单又有对应的子菜单。而选择E d i t项目后,只是进入编辑器。为了从主菜单中选择所需要的功能,可以用以下两种方式之一:(1)按 F 1 0 键后,可以看到屏幕上部主菜单中有反白显示,此时,利用左、右光标移动键(一与一)选择需要的菜单,然后按回车(E n te r)键。(2)直接按A l t+主菜单条目中的首字母(分别为F,E,R,C,P,0,D,B),此时就会出现相应的子菜单。例如,

5、按A l t+F 表示选择文件子菜单(F i l e)o当出现子菜单时,其中某个条目是高亮度的,此时可以利用上、下光标移动键(t 与 I )来移动该高亮度线,从而选择所需要的功能。在菜单调用时,按E sc 键后将直接返回到活动窗口。2 .输入程序输入以下程序S i n c l u d e m a i n ()(p r i n tf (H o w a r e yo u!);)3 .运行程序按 C tr l+F 9 运行程序,如果没有报错,可以按A l t+F 5 查看运行结果,再按空格键回到编辑窗口。4 .保存文件按 F 2 键,弹出一个对话框,在对话框中输入文件名,如:e xa m l.c。5

6、 .退出TC 程序按 A l t+X 键,弹出对话框,提示是否真的要退出TC,如果输入Y 就会退出TC o6 .打开已经存在的文件(1)首选启动TC。(2)按 F 3,弹出对话框。(3)在该对话框中,输入文件名即可。五.思考题总结实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。南昌大学实验报告学生姓名:学 号:专业班级:实验类型:验 证 口 综 合 口 设 计 口 创 新 实验日期:实验成绩:实验2 数据类型、运算符和表达式一.实验目的1 .了解c 语言中数据类型的意义;2 .掌握不同数据类型之间的赋值的规律;3.学会有关C 语言的有关运算符,以及包含这些运算符的表达式,特别是是+和

7、一运算符的使用。4 .进一步熟悉C 程序的编辑环境。二.实验内容1 .用 pri ntf函数来输入表达式运行结果2 .观察实验步骤中表达式的结果三.实验环境P C微机DO S 操作系统或W i ndows 操作系统T urbo C 程序集成环境四.实验步骤1 .当 x=5,y=6,z=7 时x xx!=yx=z-2x=x-2x =zx =z以上表达式的值l;l;l;l;3;o;l.2 .当 x=0,y=-l,z=l 时x&yx|yy&zy zx&yx|y以上表达式的值五.思考题1.和 J=有什么区别?2.和“&”、“|”和“|有什么区别?答1 =”是赋值运算符,而“=”是关系运算符。且“=”的

8、优先级 高 于“=”,运算时,“=”自左至右结合,但“=”自右至左结合。2 是按位与运算符;而“&”是逻辑与运算符,“是按位或运算符;而“I I ”是逻辑或运算符。南昌大学卖族报告学生姓名:学 号:专业班级:实验类型:口 验 证 口 综 合 口 设 计 口 创新实验日期:实验成绩:实验3 控制语句一.实验目的1.熟练掌握i f、ifelse、ifelseif语句和switch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。2.熟练掌握while语句、do.while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构

9、的嵌套,利用循环语句实现循环结构。3.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。二.实验内容1.选择结构程序设计;2.if语句的使用;3.使 用 switch语句实现多分支选择结构;4.三种循环语句的应用;5.循环结构的嵌套;6.break和 continue语句的使用。三.实验环境PC微机DOS操作系统或Windows操作系统Turbo C 程序集成环境四.实验步骤1.编程实现:输入一个整数,将其数值按照小于10,1099,100999,1000以上四个类别分类并显示。要求:(1)将变量定义为整型。(2)输入整数前,利用

10、puts()/printf()给出提示信息。(3)输出结果时要有必要的说明,例如:输入358时,显示358 is 100to 999o(4)该程序利用if语句实现。运行程序,分别输入9,21,321,4321数据检查输出信息的正确性。#includemain()int x;printf(nPlease input a number:nH);scanf(H%dn,&x);printf(M%d is H,x);if(xIO)printfCless than 10nn);else if(x100)printf(n10 to 99n);else if(x1000)printf(100 to 999nu

11、);else printf(more than 1000n);return 0;【结果及截图】答:运行程序,分别输入9,21,321,4 3 2 1,截图如下:Please input a number:99 is less than 10Please input a number:2121 is 10 to 99Please input a number:321321 is 100 to 999Please input a number:43214321 is more than 10002.编写程序:根据公式 1 =器+5+*+*,输 出11的值。要求:(1)变量”为单精度类型,n为整型;

12、(2)计算当n的取值分别为2 0,5 0 ,1 0 0,2 0 0 时的“值,说明什么问题?(3)修改程序,不给出n值,而改为求口值,直到最后一项的数值小于 1 0,为止。(4)对修改后的程序,输出口值以及总的项数n。输出格式为:门=值;n=值。#include#incl udemain()(int n,N;float pi,sum=0;printf(HPlease input a number:nN=H);scanf(%d&N);for(n=I;n=N;n+)sum+=1.0/(n*n);pi=sqrt(6*sum);printf(pi=%f,pi);return 0;)修改后的程序:#in

13、clude#includemain()(int n=0;float pi,sum=0;don+;sum+=1.0/(n*n);while(1.0/(n*n)=1 e-4);pi=sqrt(6*sum);printf(pi=%f;n=%d,pi,n);return 0;【结果i及截图】答:计算当N 的取值分别为20,50,100,200时,截图如下:Pl ease in p ut a n um ber:N=20p i=3.0946 70Pl ease in p ut a n un ber:N=50p i=3.1226 27Pl ease in p ut a n um ber:N=100p i=3

14、.132077Pl ease in p ut a n um ber:N=200p i=3.136 827【结果i i及截图】hp i=3.132077;n=1003.从键盘输入一个01000之间的任意整数,输出该整数的所有因子(例如:输入12,其因子为1,2,3,4,6,12)o要求:(1)采用while循环语句实现。(2)输出格式为:Input:12Output:1,2,3,4,6,12#includemain()int num,i=2;printf(Input:;scanf(,&num);printf(Output:ln);/*第 一个因式为 1*/while(i1000)if(num%i

15、=0)printf(,%d,i);i+;return 0;)【结果及截图】答:输入3 0,得其因式为1,2,3,5,6,10,15,30,截图如下:Input:30Output:1,2,3,5,6,10,15,304.编程实现:由用户从键盘输入一串字符(以回车键结束),统计其中数字、大、小写字母、空格、其它字符的个数。要求:(1)通过键盘输入字符。(2)给出相应的输入/输出信息提示。并按照数字、大写字母、小写字母、空格、其它字符数的顺序输出结果。I f语句#include main()(int num;printf(Input:);scanf(%d&num);if(num 1 OO)print

16、f(nThe number is wrong!);else if(num=59)printf(,EH);else if(num=69)printf(,Du);else if(num=79)printf(nCn);else if(num=89)printf(Bn);else printf(,A,);return 0;)Switch语句#include main()(int num,n;printfCInput:);scanf(H%d,&num);n=num/I0;switch(n)(case 0:case 1:case 2:case 3:case 4:case 5:printf(En);brea

17、k;case 6:printf(,D,);break;case 7:printf(C);break;case 8:printf(nBn);break;case 9:case 10:printf(A);break;default:printf(Herror!);return 0;5.计算并输出1000以内最大的10个素数以及它们的和。要求:(1)在程序内部加必要的注释。(2)由于偶数不是素数,可以不考虑对偶数的处理。(3)虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。(4)输出形式为:素数1+素数2+素数+素数10=总和值。#include#include

18、void main()(int num,i,sum=0,count=0;for(num=999;count!=10;num-=2)for(i=2;i=sqrt(num)count+;sum+=num;printf(n%d+,num);)printf(b=%du,sum);)【结果及截图】97+991+983+977+971+96?+961+953+94?+941=9688五.思考题1.对于多分支选择结构何时使用i f 语句的嵌套,何时使用switch语句?2.小 结三种形式的循环使用的区别。南昌大学实验报告学生姓名:学 号:专业班级:实验类型:口 验 证 综 合 设 计 口 创 新 实 验 日

19、期:实验成绩:实验4函 数.实验目的1 .掌 握C函数的定义方法、函数的调用方法、参数说明以及返回值。掌握实参与形参的对应关系以及参数之间的“值传递”的方式;掌握函数的嵌套调用及递归调用的设计方法;2 .掌握全局变量和局部变量、动态变量与静态变量的概念和使用方法;3 .在编程过程中加深理解函数调用的程序设计思想。二.实验内容1 .多模块的程序设计与调试的方法;2 .函数的定义和调用的方法;3 .用递归方法进行程序设计。三.实验环境P C微机D O S操作系统或Wi nd o w s操作系统T u r bo C程序集成环境四.实验步骤1 .编写一个函数pr i m e N u m(i nt nu

20、 m),它的功能是判别一个数是否为素数。如 果nu m是素数,返回该数;否则返回0值。要求:(1)在主函数输入一个 整 数nu m,调用该函数后,输 出nu m是否是素数的信息。输出格式为:nu m i s pr i m e 或 nu m i s no t pr i m e。(2)分别输入以下数据:0,1,2,5,9,1 3,5 9,1 2 1,运行程序并检查结果是否正确。c TCp l ease in p ut o n n n un:00 is n o t p r im e.p l ease in p ut o n n n un:l1 is n o t p r im e.p l ease i

21、n p ut o n n n um:22 is n o t p r in e.p l ease in p ut o n n n un:55 is p r im e.p l ease in p ut o n n n un:99 is p r im e.p l ease in p ut o n n n un:1313 is p r im e.p l ease in p ut o n n n un:5959 is p r im e.p l ease in p ut o n n n um:121121 is p r im e.2.编写函数c o m pu t N u m(i nt nu m),它的功能

22、是计算任意输入的一个正整数的各位数字之和,结果由函数返回(例如:输入数据是1 2 3,返回值为6)。要求:nu m 由主函数输入,调用该函数后,在主函数内输出结果。3.编写函数,m u l N u m(i nt a,i nt b),它的功能是用来确定a和 b 是否是整数倍的关系。如果a是b 的整数倍,则函数返回值为1,否则函数返回值为0。要求:(1)在主函数中输入一对数据a和 b,调用该函数后,输出结果并加以相应的说明。例如:在主函数中输入:1 0,5,则输出:1 0 i s m u l t i pl e o f 5.(2)分别输入下面几组数据进行函数的正确性测试:1 与 5、5 与 5、6与

23、2、6 与 4、2 0 与 4、3 7 与 9 等,并对测试信息加以说明。Fil e Ed it Run Co m p il e Pxo j ect Op tio n s Debug Br eak/viatch“Ed it 一Lin e 1 Co l 1 In ser t In d en t Tab Fil l Un in d en t*D:PXJ3.Cttin cl ud euo id n ain Oin t n ul Num ;in t a,b;p r in tf;scan FU/A;ifm ul Numa,b)p r in tf;in t m ul Nun ifa r etur n 0;

24、el seif r etur n 1;el se r etur n 0;W atchp l ease iin p ut 2 d igits:1,5iisn t m ul tip l e o f 5.p l ease iin p ut 2 d igits:5,55 is m ul tip l e o f 5.p l ease iin p ut 2 d igits:6.26 is m ul tip l e o f 2.p l ease iin p ut 2 di g i t s,4Gisn t m ul tip l e o f 4.p l ease iin p ut 2 d igits:20,42

25、0 is m ul tip l e o f 4.p l ease iin p ut 2 d igits:37,937isn/t m ul tip l e o f 9.4.编写一个计算组合数的函数c o m bi nN u m(i nt m,i nt n)。计算结果由函数返回。计算组合数的公式是:c (m,n)=m!/(n!*(m-n)!)要求:(1)从主函数输入m和 n 的值。对 m n、m n、m n和 m=n的情况各取一组数据进行测试,检查程序的正确性。(3)修改程序,把两个函数分别放在两个程序文件中,作为两个文件进行编译、链接和运行。p l ease in p utp l ease in

26、 p utFl o atin g p o in t er r o r:Ouer fl o w.p l ease in p utc=136 4.999878p l ease in p utthe d ate is ur o n g.修改后:Ed it=Lin e 1 Co l 1 In ser t In d en t Tab Fil l Un in d en t D:PXJ4ttin cl ud euo id n ain O exter n fl o at co n bin Nun;in t m.n;p r in tfn p l ease in p ut m-n:”;scan f ;ifn p

27、r in tf;el se if p r in tf un c=0u,R,n ;el se p r in tfMn c=ZfM,n,n,co n bin Nun;)ttin cl ud efl o at co n bin Nun Cin t in t n f l o at N,a=l,b=l,c=l ;in t i;fo r i=l;i a=a*i;fo r i=l;i b=b*i;fo r i=l;i=;i+c=c*i;z=a/;r etur n z;pl e a s e i npu t,n,D:2 ,Gt h e d a t e i c w i、()ng.pl e a s e i npu

28、tc(5 Q =0pl e a s e i npu t n,n:9,60000005.整 数a,b的最大公约数是指既能被a整除又能被b整除的最大整数。整数a,b的最小公倍数是指既是a的倍数又是b的倍数的最小整数。编写两个函数,一个函数g c d()的功能是求两个整数的最大公约数,另一个函数m u l()的功能是求两个整数的最小公倍数。要求:(1)两个整数在主函数中输入,并在主函数中输出求得的最大公约数和最小公倍数。(2)首先将两个整数a和b作为实参传递给函数g c d (),求出的最大公约数后,由 函 数g c d ()带值返回主函数,然后将最大公约数与两个整数a、b一起作为实参传递给函数m

29、u l。,以此求出最小公倍数,再由函数m u l ()带值返回主函数。(3)修改函数g c d。,函数g c d ()采用递归调用的编写方法,两个整数a和b的最大公约数的递归公式是:如果 b=0,那么 g c d (a,b)=x,否贝U g c d (a,b)=g c d (b,a%b)o 然后将最大公约数与两个整数a、b 一起传递给函数m u l (),求出最小公倍数,再由函数m u l ()将最小公倍数返回主函数。(4)修改程序,采用全局变量的处理方法,将最大公约数和最小公倍数都设为全局变量,分别用函数g c d ()和函数m u l ()求最大公约数和最小公倍数,但其值不是由函数返回,而

30、是通过全局变量在函数之间传递的特性将结果反映在主 函 数 中。return b;int nulreturn;卜 ILfcXl:_please input a abd b:45 69the max common d iu isor is 3.the lowest connon m ultiple is 1035.p lease input a abd b:5 15the max connon d iu isor is 5.the lov/est common m ultiple is 15.修改后:【Jie ta ix run LompiJLe s o j e c t uptions vemi!

31、-Edit 一Line 9 Col 11 Insert Indent Tab F ill Unindent*ttincludeuoid nainO int gcd;int n u K in t,in t,in t ;int a,b,c,z;p rin tf;scanf;c=gcd;p rin tf;z=mul;p rintf;int gcdint c;i c=a;e lse c=gcd;return c;in t nulreturn;一运行结果:p l ease in p ut a abd b:4 24the m ax co m m o n d iuiso r is 4.the l o wes

32、t co m m o n m ul tip l e is 24.p l ease in p ut a abd b:3 8the m ax co m m o n d iviso r is 1.the l o west co m m o n m ul tip l e is 24.修改后:r iLe Ed it m m r i*o j ect up tio n s uem ig eaK/waecii,EditLine 10 Col 12 In sert Indent Tab F ill Unindent*D:PXJ-5.3ttincludein t c=0,z=0;uoid mainO in t g

33、 cd;uoid n u l;in t a,b;p r in tf;scanf ;gcd;mulXa.b;p r in tf;p r in tfin t gcdif c=a;e ls e c=gcd;uo id n uKin t a in t b z=a*b/c;一运行结果:p l ease in p ut a abd b:3 6the n ax co m m o n d iuiso r is 3.the l o west co n n o n m ul tip l e is 6.p l ease in p ut a abd b:8 2the n ax co n n o n d iuiso r

34、 is 2.the l o west co n n o n m ul tip l e is 8.五.思考题1.小 结函数的定义及调用方法;2.小 结函数中形参和实参的结合规则;3.编写和调试包含多模块的程序时,容易出现什么样的错误?根据自己的实践总结一下。小结:通过这次实验,我学会了函数的定义及调用方法,编写包含多模块的程序时,要记得写函数的类型标识符,从被调函数中带回一个函数值一定要用return语句,调用函数之前要写函数声明。要分清局部变量与全局变量,生用慎用全局变量,全局变量不要与局部变量同名,定义的函数和主函数中都要记得定义你所用到的变量的类型。这次实验我发现自己对函数的递归调用不熟悉

35、,以后还要多加练习。南昌大学卖睑报告学生姓名:学 号:专业班级:实验类型:口 验 证 口 综 合 口 设 计 口 创 新 实验日期:实验成绩:实验5数 组一.实验目的1 .掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。2 .掌握字符数组与字符串的使用方法。理解字符数组与其它数组的区别、理解字符串及其特点。掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。3 .掌握与数组相关的算法,包括排序算法和查找算法等。二.实验内容有关数组的程序设计三.实验环境P C 微机D O S 操作系统或W i n

36、d o w s 操作系统T u r b o C程序集成环境四.实验步骤1 .编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。要求:(1)数组为整型数组(1 0 个 元 素)。(2)使 用 s c a n f函数实现数组元素的输入。在输入前给出必要的提示。(3)输出时给出必要的说明,首先输出原始的1 0 个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。(4)如果现改为2 0 个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。如果需要数组元素不断改变,应怎样修改程序?#i n c l u d e v o i d m a i n()int a

37、 10,i,j,k,max,min;printf(请输入 10 个数:n);for(i=0;i10;+i)scanf(%d,&ai);printf(原始数据:);for(i=0;i10;+i)printf(n%d H,ai);printf(nnn);max=a0;/*初始化 max 和 min*/min=a0;for(i=0;i=max)max=ai;if(ai=min)min=ai;/*找最大值和最小值*/)printf(最大值为)for(i=0;i10;+i)/*应对有多个最值的情况*/if(ai=max)printf(第d 个printf(数,%dn,max);printf(最小值为);

38、for(i=0;isy5-l请输入10个数:29K-3至小c4愿B:取c:860123.446:第第02.编程实现:在给定的字符串中查找满足条件的第一个字符。要求:(1)字符串采用初始化的方式处理。(2)通过scanf函数读入一个任意字符。(3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。如果不存在该字符,则要给出相应的信息。#include#include void main()(intj,n;char i;charc=I am a student;/*初始化字符串*/printf(给定字符串为:sn请输入要查找的字符:”,c);scanf(%c,&i);

39、n=strlen(c);/*得到函数给定字符串的长度*/for(j=O;j=n)printf(字符串中不存在满足条件的字符!);a.第am/-4子件.的条足存r件舞15.的在-2WI满-2O一不95符要中茹符要中”,串经又串兀c定需c定胃c汨道子C:Q Q cmd3.编程实现:首先任意输入一个大于2且 小 于10的整数n,再输入一个由n决定的二维整型数组(n x n),形 成n x n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义)。例如:原始数据:n=4结果数据:1 23481114163 5910359108 111416123415 27

40、615276要求:(1)本题中所涉及到的循环都采用fo r语句。(2)在输入/输出时进行必要的说明。(3)对输入的210之间 的 整 数(例 如4)以n=4的格式输出。(4)输入一个n x n矩 阵(假定最大值与最小值不在同一行上),输出原始矩阵数据(按上述矩阵形式)。(5)查找最大值与最小值,将矩阵中最大元素所在的行和最小元素所在的行对调,输出对调后的矩阵数据。(6)修改程序,对最大值与最小值可能出现在一行上的情况做出说明。(7)对n为3,4,5时,输入数组元素是要注意哪些问题?执行程序,检查程序的正确性。#include void main()|int n,j,k,z,x,max,min,

41、a 10 10;printf(请输入一个2到10之间的数:);scanf(%d,&n);printf(请输入一个n*n数组:n);for(j=O;jn;+j)for(k=0;kn;+k)scanf(%d,&ajk);printf(原始数组为:n=%dn,n);for(j=O;jn;+j)for(k=0;kn;+k)printf(%5d,ajk);/*输出原始数组*/printf(n);/*输出n个数后换行,使数组为n*n的格式*/max=a00;/*初始化最大值和最小值*/min=af00;z=0;x=0;for(j=O;jn;+j)for(k=0;kmax)(max=ajk;z=j;/*得到

42、最大值的行数*/for(j=O;jn;+j)for(k=0;kn;+k)if(ajfkmin)(min=ajk;x=j;/*得到最小值的行数*/)for(j=O;jn;+j)k=azfj;azj=axj;axj=k;/*交换最大值所在行和最小值所在行*/printf(结果数据:n);for(j=O;jn;+j)/*输出结果*/for(k=0;kn;+k)printf(%5d,a|jk);printf(n);修改程序得到最大值和最小值所在行,只需在程序末尾加上语句:printf(最大值在第d行,最小值在第d行”,z,x);在输入数组元素时要注意尽量不要重复出现最大值和最小值,程序会以最值中第一个

43、出现的值作为最值。4.编 程 实 现“折半查找”的过程。折半查找的处理过程是:在一个数据已排好序的数组中,首先比较关键字与数组中间的元素,如果两者相等,则查找结束;如果前者比后者小,则要查找的数据必然在数组的前半部,此后只需在数组的前半部中继续折半查找;如果前者的数值比后者大,则要查找的数据必然在数组的后半部,此后只需在数组的后半部继续进行折半查找。要求:(1)设定一个数组存放20个数据,用赋初值的方法在程序中给出(假设这些数据已排序)。(2)用scanf函数输入一个要找的数。(3)对查找的结果给出相应的说明,如果找到该数,则给出该数是数组中第几个元素。如果该数不在数组中,则 输 出“无此数”

44、信息。(4)任意输入一些数据,检查程序的正确性。(5)修改程序,设定输入的数据是无序的,采 用scanf函数的形式输入,首先要对这些无序的数据进行排序,然后再采用“折半查找”。最后通过测试几组差别较大的数据检查程序的正确性。(6)修改程序,改为函数调用的形式。编写一个选择法排序函数,对无序数据进行排序;编写一个查找函数对已排好序的数据进行查找。在主函数中输入数 据(无 序),调用上述函数,输出结果。#include void main()(int a20;int n,j,i,k;printf(给定的数组为:n);for(n=0;n20;+n)an=2*n+3;/*给定数组的初始化*/print

45、f(n%d,an);printf(nnn);printf(请输入要查找的数:”);scanf(n%dH,&j);int m=20;for(n=0;nv=m;)/*折半查找*/i=(n+m)/2;if(aij)m=i-l;else if(ai=j)printf(该数在数组的第d位上,i+l);break;/*输出找到的数,结束循环*/if(nm)printf(无此数)I f 回 3 1s的7人在s的7人数s的7人在C:给3请该C:给3请无C:给3请该,1娄8向粉为裔15数3打19 21 23 25 27 29 31 33 35 37 39411717上735 3333129273 251 29

46、27 11173上15器勺-P:为1蕾Y组11查组95数9曩1-29 31 33 35 3721 23 25 27Y组11查组Y组11查”数9曩95数9要为1找539391414按要求修改后的程序为:#include void arr();/*声明排序函数*/int sea(int j);/*声明折半查找函数*/int a20;/*定义全局变量*/void main()(int n,j,i,h;printf(请输入20个数据:n);for(n=0;n20;+n)(scanf(%d,&an);/*输入无序的20个数据*/)arr();/*调用排序函数*/printf(n请输入要查找的数:);sc

47、anf(%d,&j);h=sea;/*调用折半查找函数*/if(h=O)printf(无此数elseprintf(该数在已排序数组的第d位”,h);)void arr()/*排序函数*/(int z,n;for(int n=0;n20;+n)for(int k=0;kak+l)(z=ak;ak=ak+l;ak+l=z;)printf(将数组排序,得:n);for(n=0;n20;+n)printf(%d,an);/*输出已排序的数组*/int sea(int j)(int n,i,h,m=20;for(n=0;n=m;)i=(n+m)/2;i f(a i j)m=i-l;e l s e i f

48、(a i =j)h=i+l;b r e a k;/*找到该数后停止循环*/)i f (n m)h=0;r e t u r n h;/*返回 h 值*/5.编程实现:三个学生、五门课程的成绩分别存放在4义6矩阵的前3 X 5列,计算出每个学生的平均成绩存放在该数组的最后一列的对应行上。计算单科的成绩总和存放在最后一行的对应列上,并输出单科成绩的平均分。输入/输出格式举例如下:In p u t (输入成绩):2 1 9.0 2 5 6.0 2 0 4.0 2 5 8.0 2 3 2.06 5876 85 67 8839 46 7859 1 7 17 56 98489 Ou t p u t (输出结

49、果):6 5876 8 5 6 7 8 7 0.5839 46 7 85 9 1 84.07 17 56 9 84 89 7 7.50a v e r a g e:73.0 85.3 68.0 86.0 77.3要求:(1)数组类型为实型,输入成绩由scanf函数实现。(2)输出已输入的原始成绩数据(3X5)o(3)计算每个学生的平均成绩以及单科的成绩总和并按要求填入到数组中,输出填入结果后的数组(4X6)o(4)j 计算单科平均成绩后输出。#include void main()(intj,k;float a35,d3=0,b6=0,c5=0;printf(Input(输入成绩):n);for

50、(j=O;j3;+j)for(k=0;k5;+k)scanf(%f,&ajk);for(j=O;j3;+j)for(k=0;k5;+k)dUl=dU+aUlk/5;for(k=0;k5;+k)for(j=0;j3;+j)bk=bk+ajk;for(j=0;j3;+j)b5=b5+dj;for(k=0;k5;+k)ck=bk/3;printf(nOutput(输出结果):);for(j=O;j3;+j)printf(n);for(k=0;k5;+k)printf(%-7.0f,ajk);printf(%-7.1f,dj);printf(n);for(k=0;k6;+k)printf(%-7.1f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁