欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言试验指导12页word.doc

    • 资源ID:33866096       资源大小:165KB        全文页数:12页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言试验指导12页word.doc

    如有侵权,请联系网站删除,仅供学习与交流C语言试验指导【精品文档】第 12 页实验指导实验一 Visual C+6.0开发环境使用1实验目的(1)熟悉Visual C+6.0集成开发环境。(2)掌握C语言程序的书写格式和语言程序的结构。(3)掌握C语言上机步骤,了解C程序的运行方法。(4)能够熟练地掌握C语言程序的调试方法和步骤2. 实验内容输入如下程序,实现两个数的乘积。#include (stdio.h);Int main()x=10,y=20p=prodct(x,t)printf(“The product is :”,p)int prodct(int a ,int b )int c c=a*breturn c(1)在编辑状态下照原样键入上述程序。(2)编译并运行上述程序,记下所给出的出错信息。(3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3分析与讨论(1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。(2)总结程序的结构和书写规则。 实验二 数据类型、运算符和表达式1实验目的(1)理解常用运行符的功能、优先级和结合性。(2)熟练掌握算术表达式的求值规则。(3)熟练使用赋值表达式。(4)理解自加、自减运算符和逗号运算符(5)掌握关系表达式和逻辑表达式的求值2实验内容(1)整数相除#include<stdio.h>int main()int 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<stdio.h>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)关系运算和逻辑运算#include<stdio.h>int main()int a=5,b=8,c=8;printf("%d,%d,%d,%dn",a=b&&a=c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a<=c);printf("%d,%dn",a<=b|a>=c,a=b|b=c);printf("%d,%d,%d,%dn",!(a=b),!(a>=b),!(a>=c),!(a<=b);return 0;(1)在编辑状态下输入上述程序。(2)编译并运行上述程序。3分析与讨论(1)整数相除有什么危险?应如何避免这种危险?(2)分析a+和+a的区别。(3)条件表达式和逻辑表达式的意义是什么,它们取值如何?(4)如何比较两个浮点数相等?为什么?实验三 格式化输入输出函数的使用1实验目的(1)掌握格式字符使用的方法。(2)掌握printf()进行格式化输出的方法。(3)掌握scanf()进行格式化输入的方法。2实验内容(1)输入如下程序,观察运行结果#include<stdio.h>int 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); printf("%sn%15sn%10.5sn%2.5sn%.3sn",a,a,a,a,a);return 0;(2)输入下面程序,观察调试信息#include<stdio.h>int 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集成开发环境中输入上述程序,观察调试结果。(2)如果有错误,请修改程序中的错误。3分析与讨论(1)分析程序错误及运行结果错误的原因。(2)总结printf()中可使用的各种格式字符。(3)总结转移字符的使用和功能。实验四 分支结构程序设计1实验目的(1)了解条件与程序流程的关系(2)了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。(3)掌握if语句和if else语句的用法(4)掌握switch语句的用法2实验内容1从键盘上输入三个数,让它们代表三条线段的长度,请写一个判断这三条线段所组成的三角形属于什么类型(不等边,等腰,等边或不构成三角形)的C程序。 请分别设计下列数据对自己的程序进行测试:(1)找出各条语句中的错误。(2)找出各分支中的错误。(3) 找出各条件中的错误。(4) 找出各种条件组合中的错误。(5) 找出各条路径中的错误。2.用scanf函数输入一个百分制成绩(整型量),要求输出成绩等级A,B,C,D,E。其中90-100分为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。具体要求如下:(1)用if语句实现分支或switch分支。(2)在输入百分制成绩前要有提示。(3)在输入百分制成绩后,要判断该成绩的合理性,对于不合理的成绩(即大于100分或小于0分)应输出出错信息。(4)在输出结果中应包括百分制成绩与成绩等级,并要有文字说明。(5)分别输入百分制成绩:-90,100,90,85,70,60,45,101,运行该程序。3.编程找出5个整数中的最大数和最小数,并输出找到的最大数和最小数。3分析与讨论(1)总结分支程序设计的方法。(2)复合语句的使用。(3)switch语句的注意事项。实验五 循环结构程序设计1实验目的(1)掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。(2)了解条件型循环结构的基本测试方法。(3)掌握如何正确地控制计数型循环结构的次数。(4)了解对计数型循环结构进行测试的基本方法。(5)了解在嵌套循环结构中,提高程序效率的方法。2实验内容(1)输入一个正整数,并将其颠倒过来。如12345对应为54321。(2)将一个长整型数s的每一位数位上的偶数依次取出来,构成一个新的数t中,高位仍在高位,低位仍在低位,例如:s=87653142时,t中的数为:8642。(3)判断101200之间有多少个素数。(4)编写程序,输出杨辉三角。3分析与讨论(1)总结条件循环结构的一般方法。(2)如何测试计数型循环结构的控制表达式中的错误?(3)从实验中你得到了哪些提高嵌套循环程序效率的启示?实验六 函数1实验目的(1)掌握C语言函数定义及调用的规则。(2)理解参数传递的过程。(3)掌握函数返回值的大小和类型确定的方法。(4)理解变量的作用范围2实验内容(1)上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。#include<stdio.h>int main()int,y;printf(“%dn”,sum(x+y);int sum(a,b)int a,b;return(a+b);return 0;(2)编写一个程序,输入系数a、b、c,求一元二次方程的根,包括主函数和如下函数。j判断a是否为零。k计算判别式l计算根的情况。m输出根。(3)输入下面程序,分析运行结果#include<stdio.h>int func (int ,int );int main ( ) int k=4,m=1,p1,p2; p1=func(k,m) ; p2=func(k,m) ; printf("%d,%dn",p1,p2) ;return 0;int func (int a,int 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程序,根据运行结果,可以说明什么?#include <stdio.h>int main( )int num5=1,2,3,4,5;inti i;for(i=0;i<=5;i+) printf(“%d”,numi);return 0;(2)为一个冒泡排序程序设计测试用例,并测试之。(3)操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。现在要你设计一个程序,返回一个3 ×5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存储的。3分析与讨论(1)通过实验,分析定义与引用数组的区别。(2)数组的作用是什么?(3)数组名作为参数有什么特点?实验八 指针及其应用1实验目的(1)掌握变量的指针及其基本用法。(2)掌握一维数组的指针及其基本用法。(3)掌握指针变量作为函数的参数时,参数的传递过程及其用法。2实验内容(1)对以下程序进行运行,并从中了解变量的指针和指针变量的概念。 # include <stdio.h> 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 ,%udn”,a,p);b=10;printf(“%d ,%udn”,a,p);return 0;(2)运行以下程序,观察&a0,&ai)和p的变化,然后回答以下问题:程序的功能是什么? 在开始进入循环体之前,p指向谁?循环每增加一次,p的值(地址)增加多少?它指向谁?退出循环后,p指向谁? 你是否初步掌握了通过指针变搔引用数组元素的方法?# include <stdio.h>int main()int i,*p,s=0,a5=5,6,7,8,9; p=a; for(i=0;i<5;i+,p+) s+=*p;printf(“n s=%d”,s);return 0;(3)先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用数组元素的各种方法。 #include <stdio.h>int main( )int i,s1=0, s2=0, s3=0, s4=0,*p,a5=1,2,3,4,5; p=a; for(i=0;i<5;i+) s1+=pi; for(i=0;i<5;i+) s2+=*(p+i); for(p=a;p<a+5;p+) s3+=*p; p=a; for(i=0;i<5;i+) s4+=*p+; printf(“n s1=%d, s2=%d, s3=%d, s4=%d”s1,s2,s3,s4); return 0;(4)编写函数,将n个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成:输入10个数;调用此函数进行重排;输出重排后的结果。3分析与讨论(1)指针的定义方法,指针和变量的关系。(2)数组和指针的关系。实验九 结构体及其应用1实验目的(1)掌握结构体类型变量与结构体数组的定义和使用。(2)学会使用结构体指针变量和结构体指针数组。(3)掌握链表的概念,初步学会对链表进行操作。2实验内容(1)输入出10个学生的学号、姓名和成绩,求出其中的高分者和低分者。#include <stdio.h>struct studentint num; char name20; int score;int main( )int i; struct student st,stmax,stmin;stmax.score=0; stmin.score=100;printf("n input data");for(i=0;i<10;i+)scanf("%d%s%d",&st.num,st.name,&st.score);if(st.score>stmax.score) stmax=st;if(st.score<stmin.score) stmin=st;printf("n hight:%5d%15s%5d",stmax.num,stmax.name,stmax.score);printf("n low:%5d%15s%5d",stmin.num,stmin.name,stmin.score);return 0;分析程序,上机运行程序。程序中,哪些是对结构体变量的成员引用,哪些是整体引用?对于此例来说,用结构体变量作为数据结构有何优越性?(2)有一学生情况如下表所示。编制一个C程序,用冒泡法对该学生情况表按成绩(grade)从低到高进行排序。学号姓名性别年龄成绩101ZhangM1995.6102wangF1892.2103zhaoM1985.7104liM2096.3105GaoM1990.2106LinM1891.2107MaF1898.7108ZhenM2188.7109XuM1990.1110MaoF2294.7具体要求如下:结构体类型为struct studentint num; char name8; char sex; int age;double grade; 在程序中用一个结构体指针数组,其中每一个指针元素指向结构体类型的各元素。 在程序中,首先输出排序前的学生情况,然后输出排序后的结果,其格式如上表所示。(3)链表基本操作,具体要求如下: 初始时链表为空,即链表的头指针为空。对于上表所示的学生情况表,依次将每个学生的情况作为一个结点插入到单链表的链头(即当前插入的结点将成为第一个结点)。所有学生情况都插入到链表中后,从链头开始,依次输出链表中的各结点值(即每个学生的情况)。输出格式如同上表。3分析与讨论(1)结构体的作用,如何进行初始化?(2)如何访问结构体中的成员。(3)链表有什么优点?实验十 文件1实验目的(1)掌握文件与文件指针的概念。(2)学会使用文件打开、文件关闭、读与写文件等基本的文件操作函数。(3)运用文件操作函数进行程序设计。2实验内容(1)以文本方式建立初始数据文件,请输入10个学生的学号、姓名及考试成绩,形式如下:1001 LiLi 801002 HuWei 901003 LiMing 75读入file1.dat中的数据,找出最高分和最低度分的学生。#include <stdio.h>struct 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;i<10;i+)fscanf(fp,"%d%s%d",&st.num,st.name,&st.score);if(st.score>stmax.score) stmax=st;if(st.score<stmin.score) stmin=st;fclose(fp);printf(" hight:%5d%15s%5d",stmax.num,stmax.name,stmax.score);printf("n low:%5d%15s%5d",stmin.num,stmin.name,stmin.score);return 0;分析程序,上机运行程序并分析运行结果。如果事先不知道学生个数,则程序应该如何修改?请将以上程序中的循环语句for(i=0;i<10;i+)改为(while(!feof(fp)再运行程序,看结果是否正确?(2)读入file2.dat中的数据,然后按成绩从高到低度的顺序进行排序,并将排序结果分别以文本方式存入到文件file3.dat中,以二进制形式存入文件file4.dat中。#include <stdio.h>struct 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;i<10;i+)fscanf(fp,"%4d%10s%3d",&sti.num,sti.name,&sti.score);fclose(fp);sort(st,n);fp1=fopen("file3.dat","w");for(i=0;i<n;i+)fprintf(fp1,”%4d%10s%3d",sti.num,sti.name,sti.score); fclose(fp1); fp2=fopen("file4.dat","wb"); fwrite(st,sizeof(struct student),n,fp2); fclose(fp2);return 0;void sort(struct student *st,int n)struct student *i,*j,t;for(i=st;i<st+n-1;i+)for(j=i+1;j<st+n;j+)if(i->score<j->score)t=*i;*i=*j;*j=t;请分析程序,上机运行程序,运行结果在哪里?与上一例相比,此例中对读取文件的格式有何不同?(3)某班的学生145人,每人的信息包括:学号、姓名、性别、和成绩。编制一个C程序,完成以下操作:定义一个结构体类型数组。打开可读写的新文件student.dat。使用函数fwrite()将结构体数组内容写入文件student.dat中。关闭文件student.dat。打开可读写文件student.dat。从文件中依次读出各学生情况并按学生成绩进行排序,输出排好序后的数据。关闭文件student.dat。3分析与讨论(1)文件有哪些优点?(2)文件常用的读写操作函数有什么不同?(3)调试有关文件的程序要注意什么?

    注意事项

    本文(C语言试验指导12页word.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开