《C语言程序设计》实验指导书答案.doc

上传人:飞****2 文档编号:54312752 上传时间:2022-10-28 格式:DOC 页数:46 大小:171.50KB
返回 下载 相关 举报
《C语言程序设计》实验指导书答案.doc_第1页
第1页 / 共46页
《C语言程序设计》实验指导书答案.doc_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《《C语言程序设计》实验指导书答案.doc》由会员分享,可在线阅读,更多相关《《C语言程序设计》实验指导书答案.doc(46页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、实验一(第1章实验)实验目的:1. 掌握运行C语言程序的全过程。2. 熟悉编译环境Visual C+或者Dev C+或者Turbo C2.0/3.0。3. 初步熟悉C语言程序的语法规定。4. 了解简单函数的使用方法。实验内容:1. 编程且上机运行:求3个整数的和。2. 编程且上机运行:求2个数的和、差、积和商。3. 编程且上机运行:输入3个数,求最大值。4. 编程且上机运行:输入圆的半径,求圆的面积和周长。5. 在屏幕上输出:“hello world!”6输入并编辑本章中给出的C程序例子,在自己用的环境中形成一个C语言源程序文件;对这个源程序进行加工,得到对应的可执行程序,看一看它的效果。实验

2、结果: 1.#include #include main( ) int i,j,k; printf(input i,j,k:);/输入整数数据,以半角逗号间隔,比如:1,2,3 scanf(%d,%d,%d,&i,&j,&k);/不能缺少地址符号“&” printf(%d+%d+%d=%dn,i,j,k,i+j+k); system(Pause); 2.#include #include main( ) int i,j; printf(input i,j(not 0):);/输入整数数据,以半角逗号间隔,j不为0,因为做除数 scanf(%d,%d,%d,&i,&j);/不能缺少地址符号“&”

3、 printf(%d+%d=%dn,i,j,i+j); printf(%d-%d=%dn,i,j,i-j); printf(%d*%d=%dn,i,j,i*j); printf(%d/%d=%dn,i,j,i/j); system(Pause); 3. #include #include main( ) int i,j,k; printf(input i,j,k:);/输入整数数据,以半角逗号间隔 scanf(%d,%d,%d,&i,&j,&k);/不能缺少地址符号“&” if(ij) if(jk) printf(max:%d,i); else if(ik) printf(max:%d,i);

4、 else printf(max:%d,k); else if(jk) printf(max:%d,k); else printf(max:%d,j); system(Pause); 4. #include #include #define pi 3.14main( ) float r; printf(input r:); scanf(%f,&r);/不能缺少地址符号“&” printf(circle area is:%6.2f,pi*r*r); system(Pause); 5. #include #include #define pi 3.14main( ) printf(hello wo

5、rld!); system(Pause); 6.略实验二(第3章实验一)实验目的:理解C语言的类型系统。实验内容:写程序测试数据 2在类型char,int,unsigned int,long int,unsigned long int中存储情况。实验过程:实验结果:参见各种类型的存储实现描述。#include #include #include main( ) char c=-2;/1 int i=-2;/4 unsigned int ui=-2;/4 long int li=-2;/4 unsigned long int uli=-2;/4 printf(%dn,sizeof(char);

6、printf(%dn,sizeof(int); printf(%dn,sizeof(unsigned int); printf(%dn,sizeof(long int); printf(%dn,sizeof(unsigned long int); printf(%c,%d,%u,%ld,%lu,i,i,i,i,i); system(Pause); 实验二(第3章实验二)实验目的:了解混合类型计算中类型的转换规则。实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。注意unsigned int和 int数据运算时类型转换的方向。实验过程:/* 类型转换问题 * 试问下面两个表

7、达式等价吗?*/#include #include int main() unsigned int ui,uj; ui = 1; uj = 2; if (ui uj) printf(n%u %u is true !n, ui, uj); else printf(n%u %u is false !n, ui, uj); if (ui - uj 0) printf(n%u - %u 0 is true !n, ui, uj); else printf(n%u - %u 0 is false !n, ui, uj); system(pause); return 0;实验结果:不等价。结果如下:1 2

8、 is true !1 - 2 0 is false !原因是1-2=-1,-1在unsigned int 中的表示为3123157011111111111111111111111111111111实验二(第3章实验三)实验目的:理解数据溢出现象。实验内容:写程序测试数据溢出,注意分别在16环境和32环境中测试。实验过程:实验结果:参见【例3.3】。实验三(第3章实验四)实验目的:char的符号问题。实验内容:写程序测试你所用的C语言编译器char符号问题的处理方案。实验过程:/* 这个程序验证编译器对 char 的解决方案,是有符号,还是无符号*/#include #include int

9、main() char c = -1; int k; k = c;/* k = ? */ if (k = 255) printf(The char is unsigned char.n); else printf(The char is signed char.n); printf(k = %d, %x, k, k); system(pause); return 0;实验结果:TC2.0和DevC+中char是有符号的实验三(第3章实验五)实验目的:自增和自减运算符。实验内容:写程序测试+、- 运算符。实验过程:main()int i=3;printf(i=%dn,i+);printf(i=%

10、dn,i);printf(i=%dn,+i);printf(i=%dn,i);实验结果:i=3i=4i=5i=5实验三(第3章实验六)实验目的:理解输入输出函数。1掌握输入输出函数的使用方法。2掌握格式字符的使用方法。3掌握不同数制间使用格式字符转换数据的方法。实验内容:用getchar、putchar、printf、scanf函数实现各种数据的输入和输出。实验过程:实验结果:例如:/用getchar、putchar、printf、scanf函数实现各种数据的输入和输出。#include #include main( ) printf(input a char c:); char c=getc

11、har(); putchar(c); int i; printf(ninput a integer:); scanf(%d,&i); printf(i=%dn,i); printf(c=%cn,c); printf(type chars size is %dn,sizeof(char);/1 printf(type ints size is %dn,sizeof(int);/4 system(Pause); 实验四(第4章实验)实验目的:1. 学会使用逻辑运算符和逻辑表达式;2. 熟练掌握if语句和switch语句。实验内容:1. 从键盘输入三个整数a,b,c,输出其中最大的数。2. 求方程a

12、x2+bx+c=0的根,其中a,b,c由键盘输入。有以下几种情况: a=0,不是二次方程; b2-4ac=0,有两个相等的实根; b2-4ac0,有两个不等的实根; b2-4ac10) 写一程序,输入整数X,输出Y的值。4. 给一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A, 80-89分为B,70-79分为C,60-69分为D,60分以下为E。5. 企业发放的奖金根据利润提成。利润(B)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分可提成7.5%;B时,高于20万元的部分按5%提成;B时,高于40万

13、元的部分按3%提成;B时,高于60万元的部分按1.5%提成;B时,高于100万元的部分按1%提成。从键盘输入当月利润B,求应发放奖金总额。6. 从键盘任意输入一个不多于五位的正整数, 求它是几位数; 分别输出每一个数字; 按逆序输出各位数字,例如原数为135,应输出531。实验过程:实验结果:1. 见第三版第五章作业5.42. 见第三版教材108页3. 见第三版第五章作业5.54. 见第三版第五章作业5.65. 见第三版第五章作业5.86. 见第三版第五章作业5.7实验五(第5章实验一)实验目的:1 掌握循环的概念,学习用循环的思想来思考实际问题。2 掌握单循环的使用方法。实验内容:1计算,输

14、出其结果。2使用循环结构输出下列图形。3计算下列公式的和,要求最后一项小于105。提示:通项公式为:。4输入30个字符,分别统计其中数字、字母及字符的个数。5求出Fibonacci(斐波那契)数列的前20项。Fibonacci(斐波那契)数列的规律是:前2项为0和1,其余各项为该项前2项之和,即0,1,1,2,3,5,8,13。 实验过程:实验结果:1. #include #include main() int s=0;/试一下s不赋初值 int i; /循环变量 for (i=1;i=100;i+) s+=i; printf(1+2+.+100=%dn,s); system(Pause);

15、2.#include #include main() int i,j,k; for(i=0;i=9;i+) for(j=0;j=9-i;j+) printf( ); /画空格 for(k=0;k2*i+1;k+) printf(%d,i);/输出2i+1个数字 printf(n); system(Pause); 3.#include #include #include main() int i=0; float sum=0.0,t; int f=1; t=1.0/(i*i+1); while(t=pow(10,-5) sum=sum+f*t; f=-f; /符号 i+; t=1.0/(i*i+

16、1);/项 printf(sum=%9.6fn,sum); system(Pause); 4.#include #include main() int num=0; int alph=0; int ch=0; int i; char c; for(i=1;i=0&c=a&c=A&c=Z) alph+; else ch+; printf(number has %d,alph has %d,char has %d,num,alph,ch); system(Pause); 5.#include #include main() long fib20 = 0,1; int i; for(i=2;i20;

17、i+) fibi = fibi-1+fibi-2; for(i=0;i20;i+) printf(F%d=%dn, i, fibi); system(Pause); 实验五(第5章实验二)实验目的:1进一步学习循环的使用方法,用循环解决复杂问题。2掌握多重循环的使用方法及其他。实验内容:1分别使用双循环和单循环结构计算,并输出其结果。2编制程序,输出如下所示的九九乘法表。3输出下列所示菱形字符图形。4古代数学家在编写算经时,提出了一个不定方程问题,即著名的“百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?5求s=1+(1+2)+(1+2+3)+,并

18、输出其结果。实验过程:实验结果:1.参见第三版第6章作业6.42.#include #include main() int i,j,k; for(i=1;i=9;i+) for(j=1;j=i;j+) printf(%d*%d=%d ,j,i,i*j); printf(n); system(Pause); 3.#include #include main() int i,j,k; for(i=0;i=9;i+) for(j=0;j=8-i;j+) printf( ); for(k=0;k=2*i;k+) printf(*); printf(n); for(i=0;i=9;i+) for (j=

19、0;j=i;j+) printf( ); for(k=0;k=16-2*i;k+) printf(*); printf(n); system(Pause); 4.#include #include main() int i,j,k; for(i=0;i=14;i+=4) j=(100-7*i)/4; k=100-i-j; printf(%d,%d,%dn,i,j,k); system(Pause); 输出结果:0,25,754,18,788,11,8112,4,845.#include #include main() int i,j,t,s=0; for(i=1;i=5;i+) for(t=1

20、;t=i;t+) s=s+t; printf(s=%d,s); system(Pause); 实验六(第6章实验一)实验目的:1掌握数组的定义方法。2掌握一维数组的使用方法。实验内容:1用随机函数产生15个100以内的随机整数存入一维数组,然后分三行输出,每行5个数。2求出n个学生一门课程中的最高成绩和最低成绩及高于平均成绩的人数。3使用数组,求出下列数列的前20项。 1,1,2,4,7,13,4将一个一维数组反序放置。例如: a=(67,89,76,98,66), 反序放置后,a=(66,98,76,89,67)5 有10个学生一门课程成绩,使用选择排序法将成绩从高向低排序。实验过程:实验结

21、果:1. /用随机函数产生15个100以内的随机整数存入一维数组,然后分三行输出,每行5个数。#include #include #include int main(void) int i; time_t t; int a15; srand(unsigned) time(&t); printf(Ten random numbers from 0 to 99nn); for (i=1; i=15; i+) ai=rand()%100; printf(%d,ai); if(i%5=0) printf(n); system(Pause); return 0; 2. 求出n个学生一门课程中的最高成绩和

22、最低成绩及高于平均成绩的人数。#include #include #define n 10 /注意,宏定义define 后不带分号结束符。main() int an = 60,100,70,67,90,99,89,40,77,56; int avg=0,num=0,sum=0,max,min; int i; for(i=0;i10;i+) sum+=ai; avg=sum/n; min=a0; max=a0; for(i=0;i10;i+) if(aimax) max=ai; if(aiavg) num+; printf(average=%dn,avg); printf(max=%d,min=

23、%d,number of more than avg =%dn, max,min,num); system(Pause); 3. /方法1:使用数组,求出下列数列的前20项。1,1,2,4,7,13,#include #include main() long a20 = 1,1; long sum=0; int i; for(i=3;i20;i+) ai = ai-1+ai-2+ai-3; for(i=0;i20;i+) sum+=ai; printf(1+1+2+4+7+13+.+ =%dn, sum); system(Pause); /方法2:使用数组,求出下列数列的前20项。1,1,2,

24、4,7,13,#include #include main() long a20 = 1,1; long sum=2; int i; for(i=3;i20;i+) ai = ai-1+ai-2+ai-3; sum+=ai printf(1+1+2+4+7+13+.+ =%dn, sum); system(Pause); 4.#include #include #define n 6main() int i,temp; int an=0,1,2,3,4,5; for(i=0;i=(n-1)/2;i+) temp=ai; ai=an-1-i; an-1-i=temp; for(i=0;in;i+

25、) printf(%d ,ai); system(Pause); 5. /有10个学生一门课程成绩,使用选择排序法将成绩从高向低排序。#include #include int main() int i,j,k,t,min; int a10=77,99,69,76,87,90,100,88,66,80; for(i=0;i10;+i) /选出最小值所在的位置j min=65535;/可试试此句不在循环内的结果。 for(k=i;k10;k+) if(akmin) min=ak; j=k; if(i!=j)/交换 t=ai;ai=aj;aj=t; for(i=0;i10;i+) printf(%

26、d ,ai); system(Pause); return 0; 实验六(第6章实验二)实验目的:1 掌握二维数组的使用方法。2 数组的综合应用。实验内容:1将一个一维数组a9中各元素值按行的顺序放入二维数组b33。2有一个mn矩阵,各元素值由随机数产生,将矩阵增加一列,求矩阵每一行的元素值的和,并将每一行的元素值的和放入增加列。3有一个mn矩阵,找出最大元素值及其最大元素值所在的行、列位置。4有n个考生,每个考生有考号和一个总分成绩,如果录取m人,确定录取分数线,并输出录取考生的考号和成绩。5将矩阵m(n,n)对角线上的元素置为1,其余元素置为0。实验过程:实验结果:1. /将一个一维数组a

27、9中各元素值按行的顺序放入二维数组b3*3#include #include int main() int i,j; int b33; int a10=77,99,69,76,87,90,100,88,66; for(i=0;i3;+i) for(j=0;j3;j+) bij=a3*i+j; for(i=0;i3;i+) for(j=0;j3;j+) printf(%d ,bij); printf(n); system(Pause); return 0; 2. /有一个mn矩阵,各元素值由随机数产生,将矩阵增加一列,求矩阵每一行的元素值的和,并将每一行的元素值的和放入增加列。#include

28、#include #include #define m 3#define n 4int main() int i,j; int amn; time_t t; srand(unsigned) time(&t); printf(the matrix is:n); for (i=0; im; i+) for(j=0;jn-1;j+) aij=rand()%100; printf(%d,aij); if(j!=0&j%(n-2)=0) ain-1=0; printf(n); printf(after add,the matrix is :n); for(i=0;im;+i) for(j=0;jn-1;

29、j+) ain-1+=aij; for(i=0;im;i+) for(j=0;jn;j+) printf(%d ,aij); printf(n); system(Pause); return 0; 3. /有一个mn矩阵,找出最大元素值及其最大元素值所在的行、列位置。#include #include #include #define m 3#define n 3int main() int i,j,max=-65536; int row,col; int amn=77,99,69,76,87,90,100,88,66; for (i=0; im; i+) max=-65536; for(j=

30、0;jmax) max=aij; row=i;col=j; printf(the max is %d,row=%d,col=%dn,arowcol,row,col); printf(the max is a%d%d=%dn,row,col,arowcol);/另一种输出方式 system(Pause); return 0; 4. /有n个考生,每个考生有考号和一个总分成绩,如果录取m人,确定录取分数线,并输出录取考生的考号和成绩。#include #include #include #define n 4void SelectSort(int an2)/选择排序 int i,j,k,min,t

31、0,t1; for(i=0;in;+i) /选出最小值所在的位置j min=65535;/可试试此句不在循环内的结果。 for(k=i;kn;k+) if(ak1min) min=ak1; j=k; if(i!=j)/交换 t1=ai1;t0=ai0;ai1=aj1;ai0=aj0;aj1=t1;aj0=t0; printf(after selectsort:n); for(i=0;in;i+) printf(%d %dn,ai0,ai1); int main() int i,j,m; int an2=1,99,2,76,3,90,4,88; SelectSort(a);/调用选择排序函数,第

32、八章内容 printf(m=?(mn)n); scanf(%d,&m); printf(enroll:n) ; for (i=n-m; in; i+)/因为是从小到大的排序,所以应录取n-m到n-1这m个人。 printf(no=%d,score=%dn,ai0,ai1); system(Pause); return 0; 5. /将矩阵m(n,n)对角线上的元素置为1,其余元素置为0。#include #include #include #define n 3int main() int i,j; int mnn=1,99,2,76,3,90,4,88,66; for(i=0;in;i+) for(j=0;jn;j+) if(i=j) mij=1; else mij=0; printf(after modify:n); for(i=0;in;i+) for(j=0;jn;j+) printf(%d ,mij); printf(n); system(Pause); return 0; 实验七(第7章实验实验目的:1掌握函数的定义和使用方法。2了解参数传递方式。3掌握简单的递归算法。实验内容: N!1. 用函数过程计算 M!(N-M)!2裴波那契数列的前两项是1、1,以后的每一项都是

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

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

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com