1、实验一:C语言运行环境的认识与简单的C程序【目的与要求】 1、了解TC环境下C语言的运行环境,熟悉编译系统的操作环境。2、了解在该系统上如何编辑、编译、连接和运行一个C程序。3、通过运行简单的C程序,初步了解C源程序的特点。4、掌握和理解C程序中最基本的C语句。【实验内容】1、题目:由键盘输入两个整数,计算并输出两个数之和。2、程序如下: #include “stdio.h” void main() int a,b,sum;printf(“Please input two integer numbers:n”);scanf(“%d%d”,&a,&b);sum=a+b;printf(“%d+%d
2、=%d”,a,b,sum); 3、具体操作: (1)输入程序,然后进行编译连接。若在编译中有词法或语法错误,则根据提示进行修改,再进行调试,直到没有语法错误。 (2)运行程序,依下列不同的方式输入数据,查看程序执行结果。 12_ 34 12 34 12【实验分析与讨论】 1、总结C程序的基本结构和书写规则。2、分析调试过程中常见的错误提示和解决策略。实验二:C语言程序的单步调试实验三:选择结构的程序设计1、了解三种基本数据类型的定义。2、掌握各种不同运算符及其对应的表达式的使用。3、熟练掌握if语句和switch语句的使用一、判断方程ax2+bx+c=0有几个解,若有,则输出其解。 1、算法分
3、析:对于方程ax2+bx+c=0的解,存在以下情况:a=0,不是一元二次方程;b2-4ac=0,有两个相等的实根;b2-4ac0,有两个不等的实根;b2-4ac0) x1=(-b+sqrt(d)/(2*a) x2=(-b-sqrt(d)/(2*a) else x1=(-b+sqrt(-d)i)/(2*a) x2=(-b-sqrt(-d)i)/(2*a)2、程序代码:#include “stdio.h” #include “math.h”void main() float a,b,c,x1,x2,d; printf(“请输入ax2+bx+c=0方程三系数值:”); scanf(“%f%f%f”,
4、&b,&c); if (abs(a)=1e-6) /a=0 printf(“该方程非一元二次方程.n”); else d=sqr(b)-4*a*c;if (abs(d)1e-6) x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf(“该方程的两个不等实根为:x1=%4.2f,x2=%4.2f”,x1,x2);else / sqr(b)-4*a*c printf(“该方程的两个复数根为:x1=%4.2f+%4.2fi,x2=%4.2f-%4.2fi” ,-b/(2*a),sqrt(-d)/(2*a), -b/(2*a),sqrt(-d)/(2*a);
5、 二、简单的菜单程序设计。假设要求设计一菜单如下: 主 菜 单 1-汉字 2-拼音 3-英文1、算法分析:(1) 根据要求使用输出语句将上述菜单输出,提示按要求选择。(2) 运用if语句或switch语句,编写分支结构。 int i; printf(“nnn=主 菜 单=n”); printf(“ (中 国)”) printf(“ 1-汉字n”); printf(“ 2-拼音n”); printf(“ 3-英文n”); printf(“请选择: scanf(“%d”,&i); switch(i) case 1:printf(“ 中 国n”);break;case 2:printf(“ Chin
6、an”);case 3:printf(“ Zhong guon”);【课后练习】1、判断一年份是不是闰年。2、从键盘上输入1-7之间的数字,输出表示一个星期中对应某一天的英文单词。 1、总结分支选择结构的设计方法与技巧。2、掌握简单菜单的设计。实验四:循环结构的程序设计1、掌握三种循环语句在编程中的使用。2、理解break语句和continue语句在循环结构中的不同作用。3、了解循环的嵌套,学会穷举算法与迭代算法。一、输入两个正整数,求出它们的最大公约数与最小公倍数。 辗转相除法对于两个数m和n,将大数放在m中,小数放在n中,用n去除m,若余数为0,则n为最大公约数,否则将n作为m,余数作为n
7、,再用n去除m,直到余数为0,则n为最大公约数。 int m,n,t,max,min;printf(“请输入两个正整数:m,&n); min=m*n;if (mn) t=n;n=m;m=t;while(n!=0)t=m%n;m=n;n=t;printf(“最大公约数为:%dn”,m);printf(“最小公倍数为:%dn”,min/m);二、将一张100元钱,换成10元,20元,50元零钱,问有多少种不同的换法(假设三种零钱每种都可不出现)。1、算法分析 运用穷举算法实现:考虑到三种零钱各种可以不出现,则各自的张数范围如下: 10元-0张 到 10张 20元-0张 到 5张 50元-0张 到
8、2张 并且要考虑到共数只有一张100元票子。 #include stdio.h int Tencount,Twecount,Fifcount,i=0; for(Tencount=0;Tencount=10;Tencount+) for(Twecount=0;Twecount=5;Twecount+) for(Fifcount=0;Fifcount=2;Fifcount+) if (Tencount*10+Twecount*20+Fifcount*50=100) printf(第%d种换法为:10元 %d张 20元 %d张 50元 %d张n,+i,Tencount,Twecount,Fifcou
9、nt);【课后练习】 *1、求1100之间,能被5整除的数之和。 * * *2、判断任一个数是否是质数。 * * * * *3、输出一有规则的图形,如右图。 *【实验分析与讨论】 1、分析总结for语句,while语句,do-while语句的用法。2、巧用break语句和continue语句。实验五: 数组及其应用1、掌握一维数组与二维数组的使用。2、掌握字符数组与字符串的区别与使用。3、熟练掌握与数组有关的算法(选择排序与冒泡排序、查找与插入)。一、输入一个整数,将其插入一含有9个数的有序序列中,确保插入后其仍然有序,。将待插入的数与序列中的每个数进行比较,找到其插入的具体位置i; 将从第i
10、个数组元素开始,一直到原数组中的最后一个元素,整体往后移,空出一空间来存储待插入的整数。 2、程序代码: int a10=2,5,7,11,14,19,21,33,67,i,k,m; printf(“原数组为: for(i=0;i9;i+) printf(“%4d”,ai); printf(“n请输入待插入的整数:m);i+) if (m=i;k-) ak=ak-1; /移位,准备插入新的整数ai=m; printf(“新数组为:10;二、编程实现:将字符串str2连接到字符串str1 后,构成新的字符串str1。 本程序即实现字符串处理函数strcat()的功能。两字符串str1和str2进
11、行连接,要注意的是字符串的结束标志。string.h char str140,str220,i,j,len1,len2;请输入字符串str1:); gets(str1); len1=strlen(str1);请输入字符串str2: gets(str2); len2=strlen(str2); for(i=len1,j=0;jaj) t=ai;ai=aj;aj=t; int a10,i;i+) scanf(%d,&ai);输入的数值序列为:i+) printf(%4d,ai);n fun(a,10); 二、输入任意两数m,n的值,输出下列表达式的值。 S= 1、算法分析1 编写一函数fac(n)
12、, 返回n!的值。2 编写主函数,从键盘输入m,n的值,调用上述fac()函数,计算表达式的值,并将其输出。 2、程序代码 long fac(int n)if (n=1) return 1; else return n*fac(n-1);int m,n,t; float s;printf(“please input 2 integer numbers:”);if(m=max) max=stui.score; flag=i; sum0+=stui.len1; sum1+=stui.len2; sum2+=stui.len3;3;i+) avei=sumi/3;三门课的平均成绩分别为%6.2f,a
13、vei);n最高分是:%d %s %6.2f %6.2f %6.2fstuflag.number,stuflag.name,stuflag.len1, stuflag.len2, stuflag.len3); 13个人围成一圈,从第1个人开始顺序报号1、2、3。凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。实验九: 链表的处理1、了解键表的相关概念。2、掌握单向键表的创建、编历、插入、删除等简单处理。【内容】创建一个链表。stdlib.htypedef struct list int data;struct list *next;list;list *head,*ptr;int n
14、um,i;ptr=(list *)malloc(sizeof(list); head=ptr;Please input 5 numbers:5;num);ptr-data=num;next=(list *)malloc(sizeof(list);if(i=4) ptr-next=NULL; else ptr=ptr-next;ptr=head;The value is:while(ptr!=NULL)printf(-,ptr-data);ptr=ptr-getchar();实验十:文件及其应用1、了解运用于文件操作的库函数。2、掌握对文件进行简单的处理。有5个学生,每个学生包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,计算每个人的平均成绩,并将原有数据及平均成绩存放于磁盘文件“stud.txt”中。 先将5个学生的相关信息从键盘上输入,并求出各自的平均成绩;再次以写方式打开一个文件“stud.txt”,将5个学生的信息全存入文件中。float len3,ave; student stu5; FILE *fp;int i ;printf(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1