- 博客(36)
- 收藏
- 关注
C语言程序设计题库 第十一章:数据文件的使用
文件是可以存储在磁盘或其他存储设备上,提供了一种便捷的方式来读取和写入数据。C语言通过文件操作来实现对文件的读取和写入,可以从外部文件读取数据到程序中,或将程序生成的数据写入到文件中,实现数据的持久化和共享。
文件可以分为文本文件和二进制文件两种类型:
文本文件(Text File):文本文件是由字符组成的文件,可以使用文本编辑器打开并查看其内容。文本文件中的数据是以文本形式存储的,例如ASCII码或Unicode编码。C语言中可以使用标准库函数(如fopen、fprintf、fscanf等)来读取和写入文本文件。
二进制文件(Binary File):二进制文件是由字节组成的文件,内容不可直接查看,只能以二进制形式进行读取和写入。二进制文件可以包含任意类型的数据,如整数、浮点数、结构体等。C语言中可以使用标准库函数(如fopen、fwrite、fread等)来读取和写入二进制文件。
在C语言中,使用文件指针(File Pointer)来表示文件,通过文件指针可以进行文件的打开、关闭、读取和写入等操作。文件操作包括打开文件、关闭文件、读取文件、写入文件、移动文件指针等。
2023-08-30
C语言程序设计题库 第九章:指针
为什么需要指针?
指针解决了一些编程中基本的问题。
第一,指针的使用使得不同区域的代码可以轻易的共享内存数据。当然你也可以通过数据的复制达到相同的效果,但是这样往往效率不太好,因为诸如结构体等大型数据,占用的字节数多,复制很消耗性能。但使用指针就可以很好的避免这个问题,因为任何类型的指针占用的字节数都是一样的(根据平台不同,有4字节或者8字节或者其他可能)。
第二,指针使得一些复杂的链接性的数据结构的构建成为可能,比如链表,链式二叉树等等。
第三,有些操作必须使用指针。如操作申请的堆内存。还有:C语言中的一切函数调用中,值传递都是“按值传递”的,如果我们要在函数中修改被传递过来的对象,就必须通过这个对象的指针来完成。
指针是什么?
我们指知道:C语言中的数组是指 一类 类型,数组具体区分为 int 类型数组,double类型数组,char数组 等等。同样指针 这个概念也泛指 一类 数据类型,int指针类型,double指针类型,char指针类型等等。
通常,我们用int类型保存一些整型的数据,如 int num = 97 , 我们也会用char来存储字符: char
2023-08-29
C语言程序设计题库 第八章:结构体、共用体和枚举类型
类比数组,数组也算一种复合数据类型,数组是由多个由相同数据类型的元素组成,(比如需要记录描述100个人的年龄,此时只需int arr[100]即可,不需一个一个的声明);结构体可由多中数据类型的元素组成(将不同的数据类型组合成为一个整体),比如描述一个学生信息,学生的学号使用long int类型存储、年龄用int类型存储、姓名用字符串(字符数组)存储。如果是一个学生,可以只需声明3个变量即可(long int id;int age;char* name[8]),要是100个学生,如此一个学生就得对应声明3个变量明显是不可行的;可以设想一下,能不能有一种数据类型是专门用来存储学生信息的?能,结构体就可以派上用场,结构体是一种自定义的数据类型,我们可以自己定义一种叫Student的数据类型,这种类型可以同时存放一个long int数据、int数据、字符串。如此,就可以声明Struct Student stu[100];来存放100个学生的数据了。
2023-08-25
C语言程序设计题库 第七章:数组
C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,比如 runoob0、runoob1、...、runoob99,而是声明一个数组变量,比如 runoob,然后使用 runoob[0]、runoob[1]、...、runoob[99] 来代表一个个单独的变量。
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
2023-08-22
C语言程序设计题库 第六章:函数
在C源程序被编译之前,首先对源程序中的预处理命令进行处理,然后才对程序进行编译。编译预处理命令都是以“#“开头的,它不是C 语句,必须单独占一行,末尾不使用分号作为结束符。类似Word中的替换功能。常用的预处理命令包括宏定义、条件编译和文件包含等。无参宏定义格式:#define 标识符 字符串定义要点:宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,属于一种简单的代换。该字符串可含任意字符,预处理时对它不作任何检查。如有错误,只能在编译已被宏替换的源程序的过程中发现问题。当宏定义在一行中写不下, 需要在下一行继续时,只需在最后一个字符后紧接着加一个反斜线”\" 。扩展阅读:反斜线可能引发的bug宏定义不是语句,在行末不必加分号,如加上分号则连分号一起被置换宏名在源程序中若用引号括起来, 则预处理程序不对其作宏替换,例如printf函数的参数中,双引号内的宏名不会被替换
宏定义允许嵌套, 即在宏定义的字符串中可使用已经定义的宏名,并且在宏替换时由预处理程序层层代换。
2023-08-20
C语言程序设计题库 第三章:标准设备的输入输出
为什么需要标准输入输出?从上边的计算机内部的存储我们可以发现一个问题:不论我们输入的是数字,字符还是字符串,在计算机的内部存储的都是0/1串。这个对于存储的时候是非常方便的,对吧。但是问题来了,我们取这些数据的时候怎么取呢,他在计算机内部都是0与1,那我们的存大写字母A进去之后,要怎么样才能取出A呢?以及其他类型的数据要怎么样才能存取正常呢?当然,这就需要格式化输入输出了。
什么是格式化输入输出,根据以上的分析我们可以得出:不论什么类型的数据,在计算机中存储都是0/1串。存的时候我们需要将原始数据转换为0/1串进行存储。取的时候自然也需要将0/1串转换为原始格式的数据了。因此,输入 以及 输出 的时候我们都要指定当前的数据是什么类型。只有指定了输入是什么类型之后,C语言编译器才会知道当前数据是什么类型,然后根据类型去转换为0/1串(比如:是数字的话直接转为二进制进行存储,是字符的话根据ascii找到对应的数字,再去转换为二进制)。当指定了输出是什么类型的时候,C语言编译器才知道把从计算机存储器中得到的0/1串转换成什
2023-08-10
C语言程序设计题库 第二章:数据类型、运算符和表达式
整型常量的类型:一、整型常量的值在-32768~+32767范围内,编译器认为是int类型。二、整型常量的值超过上述范围,而在-2147483648 ~ +2147483647范围内,编译器认为是long类型。三、当系统定义short int与int占内存长度相同,则两种类型常量均可以赋给 int和short int型变量。四、在整型常量后面加大写L或小写l,则告诉编译器,把该整型常量作为long类型处理。例:123L、0L。五、在整型常量后面加u,则按无符号整型方式存放,负数转换成补码再按无符号整型方式存放。
浮点型数据
一、浮点型常量的表示方法
1.浮点数(float)又称为实数(real)
2.两种表示方法:
*十进制小数形式:必须有小数点
如 0.123 、.123 、123.0 、0.0 、123.
*指数形式:e或E之前后必须有数字;指数必须为整数
如 123.456e0、12.3456e1 、1.23456e2 、
0.123456e3 、0.0123456e4 等
二、规范化指数形式 6.28e-2 表示 6.28× 10 -2
*只有一位非零整数的指数形式
2023-08-09
C语言程序设计题库 第一章:C语言概述
C语言是一种计算机程序设计语言,它既具有高级语言的特点。又具有汇编语言的特点。它由美国贝尔实验室的Dennis M. Ritchie于1972年推出。之后C语言先后被移植到大、中、小及微型机上,它即能够作为工作系统设计语言,编写系统应用程序。也能够作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛。具备非常强的数据处理能力,适于编写系统软件、三维、二维图形和动画,详细应用比如单片机以及嵌入式系统开发。C语言是一种通用的、过程式的编程语言。广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序猿中备受青睐。近期25年是使用最为广泛的编程语言。在操作系统和系统使用程序以及须要对硬件进行操作的场合,用C语言明显优于其他高级语言。C语言的设计影响了很多后来的编程语言。比如C++、Objective-C、Java、C#等。二十世纪八十年代。为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C。作为C语言的标准。二十世纪八十年代至今的有关程序开发工具。
2023-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人