版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计实验指导书实验一:语言的运行环境及运行C程序的方法(2学时)一、实验目的和要求:(1)了解所用的计算机系统的基本操作方法,学会使用该系统。(2)了解在该系统上如何编辑、编译、连接和运行一个C程序。(3)通过运行简单的C程序,初步了解C程序的特点。二、实验内容:(1)检查所用的计算机系统。(2)进入Turbo C的工作环境。(3)熟悉 Turbo C集成环境。(4)输入并运行几个简单的C程序。三、实验步骤、过程:1、 启动操作系统,查找Turbo C集成开发环境的安装位置(路径)。例如:D:TC2,查看目录中是否有tc.exe文件,此程序就是Turbo C集成开发环境的执行程序。请
2、记录您的系统Turbo C2.0的安装位置。2、 创建、进入用户目录。(1) 创建以学号为目录名的用户目录,并记录该目录,比如:您的学号是,那么就创建D:这个目录;(2) 查看目录是否创建好;(3) 进入您的用户目录;注意:以后您的C程序请保存在此目录下!3、 启动、退出Turbo C集成开发环境。(1) 启动Turbo C集成开发环境。比如:Turbo C集成开发环境安装位置(路径)为:D:TC2,则到D:TC2目录下,找到启动文件tc.exe,用鼠标双击tc.exe文件,启动Turbo C集成开发环境。注意:(全屏/窗口)切换快捷键为:(Alt+Enter)(2) 退出Turbo C集成开
3、发环境。File菜单下的Quit 退出Turbo C集成开发环境;(3) 再次启动Turbo C环境。4、 Turbo C环境中,F5/F6;F10,、功能键;Alt+高亮度键的效果和作用。(1) 重复按F6键,仔细观察。当前激活窗口在编辑窗口、消息窗口之间切换。(2) 重复按F5键,仔细观察。当前激活窗口最大,正常状态之间切换。(3) 先按F10,可以看到主菜单被激活,按、,主菜单各个项被依次激活,试着按、可以打开相应菜单。重点浏览File(文件管理)、Run(程序运行控制)、Compile菜单(程序编译、连接)菜单。最后按ESC键光标回到编辑窗口。(4) 主菜单各个项,首字母为红色(高亮度
4、)。可以按Alt+高亮字母,直接激活相应菜单选项。例如按Alt+F激活File菜单,比F10再按光标快捷多了!按ESC键光标回到编辑窗口。(5) 观察当前源程序名NONAME.C表示当前的程序还没有取名字,以后保存程序时,系统会提示输入源程序名。详细开发环境使用方法见附录文件:使用TC开发环境使用说明.pdf5、 按照下面步骤完成第1个程序题(1_1.c)。(1) “File”-“New”创建一个新的源程序文件(2) 输入源程序,全屏幕编辑源程序。(3) “File”-“Save”保存源程序(文件名应按题目要求)。观察编辑窗口源程序名是否已经修改。用Windows资源管理器查看用户目录中是否产
5、生了源程序文件*.c。(4) “Compile”-“Build all”编译、连接源程序。如果有语法错误,修改源程序后再次编译、连接程序,直到没有语法错误,系统提示成功。编译连接成功后用Windows资源管理器查看用户目录中是否产生了目标文件*.obj,可执行文件*.exe,观察其命名规则。(5) “Run”-“Run”运行程序,用Alt-F5切换到用户屏幕查看运行结果。对比结果是否与预期相同。如果发现逻辑错误结果与预期不同,修改源程序,重复(3)-(5)保存、编译、运行程序,直到程序获得正确结果。注意:u 必须顺序完成程序编辑、编译连接、运行的各个过程。没有正确编译成功的程序是不可能运行的!
6、u 程序开发中经常用“File”“Save”保存源程序以免意外导致源程序丢失。6、 按步骤5完成第2个程序题(1_2.c)。注意:Error致命错的程序不能产生目标程序、执行程序,必须修改程序,并重新编译,直到成功。7、 按步骤5完成第3个程序题(1_3.c)。注意:Warning警告错的程序可以产生目标程序、可执行程序。_,还是修改吧,警告错一般也意味着程序有毛病,尽管这种程序可以强行编译连接为可执行程序,但结果一般都有问题。四、源程序清单、测试数据、结果:1、 最简单的C程序。(要求文件名:1_1.c)#include main() printf(“Hello world!n”);2、 一
7、个具有致命语法错的程序,请修改。(要求文件名:1_2.c)#include main() int i=9 printf(“i=%dn”,i)3、 一个具有警告语法错的程序。(要求文件名:1_3.c)#include main()int i=9,j,s; s=i+j;printf(s=%dn,s);五、实验小结和思考1、 您自己的系统上Turbo C安装目录在哪里?Turbo C集成开发环境程序名是什么?答:Turbo C安装目录是:c:tc ;Turbo C集成开发环境程序名为:tc.exe。2、 F5/F6;F10,、功能键;Alt+高亮度键的效果和作用?答:F10,、:F10激活Turbo
8、 C主菜单,光标键选择菜单之间;回车确认。F5:编辑窗口或消息窗口最大/恢复;F6:切换编辑窗口/消息窗口。Alt+高亮度键,直接激活主菜单项。3、 与C语言程序直接相关的几种文件及扩展名分别是什么?答:C语言源程序、目标程序、可执行程序,其后缀分别为*.c,*.obj,*.exe。4、 C语言程序主要的实现过程?答:分为编辑、编译、连接、运行四个阶段。其中,开发环境中,编辑完成后,可以直接启动运行,但分解的阶段仍然是四个,前面阶段未完成,程序仍然不能运行。5、 C语言程序主要的错误?答:程序错误分为:l 语法错误:编译系统可以协助查找出来的语法上的错误。语法错还包括:致命错Error/和警告
9、错Warning。致命错必须修改!,警告错可以不修改,但常常暗示程序存在问题。l 逻辑错误:运行结果与预期不符,与程序算法逻辑相关的错误。实验二:数据类型、运算符和表达式(2学时)一、实验目的和要求:(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。(2)掌握不同的类型数据之间赋值的规律。(3)学会使用C的算术运算符,以及包含这些运算符的表达式,特别是自增()和自减( )运算符的使用。(4)进一步熟悉C程序的编辑、编译、连接和运行的过程。二、实验内容:(1)进一步熟悉 Turbo C集成环境。(2)输入并运行几个C程序,熟悉如何定义一个整型、字符型和实型
10、的变量,以及对它们赋值的方法。(3)输入并运行几个C程序,掌握不同的类型数据之间赋值的规律。(4)输入并运行一个C程序,熟悉自加和自减运算符的使用方法。三、实验步骤、过程:1、 启动Turbo C集成开发环境。(方法与实验1相同)2、 完成或选做以下5个程序题。(编辑、编译连接、运行程序,步骤与实验1相同)注意:经常用“File”“Save”(热键F2)保存源程序以免意外导致源程序丢失。3、 退出Turbo C集成开发环境,关机。四、源程序清单、测试数据、结果。(注释供阅读、理解程序,上机时不必输入)1、 写出一个程序测试整型、字符型数据表示,并输出以验证是否正确。(要求文件名:2_1.c)#
11、include main()int x=010,y=10,z=0x10; /* 整型数据表示 */char c1=M,c2=x4d,c3=115,c4=77,c; /* 字符型数据表示 */ /* 整型数据的输出 */printf(x=%o,y=%d,z=%xn,x,y,z);/* 数据以原进制输出,注意是否有前导0或0x */printf(x=%d,y=%d,z=%dn,x,y,z); /* 数据以10进制输出,换算到10进制,结果对吗? */* 字符型数据的输出 */printf(c1=%c,c2=%x,c3=%o,c4=%dn,c1,c2,c3,c4); /* 数据以原进制输出,注意是否
12、有前导0或0x ?*/printf(c1=%c,c2=%c,c3=%c,c4=%cn,c1,c2,c3,c4); /* 结果都是什么字符?,也就是说字符可以自由的表示成几种形式? */printf(c1=%d,c2=%d,c3=%d,c4=%dn,c1,c2,c3,c4); /* 看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符 */ /* 字符型数据参与算术运算 */c=c1+32; /* 字符怎么参加了数学运算,哦,是字符对应的ASCII码整数/* 参与数学运算;结果还是一个整数另外一个字符的ASCII码 */printf(c=%c,c=%dn,c,c); /* 看看这
13、个字符是什么?哇,M+32=m了,看看ASCII码表,原来如此! */参考结果:x=10,y=10,z=10x=8,y=10,z=16c1=M,c2=4d,c3=115,c4=77c1=M,c2=M,c3=M,c4=Mc1=77,c2=77,c3=77,c4=77c=m,c=1092、 整型数据的溢出错误。(要求文件名:2_2.c)整型(int型)数据的表达范围是-3276832767,如果最大允许值32767+1,最小允许值-32768-1,会出现什么情况?#include main() int a,b; a=32767; b=a+1; printf(a=%d,a+1=%dn,a,b); a
14、=-32768; b=a-1; printf(a=%d,a-1=%dn,a,b); getch(); /获得键盘击键,起到暂停程序运行作用,目的是保留用户屏幕,便于查看结果。参考结果:a=32767,a+1=-32768a=-32768,a-1=327673、 实型数据的舍入误差。(要求文件名:2_3.c)实型变量只能保证7位有效数字,后面的数字无意义#include main()float a,b; a=.789e5; b=a+20; printf(a=%f,b=%fn,a,b); printf(a=%e,b=%en,a,b); 参考结果:a=.,b=.a=1.23457e+10,b=1.2
15、3457e+104、已知:a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮点),计算算术表达式(float)(a+b)/2+(int)x%(int)y的值。试编程上机验证。(要求文件名:2_4.c)提示编程要点:(1)先判断结果值类型,可设置一个此类型的变量用于记录表达式结果,本例用r存放结果;(2)程序先给几个条件变量赋初值,然后将表达式赋值给变量r;(3)最后打印变量r的值就是表达式的值。参考程序:#include main() int a=2,b=3;float x=3.9,y=2.3; float r; r=(float)(a+b)/2+(int)x%(int)y; pri
16、ntf(%fn,r);参考结果:3.思考:为什么是这个结果?5、分析下面程序结果,并上机验证。(要求文件名:2_5.c)#include main() int i,j,m,n; i=8; j=10; m=+i; n=j+; printf(i=%d, j=%d, m=%d, i=%dn,i,j,m,n);参考结果:i=9, j=11, m=9, i=10实验三:简单的程序设计及逻辑结构程序设计(2学时)一、实验目的和要求:(1)掌握C语言中使用最多的一种语句赋值语句的使用方法。(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。(3)了解 C语言表示逻辑量的方法。(4)学会正确使用
17、逻辑运算符和逻辑表达式。(5)熟练掌握if语句和switch语句。二、实验内容:可选做以下题目:(1)掌握各种格式转换符的正确使用方法。(2)编程序,用getchar函数读入两个字符给c1、c2,然后分别用 putchar函数和 printf函数输出这两个字符。(3)编程序:给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8189分为 B,7079分为 C,6069分为 D,60分以下为 E。(4)编程序:输入一个不多于5位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆序打印出各位数字。三、实验步骤、过程:(1)启动Turbo C集成开发环境。(方法与实验1
18、相同)(2)完成或选做上面4个程序题。(编辑、编译连接、运行程序,步骤与实验1相同)注意:经常用“File”“Save”(热键F2)保存源程序以免意外导致源程序丢失。(3)退出Turbo C集成开发环境,关机。四、源程序清单、测试数据、结果。(1)掌握各种格式转换符的正确使用方法。请调试课本第4章习题4.5 、4.6题,并给出结果。参考结果:(习题4.5)main()int a=5,b=7;float x=67.8564,y=-789.124;char c=A;long n=;unsigned u=65535;printf(%d%dn,a,b);printf(%3d%3dn,a,b);prin
19、tf(%f,%fn,x,y);printf(%-10f,%-10fn,x,y);printf(%8.2f,%8.2f,%.4f,%.4f,%3f,%3fn,x,y,x,y,x,y);printf(%e,%10.2en,x,y);printf(%c,%d,%o,%xn,c,c,c,c);printf(%ld,%lo,%xn,n,n,n);printf(%u,%o,%x,%dn,u,u,u,u);printf(%s,%5.3sn,COMPUTER,COMPUTER);参考结果:(习题4.6)main()int a,b;float x,y;char c1,c2;scanf(a=%d b=%d,&a,
20、&b);scanf( %f %e,&x,&y);scanf( %c %c,&c1,&c2);(2)编程序,用getchar函数读入两个字符给c1、c2,然后分别用 putchar函数和 printf函数输出这两个字符。(要求文件名:3_2.c)参考程序:#include main()char c1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);printf(n%c,%c,c1,c2);(3)编程序:给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8189分为 B,7079分为 C,6069分为 D,60分以下为
21、 E。(要求文件名:3_3.c)参考程序:#include stdio.hmain()int score,s;char grade;printf(please input score:);scanf(%d,&score);s=score/10;switch(s) case 10: case 9 : grade=A; break; case 8 : grade=B; break; case 7 : grade=C; break; case 6 : grade=D; break; case 5 : case 4 : case 3 : case 2 : case 1 : case 0 :grade=
22、E; break; printf(score=%d,grade=%cn,score,grade);(4)编程序:输入一个不多于5位的正整数,要求:求出它是几位数,并输出;分别输出每一位数字;按逆序输出各位数字。(要求文件名:3_4.c)参考程序:main()long a,b,c,d,e,num;scanf(%ld,&num);if(num=0&num=99999)a=num/10000;b=num%10000/1000;c=num%10000%1000/100;d=num%10000%1000%100/10;e=num%10000%1000%100%10;if(a!=0)printf(5=%l
23、d,%ld,%ld,%ld,%ld,a,b,c,d,e);else if(b!=0)printf(4=%ld,%ld,%ld,%ld,b,c,d,e);else if(c!=0)printf(3=%ld,%ld,%ld,c,d,e);else if(d!=0)printf(2=%ld,%ld,d,e);else if(e!=0)printf(1=%ld,e);elseprintf(0=0);实验四:循环控制程序设计(2学时)一、实验目的和要求:(1)结合程序掌握一些简单的循环语句的算法。(2)熟悉掌握用while语句,dowhile语句和for语句实现循环的方法。(3)掌握在程序设计中用循环的
24、方法实现一些常用算法。二、实验内容:(可选做以下题目)(1)输入两个正整数m和n,求它们的最大公约数和最小公倍数。(2)从键盘输入一个 int 类型的正整数,输出它的所有因子。如输入6,输出1,2,3;输入20,输出1,2,4,5,10。(3)输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。(4)输出100到1000之间的所有水仙花数。(5)猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。三
25、、实验步骤、过程:(1)启动Turbo C集成开发环境。(方法与实验1相同)(2)完成或选做上面5个程序题。(编辑、编译连接、运行程序,步骤与实验1相同)注意:经常用“File”“Save”(热键F2)保存源程序以免意外导致源程序丢失。(3)退出Turbo C集成开发环境,关机。四、源程序清单、测试数据、结果。(1)输入两个正整数m和n,求它们的最大公约数和最小公倍数。(要求文件名:4_1.c)参考程序:#include main( )int x,y,i,m,max;scanf(%d,%d,&x,&y);if(xy)m=x;elsem=y;for(i=1;i=m;i+) if(x%i=0)&(
26、y%i=0)max=i;printf(%dn,max);printf(%dn,x*y/max);(2)从键盘输入一个 int 类型的正整数,输出它的所有因子。如输入6,输出1,2,3;输入20,输出1,2,4,5,10。(要求文件名:4_2.c)参考程序:#include main()int x,i;scanf(%d,&x);for(i=1;ix;i+)if(x%i=0)printf(%dn,i);(3)输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。(要求文件名:4_3.c)参考程序:#include #include main()char c;int letter=0,
27、digit=0,space=0,other=0;printf(please input string:);while(c=getchar()!=n)if(c=a&c=A&c=0&c=9)digit+;else if(c= )space+;elseother+;printf(%d,%d,%d,%dn,letter,digit,space,other);(4)输出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。(要求文件名:4_4.c)参考程序:#include main()int ge,shi,bai,number; for(number=100;number
28、1000;number+)bai=number/100; shi=(number%100)/10; ge=number%10; if(number=bai*bai*bai+shi*shi*shi+ge*ge*ge) printf(nnumber=%dn,number); (5)猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。编程序求第一天猴子共摘了多少桃子。(要求文件名:4_5.c)参考程序:#include main()int da
29、y,qian,hou=1; for(day=9;day=1;day-) qian=(hou+1)*2;hou=qian; printf(%dn,qian); 实验五:数组(2学时)一、实验目的和要求:(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法。(2)掌握字符数组和字符串的使用方法。(3)掌握与数组有关的算法(特别是排序算法)。二、实验内容:可选做以下题目:(1)用选择法(或冒泡法)对10个整数排序。(2)有一个已排好序的数组,今输入一个数,要求按原来排序的规律将该数插入到数组中。(3)将两个字符串连接起来。(4)编程序找出一个 5 X 4 矩阵的鞍点。鞍点即矩阵中的某个元素符合如
30、下条件:在其所在行最大,同时在其所在列是最小,当然一个矩阵可能也没有鞍点。三、实验步骤、过程:(1)启动Turbo C集成开发环境。(方法与实验1相同)(2)完成或选做上面4个程序题。(编辑、编译连接、运行程序,步骤与实验1相同)注意:经常用“File”“Save”(热键F2)保存源程序以免意外导致源程序丢失。(3)退出Turbo C集成开发环境,关机。四、源程序清单、测试数据、结果。(1)用选择法(或冒泡法)对10个整数排序。(要求文件名:5_1.c)参考程序:(选择法)#include main()int r9=0,49,38,65,07,76,13,27,33; int i,j,k,te
31、mp; for(i=1;i9-1;i+)k=i; for(j=i+1;j9;j+) if(rjrk)k=j; temp=ri;ri=rk;rk=temp; for(i=1;i9;i+)printf(%dt,ri);(2)有一个已排好序的数组,今输入一个数,要求按原来排序的规律将该数插入到数组中。(要求文件名:5_2.c)参考程序:#include main()int a10=1,3,6,9,11,26,55,79,123,num,i,j;scanf(%d,&num);for(i=8;i=0;i-)if(numai)ai+1=ai;elsebreak;ai+1=num;for(i=0;i=9;i
32、+)printf(%4d ,ai);printf(n);(3)编程序,将两个字符串连接起来,不要用strcat函数。(要求文件名:5_3.c)参考程序:#include main()char a1100,a250;int i,j;scanf(%s,a1);scanf(%s,a2);for(i=0;a1i!=0;i+);for(j=0;a2j!=0;j+,i+)a1i=a2j;a1i=0;printf(%sn,a1);(4)编程序找出一个 5 X 4 矩阵的鞍点。鞍点即矩阵中的某个元素符合如下条件:在其所在行最大,同时在其所在列是最小,当然一个矩阵可能也没有鞍点。(要求文件名:5_4.c)参考程
33、序:#include void main() int array44=11,1,23,45,40,56,98,91,23,21,12,40,45,67,23,90; int i,number=0,sign,j,m,n; printf(array is:n); for (i = 0;i =3;i+) for (j = 0; j= 3;j+) printf(%5d,arrayij); printf(n); printf(n); for (i = 0; i = 3; i+) m = i; n = 0; sign = 1; for(j = 0; j = 3;j+) if (arraymn arrayi
34、j) n = j; for(j = 0; j arrayjn) sign = 0; if (sign = 1) printf(an dian is %dn,arraymn); number+; if (number = 0) printf(no an dian!n); 实验六:函数(2学时)一、实验目的和要求:(1)掌握定义函数的方法。(2)掌握函数实参与形参的对应关系以及“值传递”的方式。(3)掌握函数的嵌套调用和递归调用的方法。(4)掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。(5)学习对多文件程序的编译和运行。二、实验内容:可选做以下题目:(1)写一个判别素数的函数,在主函
35、数输入一个整数,输出是否素数的信息。(2)求两个整数的最大公约数和最小公倍数。写一个函数求最大公约数。(3)写一函数,输入一个十六进制数,输出相应的十进制数。(4)用一个函数实现两个字符串的比较,即自己写一个strcmp函数。(5)求 1-300 中所有素数的平均值。要求:请用函数实现判断一个数是否为素数的功能,用另一个函数实现对1-300中的素数进行累加以及求平均值的功能,在主函数中输出该平均值。三、实验步骤、过程:(1)启动Turbo C集成开发环境。(方法与实验1相同)(2)完成或选做上面5个程序题。(编辑、编译连接、运行程序,步骤与实验1相同)注意:经常用“File”“Save”(热键
36、F2)保存源程序以免意外导致源程序丢失。(3)退出Turbo C集成开发环境,关机。四、源程序清单、测试数据、结果。(1)写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。(要求文件名:6_1.c)参考程序:#include int prime(int number);main()int number;printf(please input a num:n);scanf(%d,&number);if (prime(number)printf(%d is prime!,number);elseprintf(%d is not !,number);int prime(int numb
37、er) /*此函数用于判别素数*/int flag=1,n;for(n=2;nnumber/2&flag=1;n+)if (number%n=0)flag=0;return(flag);(2)求两个整数的最大公约数和最小公倍数。写一个函数求最大公约数。(要求文件名:6_2.c)参考程序:#include int max_ys(int x,int y);main( )int x,y,i,max;scanf(%d,%d,&x,&y);max=max_ys(x,y);printf(%dn,max);printf(%dn,x*y/max);int max_ys(int x,int y)int i,m,
38、max;if(xy)m=x;elsem=y;for(i=1;i=0;i-)if(shui=48&shui=65&shui=97&shui=102)sum=sum+(shui-87)*pow(16,k-i);elseprintf(error!n);break;return sum;main()char str100;long s;gets(str);s=change(str);if(!s)printf(The number is not oxn);elseprintf(change:%ldn,s);(4)编程序,给出年、月、日,计算该日是该年的第几天。(要求文件名:6_4.c)参考程序:#inc
39、lude #include #include date(int year,int month,int day);void main()int year=0,month=0,day=0,sum;printf(please input the year:n); scanf(%d,&year);printf(please input the month:n); scanf(%d,&month);if(month12)printf(Input error!nPlease reinput the month:n);scanf(%d,&month);printf(please input the day:
40、n); scanf(%d,&day);if(day31)printf(Input error!nPlease reinput the day:n);scanf(%d,&day);sum=date(year,month,day);printf(The sum days is :%dn,sum);date(int year,int month,int day)int leap=0;int mon13=0,31,28,31,30,31,30,31,31,30,31,30,31;int mon_leap13=0,31,29,31,30,31,30,31,31,30,31,30,31;int sum=0
41、,i=0;if(year%4=0)if(year%100=0)if(year%400=0)leap=1;else leap=0;else leap=1;else leap=0;if(leap) for(i=0;imonth;i+)sum=sum+mon_leapi;else for(i=0;imonth;i+)sum=sum+moni;sum=sum+day;return(sum);(5)求 1-300 中所有素数的平均值。要求:请用函数实现判断一个数是否为素数的功能,用另一个函数实现对1-300中的素数进行累加以及求平均值的功能,在主函数中输出该平均值。(要求文件名:6_5.c)参考程序:i
42、nt prime(int number);float add_prime(int i,int j);#include main()int i=1,j=300;float ave;ave=add_prime(i,j);printf(=%.2fn,ave);float add_prime(int i,int j) /*此函数用于求i到j之间的素数进行累加后求平均值*/int x,num=0;float sum=0;for(x=i;x=j;x+)if (prime(x)sum=sum+x;num+;sum=sum/num;return(sum);int prime(int number) /*此函数
43、用于判别素数*/int flag=1,n;for(n=2;n=number/2&flag=1;n+)if (number%n=0)flag=0;return(flag);实验七:指针(4学时)实验目的和要求:(1)通过实验进一步掌握指针的概念,会定义和使用指针变量。(2)能正确使用数组的指针和指向数组的指针变量。(3)能正确使用字符串的指针和指向字符串的指针变量。(4)能正确使用指向函数的指针变量。(5)了解指向指针的指针的概念及其使用方法。实验内容:可选做以下题目,都要求用指针处理:(1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。(2)将一个3*
44、3的矩阵转置。(3)有n个人围成一圈,顺序排号。从第三个人开始报数(从l到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。(4)用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。n和各整数在主函数中输入,最后在主函数中输出。 (5)利用函数和指针将给定字母字符串的第一个字母变成大写字母,其它字母变成小写字母。函数原型为:char * strcapf(char *s);在main函数中接收字符串的输入,改变后的字符串的输出也在main函数中实现。三、实验步骤、过程:(1)启动Turbo C集成开发环境。(方法与实验1相同)(2)完成或选做上面5个程序题。(编
45、辑、编译连接、运行程序,步骤与实验1相同)注意:经常用“File”“Save”(热键F2)保存源程序以免意外导致源程序丢失。(3)退出Turbo C集成开发环境,关机。四、源程序清单、测试数据、结果。(1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。参考程序:(输入三个整数,按由小到大的顺序输出)(要求文件名:7_0.c)#include swap(int *p1,int *p2);main()int n1,n2,n3,*p1,*p2,*p3;scanf(%d,%d,%d,&n1,&n2,&n3);p1=&n1;p2=&n2;p3=&n3;if(n1
46、n2) swap(p1,p2);if(n1n3) swap(p1,p3);if(n2n3) swap(p2,p3);printf(the order is:%d,%d,%d,n1,n2,n3);swap(int *p1,int *p2)int temp;temp=*p1;*p1=*p2;*p2=temp;参考程序:(输入三个字符串,按由小到大顺序输出)(要求文件名:7_1.c)#include #include swap(char *p1,char *p2);main()char *s1,*s2,*s3;scanf(%s,s1);scanf(%s,s2);scanf(%s,s3);if(str
47、cmp(s1,s2)0) swap(s1,s2);if(strcmp(s1,s3)0) swap(s1,s3);if(strcmp(s2,s3)0) swap(s2,s3);printf(the order is:%s,%s,%s,s1,s2,s3);swap(char *p1,char *p2)char temp20;strcpy(temp,p1);strcpy(p1,p2);strcpy(p2,temp);(2)将一个3*3的矩阵转置。(要求文件名:7_2.c)参考程序:#include main()int a33=1,2,3,4,5,6,7,8,9;int *p,i;p=&a00;move(p);for(i=0;i3;i+)printf(%d %d %dn,ai0,ai1,ai2);move(int *pointer)int i,j,t;for(i=0;i3;i+)for(j=i;j3;j+)t=*(pointer+3*i+j);*(pointer+3*i+j)=*(pointer+3*j+i);*(pointer+3*j+i)=t;(3)有n个人围成一圈,顺序排号。从第三个人开始报数(从l到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。(要求文件名:7_3.c)参考程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年深圳烟草工业有限责任公司招聘(35人)考试参考试题及答案解析
- 输血安全管理与感染控制制度
- 肺癌患者的中医护理
- 胃穿孔术后呼吸功能锻炼方法
- 2026年天津市和平区汇文中学初三年级第三次联考物理试题含解析
- 脊髓损伤患者的转移与移动训练
- 南京市建邺区2026届初三5月测试(一卷)数学试题试卷含解析
- 江苏省无锡市崇安区重点名校2026年初三下学期第五次月考(期末)数学试题含解析
- 湖北省黄石市阳新县2026届初三下学期线上中考模拟训练数学试题试卷含附加题含解析
- 2026年咸阳市重点中学初三下学期4月诊断考试物理试题含解析
- 水稻幼穗发育
- 皮肤科常见疾病康复
- GB/T 4925-2008渔网合成纤维网片强力与断裂伸长率试验方法
- GB/T 39363-2020金银花空气源热泵干燥通用技术要求
- 复工复产安全检查表
- 第三章表面活性剂的功能与应用
- 心理学主要理论流派课件讲义
- 延1024井马五层酸化压裂设计
- 采矿学I第四章-矿石的损失和贫化课件
- 部编版六年级下册道德与法治全册优秀课件
- 中国经典广告案例评析之公益广告课件
评论
0/150
提交评论