C语言考试要点
计算机二级《C语言》重要考点复习

计算机二级《C语言》重要考点复习计算机二级《C语言》考试是计算机技术和应用水平考试之一,是计算机专业毕业生在求职和晋升方面的必备证书。
对于考生来说,要通过这个考试,除了需要具备 C 语言的基本语法和编程技能外,还需要熟悉考试的考点和出题方向。
本文将针对计算机二级《C语言》考试中的重要考点进行详细说明,以帮助考生更好地进行复习和准备。
一、基本语法和数据类型C语言是一种基于面向过程的编程语言,是一门拥有强大而灵活的编程能力的高级计算机语言。
C语言的基本语法和数据类型占据了计算机二级《C语言》考试的大部分考题。
基本语法包括变量、常量、运算符、控制语句、函数等重要部分。
数据类型包括整数、浮点数、字符、逻辑等常用数据类型。
对于这些内容,考生需要熟练掌握其概念、语法格式和使用方法,以便在考试中理解和分析题目,正确编写程序。
二、数组和指针的应用数组和指针是C语言重要的数据结构,也是计算机二级《C 语言》考试中的重要考点。
数组可以被视为同一类型变量的有序集合,可以用来存储和操作同一类型的多个数据。
指针是一个变量,它存储的是另一个变量的内存地址。
数组和指针在C语言中有着广泛的应用,例如数组和指针的传递、数组和指针的地址运算等。
在考试中,考生需要掌握数组和指针的声明、初始化、访问、指针运算等操作方法,以便能够正确地设计和实现程序。
三、函数和模块化编程函数和模块化编程是C语言的两大核心之一,也是计算机二级《C语言》考试的重要考点。
函数是一种具有特定功能的代码块,可以根据需要调用多次,可以将代码分成多个函数模块,用来实现程序的模块化编程。
在考试中,考生需要掌握函数的定义、参数传递、调用和返回值等基本操作,同时还需要了解函数的递归调用、内存管理和函数指针等高级特性。
四、文件的操作和异常处理文件是C语言中操作数据的重要手段,也是计算机二级《C 语言》考试中的重要考点。
C语言提供了标准的库函数来进行文件的输入和输出操作,包括对文件的读取、写入、关闭等操作。
c语言考试重点归纳总结

C语言期末知识点总结一、概述l C程序由函数构成,其中有且只能有一个main函数。
程序的执行总是从main函数开始,在main 函数中结束。
l Main函数可以书写在程序的任何位置。
l 函数中的语句必须以“;”结束。
l 程序中注释可以出现在任何空格能出现的地方。
l 标识符的命名规则:数字、字母、下划线(数字不能开头),系统保留的关键字不可用用来命名。
l 编译的快捷键。
l 运行的快捷键。
二、数据类型与基本操作l 基本数据类型及其存储字节数:整形、实型、字符型l 整形常量:125, 0125, 0x12afl 实型常量:3.14 ,2.5E+3l 字符型常量:‘a’,“abcd”l 数据类型关键字:l ASCII码是字符编码方式,占一个字节l 小写字母a的ASCII值为97;大写字母A的ASCII值为65,大小写相差32。
l 变量必须先定义后使用。
l 转义字符(见教材30页),在一个字符串中如果出现转义字符,按照一个字符来计算,如“abcd\101ef\n”,统计结果为8个字符。
此处要注意“\101”是一个字符,101是八进制数。
在例如“abcd\181ef\n”,统计结果为10个字符。
因为八进制中没有数码8,所以\1为一个字符,8,1为两个字符。
l \0是字符串结束的标记,其ASCII码值为0。
l 只有字符型变量,没有字符串型变量,字符串用字符数组来存储。
l 算术运算符:+, -, *, /, %。
其中%(求余)要求参加运算的数据均为整数;除法(/):如果参加运算的数都是整数,商为整数,小数丢弃。
l 自加++、自减--运算:只能用于变量,不能用于常量。
l 赋值:=,一个等号表示赋值。
将=右边的数据赋值给左边的变量,左边必须是变量。
复合的赋值运算:+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=。
l 关系运算:> ,< ,>= ,<= ,= = ,!= 。
C语言最重要的知识点复习资料(认真整理)

总体上必须清楚的:1)程序结构是三种:顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节= 八个位。
5)一定要记住二进制如何划成十进制.概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个.3、在函数中不可以再定义函数.4、算法的是一定要有输出的,他可以没有输入.5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低.第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线.第一个为数字就错了。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:2.333e—1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
3)字符数据的合法形式::'1’ 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
’0’ 的ASCII数值表示为48,’a’ 的ASCII数值是97,'A'的ASCII 数值是65。
4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题.掌握整型一般是两个字节,字符型是一个字节,双精度一般是4个字节就可以了.5)转义字符的考查:在程序中int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在.在程序中int a = 06d,是一个八进制的形式.在转义字符中,’\x6d’ 才是合法的,0不能写,并且x是小写。
计算机等级考试二级C语言考点分析

C语言程序设计一、C程序的结构1.C程序的构成,main()函数和其他函数。
2.头文件,数据说明,函数的开始和结束标志。
3.源程序的书写格式。
4.C语言的风格。
二、数据类型、运算符和表达式1.C语言的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。
2.C语言的运算符的种类和功能,运算优先级和结合性。
3.不同类型数据间的转换(自动转换与强制转换)与运算。
4.C语言的表达式(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
三、程序设计初步1.C语言的语句:表达式语句,空语句,复合语句。
2.数据的输入/输出,输入/输出函数的使用。
3、选择结构程序设计(1)用if语句实现选择结构。
(2)用switch语句实现多分支选择结构。
(3)选择结构的嵌套。
4.循环结构程序设计(1)while和do-while循环结构。
(2)for循环结构。
(3)break语句和continue语句。
(4)循环嵌套。
5.编译预处理(1)宏定义:不带参数的宏定义;带参数的宏定义。
(2)文件包含命令。
四、数组1.数组的含义和存储特点。
2.一维数组和二维数组的定义、初始化:数组元素的引用。
3.字符串与字符数组:常用的字符串处理函数。
五、函数1.C语言库函数的调用。
2.函数的定义与声明。
4.函数的类型与返回值。
5.函数的形式参数与实在参数,参数值的传递。
6.函数的正确调用,嵌套调用与递归调用。
7.局部变量和全局变量。
8.变量的存储类型,变量的作用域和生存期。
六、指针1.变量及数组元素的地址,指针与地址运算符,指针与指针变量。
2.指针变量的声明、赋值,通过指针变量来引用所指变量的值。
3.数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。
通过指针引用以上各类型数据。
4.用指针作函数的参数。
5.返回指针值的函数。
6.指针数组,指向指针的指针。
7.main函数的命令行参数;有参main函数的程序运行。
C语言考试重点

1 设x 为int 型变量,请写出描述“x 是偶数”的表达式是_x%2==0_确定且有限的步骤_。
2 已知scanf("a=%d,b=%d,c=%d"&a,&b,&c);,若从键盘输入2、3、4 三个数分别作为变量a、b、c 的值则正确的输入形式是_a=2,b=3,c=4_a=2,b=3,c=4_。
3 设有语句int a=3;,则执行了语句a+=a-=a*a 后,变量a 的值是_-12__。
4 以下程序的输出结果是_10。
main() { int a=-10,b=-3; printf("%d\u005cn"-a++); printf("%d\u005cn"-a+b); }5 以下程序的输出结果是-14。
main() { char c;6以下程序段(n所赋的是八进制数)执行后输出结果是32767.32767。
9字符串\\name\\\101ddress\b\xaf的长度为:15。
二填空题(每题3 分,共30 分)1 以下程序运行后的输出结果是9.10。
#include main() { int i=010 , j=10; printf("%d,%d\u005cn"++i,j--); }2 以下程序运行后的输出结果是000。
#include main() { printf("%d%d%d\u005cn"'\0','\0','\0'); }3 以下程序运行后的输出结果是i=11,j=15,k=33。
main() { int i=5,j,k; j=i+++i+++i++; k=(++i)+(++i)+(++i); printf("i=%5d j=%5d\u005cnk=%5d\u005cn"i,j,k); }4 下面的程序运行时从键盘上输入9876543210<回车>,程序的输出结果是a=98。
计算机二级C语言考点盘点

计算机二级C语言考点盘点计算机二级C语言考点盘点计算机二级C语言考试是全国计算机等级考试中的一项技能考试,考试内容主要包括C语言程序设计基础知识、C语言程序设计能力等方面,是考生们学习和掌握C语言编程技能的重要考核标准。
下面将对计算机二级C语言考试的各个考点进行盘点,以供考生们参考复习。
一、C语言基础知识C语言基础知识是计算机二级C语言考试的基础,包括数据类型、运算符、控制语句、数组、字符串、结构体等方面。
1.数据类型:考试中常考的数据类型有int、float、char、double等,其存储长度、取值范围、默认值、表示方式等要点需要考生掌握。
2.运算符:算术运算符、逻辑运算符、位运算符、赋值运算符等常见运算符都需要考生熟练掌握,同时也需要了解运算优先级及结合性。
3.控制语句:if语句、for语句、while语句、switch语句等控制语句都是考试中常考的内容,考生需要了解语法结构及使用方法。
4.数组:数组是C语言编程中常用的数据结构,考试中经常考察数组的定义、初始化、访问、排序等内容。
5.字符串:字符串是C语言中的一种数据类型,字符串的定义、初始化、取值、比较等内容经常出现在考试中。
6.结构体:结构体是一种自定义类型,由多个数据类型组成,考试中经常考察结构体的定义、初始化、访问、结构体数组等内容。
二、指针和动态内存分配指针和动态内存分配是C语言编程中较为高级的内容,但也是考试中必考的考点,包括指针的定义、指针运算、指针数组、函数指针等内容,同时也需要熟练掌握动态内存分配的相关函数malloc()、calloc()、realloc()、free()等使用方法。
三、函数和文件操作函数是C语言编程中的重要组成部分,函数的定义、调用、递归、指针参数、结构体参数等内容都需要考生牢记。
文件操作也是C语言编程中常用的功能,文件打开、关闭、读取、写入、移动文件指针等操作都需要考生掌握。
四、综合程序设计综合程序设计是考试中难度较大的部分,主要考察考生综合运用以上知识点,设计出合理、优美的程序。
C语言考试重点总结

第三章总结1.字符型常量用单引号,如:‘a’;字符串用双引号,如“a”,“ab”。
2.命令行定义赋值的方法:#define PRICE 30 注意没有分号。
3.习惯上,符号常量名用大写,变量名用小写,以示区别。
4.C语言规定标识符只能有字母、数字、下划线3种字符组成,且第一个字符必须是字母或下划线。
5.C语言区分大小写,变量名只有前面8个字符是有效的。
6.求负数的补码的方法是:将该数的绝对值的二进制形式,按位取反再加1。
7.int a,则a的数值范围是-32768~32767;unsigned int b,则b的取值范围是0-65535。
8.浮点型指数形式:123e3或123E3都代表123×103,注意e后面的指数必须是整数。
一个浮点型变量只能保证有效数字是7位。
9.转义字符及其作用:\n换行,到下一行开始\t水平制表Tab\b退格\r回车,到本行开始\f换页,到下页开头\’代表一个单引号字符10.每一个小写字母比它对应的大写字母的ASC码大32。
11.char c;c=’a’; 正确char c;c=”ab”;错误不能把一个字符串常量赋给一个字符变量。
12. 高doube float 各类数值型数据间的混合运算longUnsigned低Int char、short13.强制类型转换:(int)(x+y) 注意:强制类型转换只是得到了中间值,原来的变量类型并未发生变化。
14.自增运算符(++)和自减运算符只能用于变量,而不能用于常量或表达式,如5++或(a+b)++ 都是不合法的。
15. 符号和“++”同优先级,如-(i++) 是先用i的原值3加上符号输出-3,再对i加1.16.int i=3.14也是合法的,浮点型数据去掉小数点后面的=整型,最终i=3.17.逗号表达式(顺序求值)的一般形式可以扩展为:表达式1,表达式2,…,表达式n,最终的值为n。
第四章总结1.控制语句: 条件语句:if()…else…循环语句:for()…while()…do…while()结束本次循环语句continue 中止执行switch或循环语句:break多分支选择语句switch 转向语句:goto 从函数返回语句return2.任何表达式都可以加上分号而成为语句如i++;3.复合语句最后一个语句的最后一个分号不能忽略。
c语言理论考试要点

c语言理论考试要点C语言作为一门广泛使用的编程语言,是计算机科学与技术专业重要的基础课程之一。
在C语言的学习中,理论考试是一种常见的评估方式。
下面将介绍C语言理论考试的要点,帮助读者准备和应对这种考试形式。
一、基础知识部分C语言理论考试中的基础知识部分是考察考生对C语言基本概念、语法结构、数据类型等方面的了解和掌握情况。
以下是该部分的要点:1. 了解C语言的起源和发展历程;2. 熟悉C语言的关键字和保留字,如if、for、int等;3. 掌握C语言的基本数据类型,包括整型、浮点型、字符型等;4. 理解C语言的运算符,包括算术运算符、关系运算符、逻辑运算符等;5. 熟悉C语言的控制语句,包括条件语句、循环语句等;6. 理解C语言的函数和数组的概念和使用方法。
二、程序设计部分C语言理论考试中的程序设计部分是考察考生对C语言程序设计的能力和思维方式的了解和掌握情况。
以下是该部分的要点:1. 掌握C语言的基本程序结构,包括头文件、函数定义、函数调用等;2. 理解C语言的变量和常量的声明和使用方式;3. 熟悉C语言的运算符优先级和表达式的理解;4. 熟悉C语言的数组和指针的使用,包括数组的定义和操作、指针的定义和使用等;5. 理解C语言的字符串处理函数和库函数的使用,如strcpy、strlen 等;6. 熟悉C语言的文件操作,包括文件的打开、读写和关闭等函数的使用。
三、算法与数据结构部分C语言理论考试中的算法与数据结构部分是考察考生对常见算法和数据结构的了解和应用能力。
以下是该部分的要点:1. 理解算法的概念和基本特性,包括正确性、可读性、高效性等;2. 熟悉常见的排序算法,如冒泡排序、插入排序、选择排序等;3. 掌握常见的查找算法,如线性查找、二分查找等;4. 了解栈和队列的概念和实现方式;5. 理解链表的概念和实现方式,包括单链表、双链表等;6. 了解二叉树的概念和基本操作,如遍历、查找等。
四、编程风格与调试技巧部分C语言理论考试中的编程风格与调试技巧部分是考察考生对编程规范和调试方法的理解和掌握情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言考试要点颜色说明:红色为我认为的重点;图片和红色黄底色的为老师PPT中的重点(也就是重重点);黑色字为定义考试题型(大致如下):选择题20道每题1分填空题10道20空每空1分判断题20道每题1分程序分析题6道每题4分简答题8道每题2分第1章C语言概述1.3 C语言程序特点C语言是一种简洁明了,功能强大,移植性好的结构化程序设计语言。
理解C语言程序是函数串一个程序可以由一个或多个文件组成,文件由函数组成,一个文件可以由一个或多个函数组成。
1.4 标准设备的I/O键盘输入函数:getchar()、gets()、scanf()获取一个字符的读写getchar()获取一个字符串的读写gets()标准格式输入函数scanf()屏幕输出函数:putchar()、puts()、printf()输出一个字符的写函数putchar()输出一个字符串的写函数puts()标准格式输出函数printf()特别是scanf()函数和printf()函数的功能和用法scanf()功能:从键盘上按所指定的格式读取数据,并用数据给指定的变量赋值。
格式:int scanf(“<控制串>”,<参数表>)例如:scanf(“%d%d”,&a,&b);printf()功能:将该函数参数表中的若干个表达式的值,按其指定的格式和顺序逐一显示在屏幕上。
格式:int printf(“<控制串>”,<参数表>)第2章常量和变量2.2 类型(数据类型和存储类)变量和函数具有存储类数据类型的种类:基本数据类型和构造数据类型存储类的种类、不同存储类变量的特点(P34表2.3)2.3 常量(简单理解为程序运行过程中,不能被改变的量,也就是说常量的值不变)2.4 变量(简单来说就是值可以改变的量,也就是说变量的值可被改变)变量三要素:名字、类型和值的具体规则变量的定义格式和作用域1.变量的定义格式:在C语言中,要求对所有用到的变量,必须先定义、后使用;且称在定义变量的同时进行赋初值的操作为变量初始化。
(1)变量定义的一般格式[存储类型] 数据类型变量名[, 变量名2……];例如,float radius, length, area;(2)变量初始化的一般格式[存储类型] 数据类型变量名[=初值][, 变量名2[=初值2]……];例如,float radius=2.5, length, area;2.作用域:标识符的作用域规则:(1)对大多数标识符来讲,定义和说明是一回事,而对于外部类变量和函数来讲,定义和说明是两回事(2)不同的标识符具有不同的范围:整个程序:外部类变量和外部函数一个文件:外部静态类变量和宏名函数体:自动类变量和内部静态类变量及语句标号程序段内:自动类变量和内部静态类变量(3)作用域是标示符可见的范围,可见指可以访问,可以进行存取操作;不可见指不可以访问,不能进行任何操作变量的值有两种:变量值,变量的地址值第3章运算符和表达式3.1 运算符功能:算术、关系、逻辑、三目、赋值以及单目运算符++、--、*、&等++(--)增(减)1运算符,优先级别为2*取内容运算符,优先级别为2&&逻辑与运算符,优先级别为113.2 运算符的优先级和结合性++ --只能作用在变量上,例如:++(a+b)是错的3.3 表达式的值和类型逻辑表达式求值、赋值表达式求值、条件表达式求值第4章 预处理功能简单宏定义命令定义符号常量文件包含命令的应用,在程序分析题目中第5章 语句复合语句是由两条或两条以上的语句用花括号({})括起来的语句序列分程序是指含有说明语句的复合语句5.2 分支语句if、switch(跳出switch语句时使用break)5.3 循环语句while、do-while、for5.4 转向语句break(break不能用于循环语句和switch语句之外的任何其它语句之中。
)continue(continue只能用在循环体中)掌握上述语句的功能、格式及用法,用于程序分析题目总结:掌握3种循环语句和2种开关语句的特点和用法。
第6章数组定义数组时必须指定数组名,数组类型6.1 一、二维数组的定义格式及数组元素的下标表示方法数组属于构造类型。
数组:是具有一定顺序关系的若干数目固定、类型相同变量构成的有序集合元素:组成数组的变量,用数组名和下标确定,每个数组元素都具有该数组的类型6.2 数组的初始化和赋值数组初始化使用初始值表数组赋值是对数组的各个元素赋值数组的运算是指数组各个元素的运算6.3 字符数组和字符串字符数组可以存放字符,也可以存放字符串。
可以直接用字符串常量给字符数组初始化第7章指针*p=a等价于*p=&a[0]7.1 、7.2 指针的概念指针的定义格式、初始化和运算给指针赋值要求类型相同和级别一致的地址值掌握指针的值和类型指针仅有4种运算一个指针可以加或减去一个整型数的运算在一定条件下,两个指针可以进行相减运算在一定条件下,两个指针可以进行比较运算7.3 一、二维数组元素的指针表示一维数组指针表示:已知int a[5]; 数组a的各个元素地址值和元素值的指针表示为a+i 和*(a+i)二维数组指针表示:已知int b[5][3]; 数组b的各个元素的地址值和元素值的指针表示为*(b+i)+j 和*(*(b+i)+j)例题:8_000.c7.4 指向一维数组的指针和指针数组掌握它们在定义上和应用上的区别指向数组元素的指针和指向数组的指针的区别7.5 字符指针的特点第8章函数8.1、函数定义格式分为函数头和函数体函数说明两种:简单说明法、原型说明法8.2 函数的概念函数的定义格式函数的说明方法函数的形参和实参函数的返回值8.3 函数的调用传值、传址调用的方法及特点8.4 一级指针作函数参数实现传址调用第9章结构9.1、9.2 结构变量的概念结构是一种构造数据类型,具有结构类型的变量叫结构变量结构类型和结构变量的定义格式、结构变量的初始化和赋值及运算结构变量的成员表示方法9.3 结构数组的应用第10章文件操作ppt上面红色标识的部分为重点10.1 文件概念文件指针、标准文件和一般文件10.2 标准文件的读/写函数对一个字符的、对一个字符串的和格式的10.3 一般文件的操作打开/关闭函数读/写函数(对一个字符的、对一个字符串的、对一个数据块的和格式的)、文本文件及二进制文件的操作一个文件指针指向某个文件就意味着该指针指向该文件的内存缓冲区的首地址一个文件指针指向某个文件就意味着该指针指向该文件的内存缓冲区的首地址输出一个字符的写函数putchar()gets,一个参数用来存放读取字符串的字符数组,键盘读取时以换行符作为结束符fopen函数fgetc()读函数C语言程序分析举例:1#include <stdio.h>void main(){ int x,y,z;x=y=z=1;++x&&--y&&++z;printf("%d,%d,%d\n",x,y,z);--x||++y||++z;printf("%d,%d,%d\n",x,y,z);x=y=z=1;--x&&++y||++z;printf("%d,%d,%d\n",x,y,z);++x||--y&&--z;printf("%d,%d,%d\n",x,y,z); }2void main(){ int i=-1,j=2,k;do{k=++i&&--j;i++;}while(k);printf("%d,%d\n",i,j);}3void main(){int m=1,n=0,i,j;i=j=2;switch(m){case 1: switch(n){case 0: ++i;break;case 1: j++;break;}case 2: i++,j++;break;}printf("%d,%d\n",i,j);}4void main(){char str[]="ABCDEFG";char *p=&str[6];for(;p>=str;p--)printf("%c",*p+1);printf("\n");}5void f1(int *a){int b=3;b*=*a;printf("%d,%d\n",++*a,b); }int f2(){int x=5;f1(&x);return x++;}void main(){int m=5;m+=f2();printf("%d\n",--m);}6#include<stdio.h>#include<string.h>struct month{int number_of_day;char name[10];};void main(){int i;char m[10];struct month months[12] = {{31,"jan"},{28,"feb"},{31,"mar"},{30,"apr"},{31,"may"},{30,"jue"},{31,"jul"},{31,"aug"},{30,"sep"},{31,"oct"},{30,"nov"},{31,"dec"}};printf("Enter month's name(3 characters):");scanf("%s",m);for(i = 0; i < 12; i++){if(strcmp(m,months[i].name) == 0){printf("%s: %d\n",m, months[i].number_of_day);break;}}}#include<stdio.h>#include<stdlib.h>char s[][10]={"if","else","while","break","continue"}; int a[]={3,5,6,6,9};void main(){int i;char s1[5][10];FILE *fp;fp=fopen("file1.txt","w");if(fp==NULL){printf("file cannot be open!\n");exit(1);}for(i=0;i<5;i++){fputs(s[i],fp);}fclose(fp);fp=fopen("file1.txt","r");if(fp==NULL){printf("file cannot be open!\n");exit(2);}for(i=0;i<5;i++)fgets(s1[i],a[i],fp); for(i=0;i<5;i++)printf("%s\n",s1[i]); fclose(fp);}。