




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验指导1.实验目的实验一 Visual C+6.0开发环境使用1.实验目的熟悉Visual C+6.0集成开发环境。掌握C语言程序的书写格式和C语言程序的结构。 掌握C语言上机步骤,了解 C程序的运行方法。 能够熟练地掌握 C语言程序的调试方法和步骤2.实验内容输入如下程序,实现两个数的乘积。#i nclude (stdio.h);int mai n()x=10 , y=20p=p rodct(x,t)prin tf(The p roduct is :, p) int p rodct(i nt a ,int b ) int cc=a*b(1 )(2)(3)return c在编辑状态下照原样键
2、入上述程序。编译并运行上述程序,记下所给出的出错信息。再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3 .分析与讨论(1) 记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败 的原因。(2 )总结C程序的结构和书写规则。实验二数据类型、运算符和表达式1.实验目的理解常用运行符的功能、优先级和结合性。 熟练掌握算术表达式的求值规则。熟练使用赋值表达式。理解自加、自减运算符和逗号运算符掌握关系表达式和逻辑表达式的求值(1 )整数相除#in cludeint mai n()int a=5,b=7,c=100,d,e,f;d=a/b*c;e=a*c/b
3、;f=c/b*a;prin tf(d=%d , e=%d ,f=%dn,d,e,f); return 0;(2 )自加、自减运算#in clude int mai n()int a=5,b=8;prin tf(a+=%dn ,a+); prin tf(a=%drTa);prin tf(+b=%dn ,+b); prin tf(b=%drTb);return 0;(3)关系运算和逻辑运算#in cludeint mai n()int a=5,b=8,c=8;prin tf(%d,%d,%d,%dn,a=b&a=c,a!=b&a!=c,a=b&a=c,a=b& a=c);prin tf(%d,%d
4、n,a=c,a=b|b=c);prin tf(%d,%d,%d,%dn,!(a=b),!(a=b),!(a=c),!(a=b);return 0;(1 )在编辑状态下输入上述程序。(2 )编译并运行上述程序。3 .分析与讨论(1)(2)(3)(4)整数相除有什么危险?应如何避免这种危险?分析a+和+a的区别。条件表达式和逻辑表达式的意义是什么,它们取值如何? 如何比较两个浮点数相等?为什么?实验三 格式化输入输出函数的使用(1 )掌握格式字符使用的方法。(2) 掌握printfO进行格式化输出的方法。(3) 掌握scanf()进行格式化输入的方法。2 .实验内容(1 )输入如下程序,观察运行结
5、果#in cludeint mai n()int x=1234;float f=123.456;double m=123.456;char ch=a;char a=Hello,world!;int y=3,z=4;prin tf(%d %dn, y,z);prin tf(y=%d , z=%dn,y,z);prin tf(%8d,%2dn,x,x);prin tf(%f,%8f,%8.1f,%.2f,%.2en,f,f,f,f,f);prin tf(%lfn,m);prin tf(%3cn,ch);prin tf(%sn%15sn%10.5sn%2.5sn%.3sn,a,a,a,a,a); r
6、eturn 0;(2 )输入下面程序,观察调试信息#in clude int mai n()double x,y;char c1,c2,c3;int a1,a2,a3;scan f(%d%d%d,a1,a2,a3); prin tf(%d,%d,%dn ,a1,a2,a3);scan f(%c%c%c,&c1,&c2,&c3);prin tf(%c%c%cn,c1,c2,c3); scan f(%f,%lf, &x, &y);prin tf(%f,%lfn,x,y);return 0;(1 )在VC+6.0集成开发环境中输入上述程序,观察调试结果。(2 )如果有错误,请修改程序中的错误。3 .
7、分析与讨论(1) 分析程序错误及运行结果错误的原因。(2 )总结printfO中可使用的各种格式字符。(3 )总结转移字符的使用和功能。实验四分支结构程序设计1.实验目的了解条件与程序流程的关系了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。 掌握if语句和if else 语句的用法掌握switch语句的用法1 .从键盘上输入三个数,让它们代表三条线段的长度,请写一个判断这三条线段所组成的 三角形属于什么类型(不等边,等腰,等边或不构成三角形)的C程序。请分别设计下列数据对自己的程序进行测试:(1 )(2)(3)(4)(5)2 .实验内容找出各条语句中的错误。找出各分支中的错误。找出各
8、条件中的错误。找出各种条件组合中的错误。找出各条路径中的错误。A, B, C, D, E。60分以下为E。具(即大于100101,运行该程序。2. 用scanf函数输入一个百分制成绩(整型量),要求输出成绩等级 其中90-100 分为A, 80-89 分为B, 70-79 分为C, 60-69 分为D, 体要求如下:(1 )用if语句实现分支或switch 分支。(2) 在输入百分制成绩前要有提示。(3) 在输入百分制成绩后,要判断该成绩的合理性,对于不合理的成绩 分或小于0分)应输出出错信息。(4 )在输出结果中应包括百分制成绩与成绩等级,并要有文字说明。(5 )分别输入百分制成绩:-90
9、, 100 , 90 , 85 , 70 , 60 , 45,3. 编程找出5个整数中的最大数和最小数,并输出找到的最大数和最小数。3 .分析与讨论(1 )总结分支程序设计的方法。(2 )复合语句的使用。(3) switch 语句的注意事项。1.实验目的(1) 次数。(2)(3)(4)(5)实验五循环结构程序设计掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的 了解条件型循环结构的基本测试方法。 掌握如何正确地控制计数型循环结构的次数。 了解对计数型循环结构进行测试的基本方法。 了解在嵌套循环结构中,提高程序效率的方法。2 .实验内容(1 )输入一个正整数,并将其颠倒
10、过来。如12345对应为54321。(2 )将一个长整型数s的每一位数位上的偶数依次取出来,构成一个新的数 在高位,低位仍在低位,例如:s=87653142 时,t中的数为:8642。(3)判断101200之间有多少个素数。(4 )编写程序,输出杨辉三角。3 .分析与讨论(1)(2)(3)t中,高位仍总结条件循环结构的一般方法。如何测试计数型循环结构的控制表达式中的错误? 从实验中你得到了哪些提高嵌套循环程序效率的启示?实验六函数1.实验目的(1)(2)(3)(4)掌握C语言函数定义及调用的规则。理解参数传递的过程。掌握函数返回值的大小和类型确定的方法。 理解变量的作用范围2 .实验内容(1
11、)上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。#in cludeint mai n()int x,y;prin tf(%dn ”,sum(x+y);int sum(a,b)int a,b;return(a+b);return 0;编写一个程序,输入系数a、b、c,求一元二次方程ax2 bx c 0的根,包括主函数和如下函数。判断a是否为零。计算判别式b2 4ac计算根。输出根。(3)输入下面程序,分析运行结果#in cludeint func (in t ,i nt );int mai n () int k=4,m=1, p1, p2;p 1=fu nc(k,m);P 2=fu
12、 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 .实验内容(1 )运行下面的C程序,根据运行结果,可以说明什么?#in elude intmai n
13、()int nu m5=1,2,3,4,5; inti i;for(i=0;i=5;i+)prin tf(%d ”,nu mi); return 0;为一个冒泡排序程序设计测试用例,并测试之。操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。现在要你设计个程序,返回一个 3 X 5的二维数组各元素的地址,并由此说明二维数组中各元素是按什 么顺序存储的。3 .分析与讨论(1 )通过实验,分析定义与引用数组的区别。(2 )数组的作用是什么?(3 )数组名作为参数有什么特点?实验八指针及其应用1.实验目的(1) 掌握变量的指针及其基本用法。(2 )掌握一维数组的指针及其基本用法。(3)
14、掌握指针变量作为函数的参数时,参数的传递过程及其用法。2 .实验内容(1) 对以下程序进行运行,并从中了解变量的指针和指针变量的概念。# in elude mai n()intint a=5,b=5,* p;p=&a;prin tf(%d ,%udn,a, p); *p=8;prin tf(%d ,%udn,a, p); p=&b;prin tf(%d ,%udn,a, p); b=10;prin tf(%d ,%udn,a, p); return 0;序的功能是什么?在开始进入循环体之前,P指向谁?循环每增加一次,P的值(地址)增加多少?它指向谁? 退出循环后,P指向谁?你是否初步掌握了通过
15、指针变搔引用数组元素的方法?(2) 运行以下程序,观察 &a0,&ai) 和p的变化,然后回答以下问题1)2)3)4)5)# in elude int mai n()int i,* p, s=0,a5=5,6,7,8,9;p=a;for(i=0;i5;i+, p+)s+=* p;prin tf(s=%dn ”,s);return 0;(3) 先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用 数组元素的各种方法。#in elude int main()int i,s1=0, s2=0, s3=0, s4=0,* p,a5=1,2,3,4,5;P=a;for(i=0;i5;i
16、+)s1+=p i;for(i=0;i5;i+)s2+=*( p+i);for(p=a;p a+5 ;p+)s3+=* p;p=a;for(i=0;i5;i+)s4+=*P+;prin tf(n s1=%d, s2=%d, s3=%d, s4=%d,s1,s2,s3,s4);return 0;,然后编写主(4) 编写函数,将 n个数按原来的顺序的逆序排列(要求用指针实现) 函数完成:1) 输入10个数;2) 调用此函数进行重排;3) 输出重排后的结果。3 .分析与讨论(1 )指针的定义方法,指针和变量的关系。(2 )数组和指针的关系。实验九结构体及其应用1.实验目的(1 )掌握结构体类型变量与
17、结构体数组的定义和使用。(2) 学会使用结构体指针变量和结构体指针数组。(3 )掌握链表的概念,初步学会对链表进行操作。2 .实验内容(1) 输入出10个学生的学号、姓名和成绩,求出其中的高分者和低分者。#in elude struct stude ntint num;char n ame20;int score;int main()int i;struct stude nt st,stmax,stm in;stmax.score=0; stm in. score=100; prin tf(n input data);for(i=0;istmax.score)stmax=st;if(st.sc
18、orestm in. score)stmi n=st;hight:%5d%15s%5d,stmax .nu m,stmax .n ame,stmax.score);prin tf(nprin tf(n low:%5d%15s%5d,stm in.nu m,stm in.n ame,stm in. score); return 0;1)分析程序,上机运行程序。2)程序中,哪些是对结构体变量的成员引用,哪些是整体引用?3)对于此例来说,用结构体变量作为数据结构有何优越性?(2)有一学生情况如下表所示。编制一个C程序,用冒泡法对该学生情况表按成绩(grade )从低到高进行排序。学号姓名性别年龄成绩
19、101ZhangM1995.6102wangF1892.2103zhaoM1985.7104liM2096.3105GaoM1990.2106LinM1891.2107MaF1898.7108ZhenM2188.7109XuM1990.1110MaoF2294.7具体要求如下:1)结构体类型为struct stude ntint num;char n ame8;char sex;int age;double grade;2)在程序中用一个结构体指针数组,其中每一个指针元素指向结构体类型的各元素。3)在程序中,首先输出排序前的学生情况,然后输出排序后的结果,其格式如上表所示。(3)链表基本操作,
20、具体要求如下:1)初始时链表为空,即链表的头指针为空。)从链头开始,依次输出链表中的各结点值(即每个学2) 对于上表所示的学生情况表,依次将每个学生的情况作为一个结点插入到单链表的链 头(即当前插入的结点将成为第一个结点3) 所有学生情况都插入到链表中后,生的情况)。输出格式如同上表。3 .分析与讨论(1)结构体的作用,如何进行初始化?(2 )如何访问结构体中的成员。(3) 链表有什么优点?实验十文件1.实验目的(1 )掌握文件与文件指针的概念。(2) 学会使用文件打开、文件关闭、读与写文件等基本的文件操作函数。(3) 运用文件操作函数进行程序设计。2 .实验内容(1 )以文本方式建立初始数据
21、文件,请输入10个学生的学号、姓名及考试成绩,形式如下:1001LiLi 801002HuWei 901003LiMi ng 75读入file1.dat中的数据,找出最高分和最低度分的学生。#i nclude struct stude ntint num;char n ame20;int score;int mai n()int i;struct stude nt st,stmax,stmi n;FILE *fp;stmax.score=0; stm in. score=100;fp=fo pen( file1.dat,r);if(!fp) return 1;for(i=0;istmax.sc
22、ore)stmax=st;if(st.scorestm in. score)stmi n=st;fclose(fp);printf(”hight:%5d%15s%5d,stmax .nu m,stmax .n ame,stmax.score);prin tf(nlow:%5d%15s%5d,stmi n.nu m,stmi n.n ame,stmi n.score);return 0;1) 分析程序,上机运行程序并分析运行结果。2) 如果事先不知道学生个数,则程序应该如何修改?请将以上程序中的循环语句for(i=0;i10;i+)改为(while(!feof(fp)再运行程序,看结果是否正确?(2) 读入file2.dat中的数据,然后按成绩从高到低度的顺序进行排序,并将排序中。结果分别以文本方式存入到文件file3.dat 中,以二进制形式存入文件file4.dat#in clude struct stude ntint num;char n ame20;int score;void sort(struct stude nt *,i nt);int mai n()int i,n=10;struct stude nt st10;FILE *fp,*fp1,*fp2;fp=fo pen (file2.dat,r);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国种植机械行业市场深度调研及前景趋势与投资研究报告
- 2025-2030年中国石油和天然气中的人工智能行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国睫毛增强剂行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国眼球跟踪系统行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国盥洗台顶部行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国瘦脸仪行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国电阻焊(ERW)管道行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国电热饭盒行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国生猪养殖屠宰行业市场深度发展趋势与前景展望战略研究报告
- 2025-2030年中国瓷砖切割机行业市场发展分析及发展前景与投融资研究报告
- 2022年消毒技术规范
- 数据标注与审核行业营销策略方案
- 中国电信股份有限公司广东公司4G四期规划基站(广州、清远、韶关分册)项目环境影响报告表
- 健康照明技术研究
- 年产3.0万吨二甲醚装置分离精馏工段的设计
- 验房项目详细表格
- 小学二年级下册第19课-大象的耳朵教案(部编版)
- 过敏性休克应急预案ppt
- 爱情公寓第二季1至5集剧本
- 康复医学质控标准
- 《石壕吏》优质课一等奖课件
评论
0/150
提交评论