欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPTX文档下载  

    C语言程序设计习题答案与上机指导(上机指导)课件.pptx

    • 资源ID:2139285       资源大小:1.51MB        全文页数:124页
    • 资源格式: PPTX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    C语言程序设计习题答案与上机指导(上机指导)课件.pptx

    实验一 C程序集成开发环境,实验一 C程序集成开发环境,一、实验目的,1.熟练掌握Windows操作系统下Visual C+6.0集成开发环境,了解DOS操作系统下Turbo C 2.0的基本操作方法。2.熟悉C程序编辑、编译、连接和运行程序的基本过程。3.了解C程序常见的两类语法错误(Error/Warning)及修改方法。,实验一 C程序集成开发环境,二、实验内容,【题目1-1】熟悉Visual C+6.0集成开发环境的使用及调试方法,并设计简单的求和程序,以计算两个整数的和值。1.测试数据输入:1234,5678输出:69122.题目分析(1)利用scanf函数,从键盘输入两个整数,并存放于指定变量a,b中。(2)用户自定义Sum函数,将a,b变量的内容传入该函数的形参x,y中。(3)调用Sum函数,并用printf函数将和值输出。,实验一 C程序集成开发环境,二、实验内容,3.参考代码#include int Sum(int x,int y)int z;z=x+y;return z;main()int a,b;scanf(“%d,%d”,实验一 C程序集成开发环境,4操作过程(1)Visual C+6.0集成开发环境启动Visual C+6.0Visual C+6.0的启动,可以使用菜单操作,选择开始菜单-所有程序-Microsoft Visual Studio 6.0-Microsoft Visual C+6.0。启动后的界面见图1-1所示,实验一 C程序集成开发环境,编辑操作编辑操作选择“File-new”菜单,如图1-2所示。在出现的“New”对话框中选择“Files”选项卡,再在列表中选择“C+source File”,注意在右边“File”中填写文件名,比如Test.c,在“Location”中填写源程序文件存放的位置,比如将Test.c存放在E盘。参见图1-3。,实验一 C程序集成开发环境,编辑操作编辑操作选择“File-new”菜单,如图1-2所示。在出现的“New”对话框中选择“Files”选项卡,再在列表中选择“C+source File”,注意在右边“File”中填写文件名,比如Test.c,在“Location”中填写源程序文件存放的位置,比如将Test.c存放在E盘。参见图1-3。,实验一 C程序集成开发环境,编辑操作在文件编辑窗口输入源程序,如图1-4。,实验一 C程序集成开发环境,编译操作 选择Build-Compile命令,编译源程序Hello.c,出现提示窗口,单击是(Y)按钮,如图1-5所示。,实验一 C程序集成开发环境,连接操作 选择Build-Build Hello.exe 命令,进行连接操作,如果没有错误,则显示Hello.exe-0 error(s),0 warning(s),生成了可执行文件Hello.exe。运行程序 选择Build-Execute Hello.exe命令,可以运行Hello.exe程序,键盘输入1234,5678,则输出程序运行结果,如图1-6。退出,实验一 C程序集成开发环境,(2)调试与跟踪 打开文件 打开已经保存的源程序文件,可以选择File-Open命令。如果在上一小节第(3)步中已经创建了工作区,则在文件类型中选择Workspaces类型,文件名选择Hello,如图1-7所示。,实验一 C程序集成开发环境,如果没有创建工作区,则在文件类型中选择C+Files类型,文件名选择Hello,如图1-8所示。,实验一 C程序集成开发环境,错误提示及修改如果是普通的语法错误,例如在程序int a,b语句中,缺失了“;”,则在执行Build-Compile命令后,会给出错误原因error C2146:syntax error:missing;before identifier scanf,用户可以在该错误上按鼠标右键,在弹出菜单中选择Go To Error/Tag,转到错误语句上进行修改,如图1-9。,实验一 C程序集成开发环境,对于函数定义错误,例如在定义函数名时,将函数定义为int Summ(int x,int y),在执行Build-Compile命令,只会给出警告提示,但是在执行Build-Build Hello.exe 命令命令后,则会给出错误提示Hello.obj:error LNK2001:unresolved external symbol _Sum,如图1-10所示。,实验一 C程序集成开发环境,单步跟踪如果用户希望单步执行程序,以考察执行效果,可以单击键盘F10按键,每次单击F10均可执行一条语句,例如在图1-11中为2次单击F10后,用户输入1234,5678后,箭头代表将要执行的下一条语句(即printf),并可以在Auto窗口中看到变量a,b的内存地址(以&a,&b表示)和内容。,实验一 C程序集成开发环境,转入函数内部如果希望进入函数体内部,可以单击F11键,此时程序将转入到sum函数中,注意在图1-12中箭头指向sum函数的起始行,以及形参x,y的内容。,实验一 C程序集成开发环境,运行到光标处用户也可以将光标定位到return z;行,按Ctrl+F10组合键,一步执行到光标所在行,并得到z的返回值,如图1-13所示。,实验一 C程序集成开发环境,运行到光标处用户也可以将光标定位到return z;行,按Ctrl+F10组合键,一步执行到光标所在行,并得到z的返回值,如图1-13所示。,实验二 数据类型、运算符和表达式,实验二 数据类型、运算符和表达式,一、实验目的,1.熟练掌握C语言各种数据类型的含义。2.理解常量和变量的区别。3.熟练掌握变量定义和使用。4.熟悉常用的运算符包括算术、赋值、强制类型转换、自增(减)、逗号和位运算等。,实验二 数据类型、运算符和表达式,二、实验内容,【题目2-1】编写整型、实型和字符类型的简单测试程序,并输出以验证是否正确。1.测试数据输入:无。输出:略。2.题目分析(1)整型数据采用十进制、八进制和十六进制表示。(2)字符型数据采用单引号限界字符和转义字符来表示。(3)大小写字母的ASCII值相差32。,实验二 数据类型、运算符和表达式,3.参考代码#include stdio.h#define PI 3.14159/*符号常量*/main()int n1=10,n2=017,n3=0 xFF;/*整型数据3种表示方法*/float f1=3.14E5,f2=12.34f;/*实型数据的表示方法*/char c,c1=A,c2=101,c3=0 x61,c4=;/*字符型数据的几种表示方法*/*整型数据以原进制输出*/printf(n1=%d,n2=%o,n3=%xn,n1,n2,n3);/*整型数据以十进制输出*/printf(n1=%d,n2=%d,n3=%dn,n1,n2,n3);/*实型数据输出*/,实验二 数据类型、运算符和表达式,3.参考代码/*符号常量的输出*/printf(PI=%fn,PI);/*字符型数据的输出*/printf(c1=%c,c2=%c,c3=%c,c4=%cn,c1,c2,c3,c4);c=c1+32;/*字母转换为小写*/printf(c1=%c,c=%cn,c1,c);,实验二 数据类型、运算符和表达式,4.参考结果,实验二 数据类型、运算符和表达式,【题目0205】取整数1234的各个数位上的数字,并编程上机验证。1.测试数据输入:无。输出:12342.题目分析(1)取千位上的数字i/1000。(2)取百位上的数字i%1000/100。(3)取十位上的数字i%100/10。(4)取个位上的数字i%10。,实验二 数据类型、运算符和表达式,3.参考代码#include stdio.hmain()int i=1234;int n1,n2,n3,n4;n4=i/1000;n3=i%1000/100;n2=i%100/10;n1=i%10;printf(%d%d%d%dn,n4,n3,n2,n1);,实验二 数据类型、运算符和表达式,4.参考结果,实验三 顺序结构程序设计,实验三 顺序结构程序设计,一、实验目的,1.熟练掌握scanf和printf函数格式控制字符的含义以及输出方法的设计。2.培养编制程序框图和顺序结构程序的编写能力。,实验三 顺序结构程序设计,二、实验内容,【题目3-1】输入学生平时成绩(占10%)、实验成绩(占20%)和考试成绩(占70%),程序计算出该学生的总成绩,保留2位小数。1.测试数据输入:85 76 92输出:平时成绩(占%10):85 实验成绩(占%20):76 考试成绩(占%70):92 总成绩为88.10,实验三 顺序结构程序设计,2.题目分析(1)三科成绩定义为整型类型。(2)总成绩应定义为实型类型。(3)保留2位小数采用”%.2f”格式。(4)程序流程图如下:,实验三 顺序结构程序设计,3.参考代码#include stdio.hmain()int attendance,laboratory,quiz;float final;printf(n请输入平时成绩:);scanf(%d,实验三 顺序结构程序设计,4.参考结果,实验三 顺序结构程序设计,【题目0302】利用海伦公式计算三角形面积,保留3位小数。1.测试数据输入:3,4,5输出:三角形的面积为:6.0000002.题目分析(1)定义三边长分别为a、b、c,三角形的面积area,类型为实型。(2)p为半周长,定义类型为实型,公式为p=(a+b+c)/2(3)面积公式为area=。开方可采用sqrt函数(需要包含头文件”math.h”)。(4)程序流程图。由读者自行设计。,实验三 顺序结构程序设计,3.参考代码#include math.h#include stdio.hmain()float a,b,c,p,area;printf(请输入三边边长:n);scanf(%f,%f,%f,实验三 顺序结构程序设计,4.参考结果,实验四 选择结构程序设计,实验四 选择结构程序设计,一、实验目的,1.熟练掌握关系、逻辑运算符及其表达式。2.掌握if语句及嵌套if的使用。3.掌握switch语句的使用,实验四 选择结构程序设计,二、实验内容,【题目4-1】有如下分段函数,要求输入x的值,求y的值。1.测试数据输入:2输出:y=-6.000000输入:-5输出:y=5.000000,实验四 选择结构程序设计,二、实验内容,2.题目分析(1)x,y定义为实型类型。(2)三条支路,可采用if-else if-else结构实现。(3)绝对值可采用数学库abs(x)函数。(4)部分流程图如下:,实验四 选择结构程序设计,3.参考代码#include math.h#include stdio.hmain()float x,y;printf(请输入变量x的值n);scanf(%f,实验四 选择结构程序设计,4.参考结果,实验四 选择结构程序设计,【题目4-2】设计程序,将给出的百分制成绩,转换等级输出。例如90分及以上为优秀,8089分为良好,7079分为中等,6069分为及格,60分以下为不及格。1.测试数据输入:67输出:及格,实验四 选择结构程序设计,2.题目分析(1)成绩变量score定义为整型类型。(2)五条支路,最好采用switch结构实现。(3)利用score/10将分数区间转换为与若干常量相对应。(4)部分流程图如下:,实验四 选择结构程序设计,#include stdio.hmain()int score;printf(请输入学生的成绩n);scanf(%d,实验四 选择结构程序设计,4.参考结果,实验五 循环结构程序设计,实验五 循环结构程序设计,一、实验目的,1.熟练掌握while,do-while,for循环的语法结构和使用方式。2.了解多重循环的循环执行过程。3.掌握continue和break语句的特点和使用方式。,实验五 循环结构程序设计,二、实验内容,【题目5-1】根据例5-8,编写求解100500之间所有素数的程序。1.测试数据输入:无。输出:略。2.题目分析(1)采用两层循环,内层循环用于判断某个数是否为素数,外层循环用于在100500循环选数。(2)count%10=0每行显示10个素数。(3)程序流程图参见例5-8。,实验五 循环结构程序设计,3.参考代码#includestdio.h#includemath.hvoid main()int n,k,j,count=0;for(n=101;n=k+1)printf(%d,n);count+;if(count%10=0)printf(n);,实验五 循环结构程序设计,4.参考结果,实验五 循环结构程序设计,【题目0503】输入两个整数,用辗转相除法求它们的最大公约数和最小公倍数。1.测试数据输入:32,48输出:32和48的最大公约数为16 32和48的最小公倍数为962.题目分析(1)最大公约数算法:输入两个数m,n(默认mn)。k为m除以n的余数(k=m%n),如果m能被n整除,则k值为0,n为这两个数的最大公约数,否则,将k的值存入n中(n=k),n的值存入m中(m=n),重复以上过程,直到k值为0。(2)最小公倍数为m0*n0/m,其中m0*n0为原始两个数m,n的乘积,m为最大公约数。,实验五 循环结构程序设计,(3)部分程序框图如下:,实验五 循环结构程序设计,3.参考代码#include stdio.hmain()int m,n,k=1,temp;int m0,n0;scanf(%d,%d,实验五 循环结构程序设计,3.参考代码 n=temp;while(k!=0)k=m%n;m=n;n=k;printf(%d和%d的最大公约数为%dn,m0,n0,m);printf(%d和%d的最小公倍数为%dn,m0,n0,m0*n0/m);,实验五 循环结构程序设计,4.参考结果,实验六 数组,实验六 数组,一、实验目的,1.了解数组的特点,掌握一维数组及二维数组的定义、初始化及其使用方法;2.熟练使用一维及二维数组解决实际问题;3.掌握字符数组的使用;4.掌握与数组有关的算法。,实验六 数组,二、实验内容,【题目6-1】在一个有序的数组中插入一个元素,并保持数组有序。1.测试数据输入:11 22 33 44 55 66 77 88 30输出:11 22 30 33 44 55 66 77 882.题目分析(1)原始数组要有足够的存储空间,以便能继续存放后插入的元素;(2)插入操作需要先确定待插入的位置,然后将此位置及后面的数组元素后移,空出这个位置,最后将待插入元素放在这个位置上。,实验六 数组,3.参考代码#includevoid main()int a10;int x,i;printf(请输入数组:);for(i=0;i=0)/*从后向前查找x的位置,同时将大于x的数组元素后移*/,实验六 数组,3.参考代码 ai+1=ai;i-;ai+1=x;printf(操作后结果:);for(i=0;i=8;i+)printf(%3d,ai);printf(nn);,实验六 数组,4.参考结果,实验六 数组,【题目0604】由键盘输入两个字符串,编写程序实现这两个字符串的比较功能。1.测试数据输入:China Chinese输出:China Chinese2.题目分析(1)需要使用两个字符数组存放被比较的两个字符串,注意数组长度要足够容纳字符串。另外,需要设定一变量i,用于在字符串中逐个标识字符的下标。(2)字符串比较是基于字母序原理,因此需要做循环逐个比较对应位置上字符ASCII码的大小。,实验六 数组,3.参考代码#include void main()char str130,str230;int i=0;printf(请输入两个字符串:n);gets(str1);gets(str2);while(str1i!=0),实验六 数组,3.参考代码 if(str1istr2i)printf(判断结果:%s%sn,str1,str2);else if(str1istr2i)printf(判断结果:%s%sn,str1,str2);else printf(判断结果:%s=%sn,str1,str2);,实验六 数组,4.参考结果,实验七 函数,实验七 函数,一、实验目的,1掌握函数定义(返回、函数名、参数、函数体)、调用;2掌握函数实参与形参的对应关系;3掌握函数的嵌套调用和递归调用的方法;4掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法;,实验七 函数,二、实验内容,【题目7-1】键盘输入三角形三个边长的值,求该三角形面积,用函数调用的形式实现。1.测试数据输入:3.0 4.0 5.0 输出:6.002.题目分析(1)设三角形边长为a、b、c,面积area的算法是:area_s=sqrt(s*(s-a)*(s-b)*(s-c),其中 s=(a+b+c)/2.0;(2)要计算三角形面积,需要用到三个参数,即形参和实参的个数为3,求面积子函数的返回值类型应为浮点型。,实验七 函数,3.参考代码#include math.h#include stdio.hfloat area(float,float,float);void main()float a,b,c;printf(输入三角形的三个边长:);scanf(%f%f%f,实验七 函数,3.参考代码/*以下是计算任意三角形面积的函数*/float area(float a,float b,float c)float s,area_s;s=(a+b+c)/2.0;area_s=sqrt(s*(s-a)*(s-b)*(s-c);return(area_s);,实验七 函数,4.参考结果,实验七 函数,【题目0703】利用函数递归调用的思想编写程序,将一个整数的低位变成高位,高位变成低位组成另一个整数。1.测试数据输入:1234 输出:43212.题目分析定义一个递归函数实现整数变换,变换思路为func(1234,0)=func(123,4)=func(12,43)=func(1,432)=func(0,4321)=4321。,实验七 函数,3.参考代码#include stdio.h int func(int n,int m)if(n=0)return m;else return func(n/10,m*10+n%10);/*递归调用*/void main()int n;printf(输入一个整数:);scanf(%d,实验七 函数,4.参考结果,实验八 预处理命令,实验八 预处理命令,一、实验目的,1.掌握宏定义的方法2.掌握文件包含处理的方法3.掌握条件编译的方法,实验八 预处理命令,二、实验内容,【题目0801】定义一个带参数的宏,使两个参数的值互换。要求由键盘输入的两个数作为使用宏时的实参。1.测试数据测试数据输入:55 33输出:33 55 2.题目分析注意宏参数和函数参数的不同。,实验八 预处理命令,3.参考代码#include#define swap(a,b)t=b;b=a;a=t;void main()int a,b,t;printf(输入两个整数:);scanf(%d%d,实验八 预处理命令,4.参考结果,实验八 预处理命令,【题目0802】用条件编译方法实现以下功能:输入一行电报文字,可以任选两种输出:一为原文输出;一为将字母变成其下一个字母(如a变成b,z变成a),其它非字母字符不变。用#define命令来控制是否要译成密码。例如:#define CHANGE 1则按密码形式输出。若#define CHANGE 0则按原码形式输出。,实验八 预处理命令,1.测试数据测试数据输入:abcxyz ABCXYZ输出:bcdyza BCDYZA 2.题目分析如果想按原文形式输出,将下面程序中第3行改为:#define CHANGE 0即可。,实验八 预处理命令,3.参考代码#include stdio.h#define MAX 80#define CHANGE 1void main()char strMAX;int i;printf(输入原文:);gets(str);#if(CHANGE)for(i=0;iMAX;i+),实验八 预处理命令,3.参考代码 if(stri!=0)if(stri=a,实验八 预处理命令,4.参考结果,实验九 指针,实验九 指针,一、实验目的,1.掌握指针的概念,掌握定义和使用指针变量的方法;2.掌握指向数组的指针变量的用法;3.掌握指向字符串的指针变量的用法;4.掌握指向函数的指针变量的用法;5.了解二级指针的概念及其使用方法。,实验九 指针,二、实验内容,【题目0901】由键盘输入两个整数,编写程序实现两个数的互换,使用指针作函数参数的方式实现。1.测试数据输入:55 33 输出:33 552.题目分析(1)定义一个子函数swap(),实现两数互换,swap函数的形参是两个指向整型数据的指针;(2)在main函数中将两个整型变量的地址作实参,传递给swap函数;(3)注意swap函数中,用于两数互换的临时变量temp应定义为整型,而不是指针型。,实验九 指针,3.参考代码#include stdio.hvoid swap(int*p1,int*p2)int temp;temp=*p1;*p1=*p2;*p2=temp;int main()int a,b;int*pa,*pb;printf(输入两个整数:);,实验九 指针,3.参考代码scanf(%d%d,实验九 指针,4.参考结果,实验九 指针,【题目0904】根据零点定理求方程式f(x)=0的解。设f(x)在区间a,b上连续,且f(a)f(b)0。根据零点定理,f(x)在该区间内必存在零点。编写程序求方程式f(x)=0在区间a,b上的解。令误差为110-12。并求方程 在区间0,2上的解及方程 在区间2,7 上的解。1.测试数据输入:0,2 输出:1.299550输入:2,7 输出:3.000000,实验九 指针,2.题目分析(1)依题,需要设计3个子函数,bisection()、f1()、f2(),分别完成利用零点定理求解和表达两个方程式左式的功能;(2)函数bisection的定义形式非常重要,将它调用函数的参数定义为指向函数的指针。这样,每次调用bisection()就可以求解不同方程的解。定义形式为:double bisection(double(*f)(double x),double a,double b);其中f是指向函数的指针,a和b代表求解区间上下界。,实验九 指针,3.参考代码#include#includeconst double eps=1e-12;double bisection(double(*f)(double x),double a,double b)double mid=(a+b)/2;if(f(mid)=0)|(b-aeps)return mid;else if(f(a)*f(mid)0)return bisection(f,a,mid);else return bisection(f,mid,b);double f1(double x)return 1/(pow(x-0.3),2)+0.01)+1/(pow(x-0.9),2)+0.04)-6;double f2(double x)return pow(x-2),2)-1;,实验九 指针,3.参考代码void main()double a,b,result;printf(输入方程式1求解区间:);scanf(%lf,%lf,实验九 指针,4.参考结果,实验十 结构体与共用体,实验十 结构体与共用体,一、实验目的,1.掌握结构体类型变量的定义及使用2.掌握结构体变量的引用形式,结构体数组的应用3.理解结构体作为不同数据类型的一个整体在实际编程中的应用,实验十 结构体与共用体,二、实验内容,【题目10-1】有3名学生的基本信息,每名学生的基本信息包括:学号、姓名、语文成绩、数学成绩、总分、平均分等数据项。根据各科成绩计算总分和平均分,并输出这3名学生的信息。1.测试数据输入:无输出:参见4。2.题目分析利用结构体类型数组元素存放3名学生的信息,并根据要求求出总分和平均分。,实验十 结构体与共用体,3.参考代码#define N 3#include stdio.hstruct student char num8;char name20;float chi_score,math_score;float sum;float average;main()int i;struct student studN=201201,Zhao,80,90,201202,Qian,70,60,201201,Sun,80,60;/*计算学生的总分和平均分*/,实验十 结构体与共用体,3.参考代码for(i=0;iN;i+)studi.sum=studi.chi_score+studi.math_score;studi.average=studi.sum/3;/*输出学生的基本信息情况*/printf(nNumber Name Chinese Math Sum Average);printf(n-);for(i=0;iN;i+)printf(n%-8s%-4s%,studi.num,studi.name);printf(%8.1f%8.1f,studi.chi_score,studi.math_score);printf(%8.1f%8.1f,studi.sum,studi.average);printf(n-nn);,实验十 结构体与共用体,4.参考结果,实验十 结构体与共用体,【题目10-2】每个用户的信息包括姓名和电话号码。编写程序将用户信息按姓名以字母序输出。要求利用指向结构体的指针实现。1.测试数据输入:无输出:参见4。2.题目分析(1)需定义一个包含用户姓名和电话号码两个成员的结构体类型USER。由于字符串以n作为结束标志,所以数组长度应至少比实际数据长度多1。main函数中定义一个长度为N的USER类型结构体数组user,用于存放N位用户的信息。(2)子函数SortUser()利用选择法将N位用户按其姓名以字母序排列;子函数OutputUser()将重新排列的用户信息屏幕输出;两个子函数均采用指向结构体的指针变量作形参,因此子函数对结构体数组元素的修改能够体现在主函数中。main函数顺次调用这两个子函数,采用结构体数组名作实参,将数组首地址传递给形参指针。,实验十 结构体与共用体,3.参考代码#include#include#define N 3 typedef struct/*定义结构体类型USER,表征用户信息*/char name20;char tel15;USER;void SortUser(USER*u,int n)/*实现用户信息按姓名排序功能*/int i,j,k;USER temp;,实验十 结构体与共用体,3.参考代码for(i=0;in-1;i+)k=i;for(j=i;jn;j+)if(strcmp(uj.name,uk.name)0)k=j;if(k!=i)temp=uk;uk=ui;ui=temp;,实验十 结构体与共用体,3.参考代码void OutputUser(USER*u,int n)/*实现输出用户信息功能*/int i;printf(Sorted users:n);for(i=0;i=n-1;i+)printf(%6s%10sn,ui.name,ui.tel);printf(nn);void main()/*主函数中依次调用各子函数*/USER userN=Zhao,80010000,Qian,80010001,Sun,80010002;SortUser(user,N);OutputUser(user,N);,实验十 结构体与共用体,4.参考结果,实验十一 文件,实验十一 文件,一、实验目的,1.掌握文件的打开和关闭方式。2.ASCII和二进制文件读写函数的使用方法。3.状态检测函数的使用方法。,实验十一 文件,二、实验内容,【题目11-1】使用字符文件输入输出函数,将用户从键盘上输入的字符存入到指定的文件中,直到遇到”#”结束输入。1.测试数据输入:d:output.txt I Love China!#输出:I Love China!2.题目分析(1)字符显示采用putchar函数。(2)接受用户输入字符使用getchar函数。(3)文件存入操作采用fputc函数。,实验十一 文件,3.参考代码#include stdio.hvoid main()char ch;char FileName20;FILE*fp;printf(请输入存入的文件名n);scanf(%s,FileName);if(fp=fopen(FileName,w)=NULL)printf(无法打开文件!n);exit(0);,实验十一 文件,3.参考代码printf(请输入要保存的文本内容n);ch=getchar();while(ch!=#)putchar(ch);fputc(ch,fp);ch=getchar();fclose(fp);printf(n);,实验十一 文件,4.参考结果,实验十一 文件,【题目11-2】使用格式化文件输入输出函数,完成如下功能(1)输入若干学生的数据(学号,姓名,成绩),并存储在文件d盘文件stud.txt中;(2)从文件读出学生数据,打印全部的学生的相关信息.1.测试数据输入:3001 WANG 78002 FANG 67003 HAN 98输出:001 WANG 78.000000002 FANG 67.000000003 HAN 98.000000,实验十一 文件,2.题目分析(1)文件存入采用语句fprintf(fp,%s%s%f,stu.no,stu.name,stu.score)。(2)文件读出采用语句fscanf(fp,%s%s%f,stu.no,stu.name,实验十一 文件,3.参考代码if(fp=fopen(d:stu.txt,w)=NULL)printf(“无法打开文件!n”);exit(0);printf(请输入学生人数n);scanf(%d,if(fp=fopen(d:stu.txt,r)=NULL),实验十一 文件,3.参考代码printf(“无法打开文件!n”);exit(0);printf(文件中保存的学生信息如下:n);fscanf(fp,%s%s%f,stu.no,stu.name,实验十一 文件,4.参考结果,实验十一 文件,【题目11-3】使用数据块输入输出函数,完成【题目1102】同样的功能1.测试数据输入:3001 WANG 78002 FANG 67003 HAN 98输出:001 WANG 78.000000002 FANG 67.000000003 HAN 98.000000,实验十一 文件,2.题目分析(1)先使用malloc函数动态分配内存块,利用scanf函数给该内存块初始化。(2)使用fwrite函数将该内存块的内容写入到文件中。(3)使用fread函数将文件的内容读入到内存块中,使用printf函数将内存块内容显示到屏幕上。(4)使用free函数释放内存。,实验十一 文件,3.参考代码#include#include struct studentchar no20,name20;float score;void main()struct student*p,stu;int n,i;FILE*fp;if(fp=fopen(stu.dat,wb)=NULL)printf(“无法打开文件!n”);exit(0);,实验十一 文件,3.参考代码printf(请输入班级人数n);scanf(%d,实验十一 文件,3.参考代码fread(,实验十一 文件,4.参考结果,

    注意事项

    本文(C语言程序设计习题答案与上机指导(上机指导)课件.pptx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开