c语言错误指导,C语言试验指导

《C语言试验指导》由会员分享,可在线阅读,更多相关《C语言试验指导(12页珍藏版)》请在人人文库网上搜索。

1、实验指导实验一 Visual C+6.0 开发环境使用1实验目的(1) 熟悉 Visual C+6.0 集成开发环境。(2) 掌握C语言程序的书写格式和C语言程序的结构。(3) 掌握C语言上机步骤,了解 C程序的运行方法。(4 )能够熟练地掌握 C语言程序的调试方法和步骤2. 实验内容输入如下程序,实现两个数的乘积。#include (stdio.h);Int main()x=10 , y=20 p=prodct(x,t) printf( “ The product is : ” ,p) int prodct(int a ,int b ) int c c=a*b return c( 1)在编辑。

2、状态下照原样键入上述程序。(2) 编译并运行上述程序,记下所给出的出错信息。(3) 再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3分析与讨论(1) 记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败 的原因。(2) 总结C程序的结构和书写规则。实验二 数据类型、运算符和表达式1实验目的(1) 理解常用运行符的功能、优先级和结合性。(2) 熟练掌握算术表达式的求值规则。( 3)熟练使用赋值表达式。( 4)理解自加、自减运算符和逗号运算符(5)掌握关系表达式和逻辑表达式的求值2实验内容( 1 )整数相除#includeint main()int 。

3、a=5,b=7,c=100,d,e,f;d=a/b*c;e=a*c/b;f=c/b*a;printf(d=%d , e=%d ,f=%dn,d,e,f);return 0;(2) 自加、自减运算 #include int main()int a=5,b=8; printf(a+=%dn,a+);printf(a=%dn,a); printf(+b=%dn,+b);printf(b=%dn,b);return 0;(3) 关系运算和逻辑运算 #includeint main()int a=5,b=8,c=8; printf(%d,%d,%d,%dn,a=b&a=c,a!=b&a!=c,a=b&a。

4、=c,a=c,a=b|b=c);printf(%d,%d,%d,%dn,!(a=b),!(a=b),!(a=c),!(aint main()int x=1234;float f=123.456;double m=123.456;char ch=a;char a=Hello,world!;int y=3,z=4;printf(%d %dn,y,z);printf(y=%d , z=%dn,y,z);printf(%8d,%2dn,x,x); printf(%f,%8f,%8.1f,%.2f,%.2en,f,f,f,f,f);printf(%lfn,m);printf(%3cn,ch);print。

5、f(%sn%15sn%10.5sn%2.5sn%.3sn,a,a,a,a,a);return 0;(2)输入下面程序,观察调试信息#includeint main()double x,y;char c1,c2,c3;int a1,a2,a3;scanf(%d%d%d,a1,a2,a3);printf(%d,%d,%dn,a1,a2,a3);scanf(%c%c%c,&c1,&c2,&c3);printf(%c%c%cn,c1,c2,c3);scanf(%f,%lf,&x,&y);printf(%f,%lfn,x,y);return 0;(1) 在 VC+6.0 集成开发环境中输入上述程序,观察。

6、调试结果。(2) 如果有错误,请修改程序中的错误。3分析与讨论(1) 分析程序错误及运行结果错误的原因。(2) 总结 printf() 中可使用的各种格式字符。(3) 总结转移字符的使用和功能。实验四 分支结构程序设计1实验目的(1) 了解条件与程序流程的关系(2) 了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。(3) 掌握 if 语句和 if else 语句的用法( 4)掌握 switch 语句的用法2实验内容 1从键盘上输入三个数,让它们代表三条线段的长度,请写一个判断这三条线段所组成的 三角形属于什么类型(不等边,等腰,等边或不构成三角形)的 C 程序。 请分别设计下列 数据对。

7、自己的程序进行测试:(1)找出各条语句中的错误。(2)找出各分支中的错误。(3)找出各条件中的错误。( 4) 找出各种条件组合中的错误。(5) 找出各条路径中的错误。2. 用seanf函数输入一个百分制成绩(整型量),要求输出成绩等级 A, B, C, D, E。其 中90-100分为A,80-89分为B,70-79分为C, 60-69分为D, 60分以下为 E。具体要求如 下:(1)用 if 语句实现分支或 switeh 分支。(2)在输入百分制成绩前要有提示。(3) 在输入百分制成绩后,要判断该成绩的合理性,对于不合理的成绩(即大于 100 分或小于 0分)应输出出错信息。(4)在输出结果。

8、中应包括百分制成绩与成绩等级,并要有文字说明。(5) 分别输入百分制成绩: -90, 100, 90, 85, 70, 60, 45, 101,运行该程序。3. 编程找出 5 个整数中的最大数和最小数,并输出找到的最大数和最小数。3分析与讨论( 1 )总结分支程序设计的方法。(2)复合语句的使用。(3)switeh 语句的注意事项。实验五 循环结构程序设计1实验目的(1 )掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的 次数。(2)了解条件型循环结构的基本测试方法。(3)掌握如何正确地控制计数型循环结构的次数。(4)了解对计数型循环结构进行测试的基本方法。(5)了解。

9、在嵌套循环结构中,提高程序效率的方法。2实验内容(1 )输入一个正整数,并将其颠倒过来。如12345 对应为 54321 。(2)将一个长整型数 s 的每一位数位上的偶数依次取出来,构成一个新的数 t 中,高位仍 在高位,低位仍在低位,例如: s=87653142 时, t 中的数为: 8642。(3)判断 101200 之间有多少个素数。(4)编写程序,输出杨辉三角。3分析与讨论(1 )总结条件循环结构的一般方法。(2)如何测试计数型循环结构的控制表达式中的错误?(3)从实验中你得到了哪些提高嵌套循环程序效率的启示?实验六 函数1实验目的(1) 掌握C语言函数定义及调用的规则。(2 )理解参。

10、数传递的过程。(3 )掌握函数返回值的大小和类型确定的方法。(4) 理解变量的作用范围2 实验内容(1) 上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。#in cludeint mai n()in t,y;printf( “ %d n”,sum(x+y);int sum(a,b)int a,b;return(a+b);return 0;(2) 编写一个程序,输入系数a、b、c,求一元二次方程ax2 bx c 0的根,包括主函 数和如下函数。判断a是否为零。计算判别式b2 4ac计算根的情况。输出根。(3) 输入下面程序,分析运行结果#in cludeint func (in t 。

11、,i nt );int mai n () int k=4,m=1,p1,p2;p1=fu nc(k,m);p2=fu nc(k,m);prin tf(%d,%dn,p1,p2);return 0;int func (int a,i nt b) static int m=0,i=2;i+=m+1;m=i+a+b;return (m);3 分析与讨论(1 )针对以上实验内容写出相应的参数传递过程并分析结果。2)函数在定义时要注意什么?3)讨论静态局部变量的继承性?实验七 数组及其应用1实验目的(1)掌握数组定义的规则。(2)掌握 C 语言数组的基本用法。(3)掌握数组名作为函数参数传递的方法2实验。

12、内容(1)运行下面的C程序,根据运行结果,可以说明什么?#include int main( ) int num5=1,2,3,4,5;inti i;for(i=0;i int main()int a=5,b=5,*p;p=&a;printf(“%d ,%udn”,a,p);*p=8;printf(“%d ,%udn”,a,p);p=&b;printf( “ %d ,%ud n ” ,a,p);b=10;printf( “ %d ,%ud n” ,a,p); return 0;(2)运行以下程序,观察 &a0 ,&ai) 和 p 的变化,然后回答以下问题 : 程序的功能是什么 ? 在开始进入循。

13、环体之前, p 指向谁 ? 循环每增加一次, p 的值( 地址) 增加多少 ?它指向谁 ? 退出循环后, p 指向谁 ? 你是否初步掌握了通过指针变搔引用数组元素的方法 ?# include int main()int i,*p,s=0,a5=5,6,7,8,9;p=a;for(i=0;iint main( )int i,s1=0, s2=0, s3=0, s4=0,*p,a5=1,2,3,4,5; p=a;for(i=0;istruct stude ntint num;char n ame20;int score;int main()int i;struct stude nt st,stma。

14、x,stm in;stmax.score=0; stm in. score=100;prin tf(n in put data);for(i=0;istmax.score)stmax=st;if(st.scorestruct studentint num;char name20;int score;int main()int i;struct student st,stmax,stmin;FILE *fp;stmax.score=0; stmin.score=100;fp=fopen(file1.dat,r);if(!fp) return 1;for(i=0;istmax.score)stma。

15、x=st;if(st.scorestruct studentint num;char name20;int score;void sort(struct student *,int);int main()int i,n=10;struct student st10;FILE *fp,*fp1,*fp2;fp=fopen(file2.dat,r);if(!fp) return 1;for(i=0;iscorescore) t=*i;*i=*j;*j=t;请分析程序, 上机运行程序, 运行结果在哪里?与上一例相比, 此例中对读取文件的格 式有何不同?( 3)某班的学生 145 人,每人的信息包括:。

16、学号、姓名、性别、和成绩。编制一个 C 程序,完成以下操作 :定义一个结构体类型数组。打开可读写的新文件 student.dat 。 使用函数 fwrite() 将结构体数组内容写入文件 student.dat 中。 关闭文件 student.dat 。 打开可读写文件 student.dat 。 从文件中依次读出各学生情况并按学生成绩进行排序,输出排好序后的数据。 关闭文件 student.dat 。3分析与讨论1)文件有哪些优点?2)文件常用的读写操作函数有什么不同?3)调试有关文件的程序要注意什么?(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值