例9.2中的程序是按处理文本文件的方式来编写的。在文件内部有一个位置指针,用来指向文件的当前读写字节。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。例9.3将例9.1中的建立的文件A.dat的内容在屏幕上显示。例9.4从A.dat文件中读入一个含10个字符的字符串。例9.6从键盘输入两个学生数据并写入一个文件中,再读出这两个学生的数据显示在屏幕上。......
2025-09-30
一个C程序可以由一个或多个称为函数的程序块组成,这些函数可以存放在同一个源程序文件中,也可以按某种方式分门别类地存放到不同的源程序文件中。函数在C程序中作为一个整体对待,不能将一个函数拆开放到不同的源程序文件中。
在程序设计中,一个大的程序可以分为多个模块,一些公用的符号常量或宏定义等也可单独组成一个文件。程序设计时,可以通过下面3种常用方法组织多源文件C程序:
·单独编译每一个源程序文件,然后用连接程序对编译好的目标文件进行连接构成执行文件。
·使用工程文件方式,这也是现代开发环境中使用的方法。
·使用文件包含预处理方式,在C程序设计中使用文件包含预编译语句将需要的源文件组合进来。这是最简单的组合多源文件C的方式。
【例9.4】 使用文件包含组合多源文件C程序示例。
问题描述:求[a,b]区间内的绝对素数,区间上下限值从键盘输入。
问题分析:所谓“绝对素数”,指的是一个素数的倒序数也是素数。从问题的描述可以直观地分离出“判定素数”和“求倒序数”两个相对独立的功能。考虑到“判定素数”和“求倒序数”在许多问题上都会使用到,可以分别使用单独的C源文件进行存放,以方便使用。
①源程序文件isprime.c的内容如下:
②源程序文件ReverseOrderNnumber.c的内容如下:
③求指定区间中所有“绝对素数”的C程序如下:
在上面程序中,用文件包含方式将含有“求倒序数”功能和“判定素数”功能的源程序文件嵌入到程序ex0904.c中,构成了一个解决问题的完整C程序。由于被包含的C文件逻辑上被嵌入在书写文件包含预处理语句,被调函数ReverseOrderNnumber和isprime出现在对它们的调用点之前,所以主函数中不需要对其进行声明。程序一次执行过程如下:(https://www.chuimin.cn)
请输入区间的下限和上限:1,50//输入数据
绝对素数对:2--2
绝对素数对:3--3
绝对素数对:5--5
绝对素数对:7--7
绝对素数对:11--11
绝对素数对:13--31
绝对素数对:17--71
绝对素数对:31--13
绝对素数对:37--73
相关文章
 
                                
                                例9.2中的程序是按处理文本文件的方式来编写的。在文件内部有一个位置指针,用来指向文件的当前读写字节。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。例9.3将例9.1中的建立的文件A.dat的内容在屏幕上显示。例9.4从A.dat文件中读入一个含10个字符的字符串。例9.6从键盘输入两个学生数据并写入一个文件中,再读出这两个学生的数据显示在屏幕上。......
2025-09-30
 
                                
                                在C 语言中,对文件的基本操作包括文件的打开与关闭、文件的读和写等。表9.1文件操作方式例如:打开当前目录下的C.DAT 文件,这是一个二进制文件,只允许进行读操作,并使fp 指针指向该文件。应该养成在程序终止前关闭所有文件的习惯,如果不关闭文件将会丢失数据。......
2025-09-30
 
                                
                                图1.2分支结构图3.循环结构循环结构可以减少源程序重复编写的工作量,提高程序处理复杂数据的能力,这也是程序设计中最能发挥计算机特长的程序结构。图1.3C语言程序结构......
2025-09-30
 
                                
                                例如,起始位置为文件头,偏移量为50,则表示将读写指针移到相对文件头距离50个字节的位置。表9.2文件指针起始位置的设置方法说明: 0表示相对于文件头; 1表示相对于文件的当前位置; 2表示相对于文件尾。例9.8建立一个数据文件,随机读取其中的某个数据。例9.9文件位置指针复位函数rewind()的应用。例9.10编写一个程序使用frell()函数估算一个文件的大小。......
2025-09-30
 
                                
                                一个函数直接或间接地调用自己,称为函数的递归调用。所以函数递归调用的实现必须依靠系统提供一个特殊部件(堆栈)存放未完成的操作,以保证当递归调用结束回溯时不会丢失任何应该执行而没有执行的操作。为了理解函数递归调用的特性,参照例5.9的程序讨论函数递归调用的执行过程,为了讨论方便为程序加上行号。函数递归调用示例。......
2025-09-30
 
                                
                                对文件操作之前,必须先打开该文件;操作结束后,应立即关闭文件,以免数据丢失。若打开的文件不存在,则以指定的文件名建立该文件;若打开的文件已经存在,则将该文件删去,重建一个新文件。对二进制文件的读写则不存在这种转换。......
2025-09-30
 
                                
                                C语言中逻辑运算符及其含义见表3.2。表3.2逻辑运算符及其含义逻辑运算符“&&”和“||”是双目运算符,具有左结合性;“!”表3.3逻辑运算真值表C语言中进行逻辑表达式求值运算时,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:·对逻辑表达式从左到右进行求解。......
2025-09-30
 
                                
                                项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2025-09-30
相关推荐