川师c语言实验报告十_第1页
川师c语言实验报告十_第2页
川师c语言实验报告十_第3页
川师c语言实验报告十_第4页
川师c语言实验报告十_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学与软件科学学院实验报告学期:2013至_2014第_1学期时间:2013年12月09日课程名称:程序设计基础教程-C语言专业:数学与应用数学2012级1班实验编号:10实验项目:位运算和文件操作指导教师:姓名:学号:实验成绩:一、实验目的及要求(1)掌握位运算的基本概念和方法,以及有关位运算的常见算法和基本应用;(2)掌握文件和文件指针概念,以及文件的一般定义、操作方法。在此基础上了解有关文件的基本应用并熟悉相关函数。注:重点掌握缓冲文件系统的操作和运用,在此基础上了解和熟悉文件的顺序读写和随机读写方法。二、实验内容1.熟悉位运算的基本操作方法。(以教材例11-1为基础)2.了解和熟悉位运算的基本应用。(以教材例11-2~11-6为基础)3.熟悉文件操作的基本步骤。(以例12-1~12-7为基础)4.了解文件的读、写函数的使用方法。(以例12-8~12-10为基础)三、实验预备(1)复习有关位运算和文件操作的基本知识;(2)仔细分析教材所提供的各程序实例及其可能执行结果;四、实验步骤(1)上机执行各实例程序,并做相应测试和分析;(2)总结基于位运算的程序设计特点及其可能的应用领域;总结文件的基本结构及其操作步骤,以及应用文件的主要问题领域。(3)编写实验报告。五、实验结果分析与评价(1)根据测试目标写出测试报告;(2)测试结果分析说明;(3)测试程序代码清单。熟悉位运算的基本操作方法。(以教材例11-1为基础)只有~为单目运算符位运算只能用于整型或字符型数据位运算符可以与赋值运算符结合组成扩展的赋值运算,即~=,<<=,>>=,&=,^=,|=两个长度不同的数据进行位运算时,系统先将二者右端对齐,然后将短的一方进行扩充。对无符号数,按无符数则以0扩充;对有符号数,按符号扩充例题:11-1按位进行基本位操作结果分析:按位逻辑与通过&操作符完成。它通过对其左右两个操作符逐位与后获得一个新值,作为逻辑与的结果;按位逻辑或的运算,按位逻辑非也是同样道理的;对于有符号数,左移或右移后右边或左边空出的位以符号位填充。2.了解和熟悉位运算的基本应用。(以教材例11-2~11-6为基础)(1)掩码技术(Mask)用一个二进制bit串来覆盖另一个二进制串bit串,使被覆盖者保持某种性质的技术使某个二进制位串保持某种特征指定某个二进制位的0/1状态位的打开:打开位串中的特定位而保持其他位不变位的关闭:将指定位赋予0值而不影响其他位操作。(4)位的翻转:对指定位的状态进行求反操作。(5)位的检查:利用掩码技术屏蔽其他bit位,从而查看指定bit位的状态。例题11-2写一程序,实现将给定整数值转换为二进制字符串并分节输出转换结果。运行结果如下:Pleaseinputaninteger:5670000,0010,0011,0111结果分析:因为C语言没有直接提供二进制形式的I/O操作,要将给定整数值转换为二进制字符串形式要用到掩码技术和逻辑左移或右移运算。掩码用于对指定bit位进行状态检测,左移或右移使待转换整数的二进制位串的下一bit移动到掩码中状态为1的bit位处。以上程序对整数number右移而掩码0x0001固定不变完成转换;也可以对掩码左移而整数number固定不变来完成。3.熟悉文件操作的基本步骤。(以例12-1~12-7为基础)4.了解文件的读、写函数的使用方法。(以例12-8~12-10为基础)(1)缓冲文件系统的文件信息区结构及指向文件的指针声明文件指针变量的格式:FILE*文件结构体指针变量名;注意:缓冲文件系统中,所有对文件的操作都必须通过指向文件结构体指针变量完成只要将文件信息对应的结构体变量之起始地址值赋给文件指针变量,就可以达到操作和管理文件的目的(2)缓冲文件系统的读写文件方法fgetc()和fputc()fputc()intfputc(intch,FILE*stream);功能:把一字节的ch写入文件stream中。写入正常时,返回ch;写入出错时,返回EOF。fgetc()intfgetc(FILE*stream);功能:从stream中读取一个字节的代码。正常读取时,返回读到的代码值;读到文件尾或出错时返回EOF。fgets()和fputs()fgets()char*fgets(char*str,intn,FILE*stream);功能:从stream获取n-1个字符并将第n个字符置为'\0'或在遇到'\n'时结束读入动作并在后面加上'\0'。读取结果存于str所在存储空间。读取成功时将str首地址作为函数返回值,否则返回NULL。intfputs(constchar*str,FILE*stream);功能:将串str写入文件stream。'\0'不属于文件内容,它不写入文件。fscanf()和fprintf()intfscanf(FILE*stream,constchar*format,...);intfprintf(FILE*stream,constchar*format,...);功能:按指定的格式对文件stream进行读写操作。读写成功时,返回成功读写的数据项个数。读写出错或遇到文件尾时,返回EOF。fread()和fwrite()size_tfread(void*ptr,size_tsize,size_tn,FILE*stream);size_tfwrite(constvoid*ptr,size_tsize,size_tn,FILE*stream);功能:按指定大小从ptr读/写n个数据块。成功时,返回已读/写的块数;出错或遇到文件尾时,返回0值。注意1:fread()和fwrite()进行文件读写时,文件必须以2#方式打开。注意2:ptr是要读写数据块的首地址,size为数据块的大小,n为要读写的数据块数,stream是要读写的文件指针。例题12-2分析:因为以上程序执行时所带文件名参数argc和argv[],以上程序不能在C语言编译环境下直接执行,只能在操作系统界面下执行可执行文件并带文件名参数:否则程序将提示输入文件名的信息如下程序应用了打开程序的函数fopen(),关闭fclose(),用键盘输入内容的函数fputc()或者是fgetc(),他们的应用分别是FILE*fopen(constchar*path,constchar*mode).关闭intfclose(FILE*stream),intfput(intch,FILE*stream).出了这些还有fgetc()fgets()fputs()fscanf()fprintf()fread()fwrite()这些函数。实验心得:十一章主要是位运算(1)&与:只有都为1的时候才为1,其余都为0(2)|或:只有都为0的时候才为0,其余都为1(3)^异或:相同为0,不同为1(4)<<左移:右边空出的用0来填充(5)>>右移:有符号的用符号位来填充,无符号就用0来填充。十二章主要内容是文件包括文件的分类以及定义,定义结构如下:Typedefstruct{Shortlevel;Unsignedflags;Charfd;Unsignedcharhold;Shortbsize;Unsignedchar*buffer;Unsignedchar*curp;Unsignedistemp;Shorttoken;}FILE;接下来是文件的打开及关闭FILE*fopen(constchar*path,constchar*mode).关闭intfclose(FILE*stream)。还有文件的输入读写等函数intfput(intch,FILE*stream).出了这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论