1. C语言以二进制方式打开一个文件的方法是?( )
A.FILE* f = fwrite("test.bin", "b");
B.FILE* f = fopenb("test.bin", "w");
C.FILE* f = fopen("test.bin", "wb");
D.FILE* f = fwriteb("test.bin");
//答案:C
//A - 没有b这种模式
//B - 文本形式打开,且函数错误
//D - 函数错误,且参数不全
2. 关于fopen函数说法不正确的是:( )
A.fopen打开文件的方式是"r",如果文件不存在,则打开文件失败
B.fopen打开文件的方式是"w",如果文件不存在,则创建该文件,打开成功
C.fopen函数的返回值无需判断
D.fopen打开的文件需要fclose来关闭
答案:C - 如果打开失败则返回空指针,不能对空指针进行读写操作
3. 下列关于文件名及路径的说法中错误的是:( )
A.文件名中有一些禁止使用的字符
B.文件名中一定包含后缀名
C.文件的后缀名决定了一个文件的默认打开方式
D.文件路径指的是从盘符到该文件所经历的路径中各符号名的集合
答案:B - 不一定要包含。
A - 禁止使用的符号 \/:*<>|
4. C语言中关于文件读写函数说法不正确的是:( )
A.fgetc是适用于所有输入流字符输入函数
B.getchar也是适用于所有流的字符输入函数
C.fputs是适用于所有输出流的文本行输出函数
D.fread是适用于文件输入流的二进制输入函数
答案:B - 只适用于标准输入流
5. 下面程序的功能是什么 ? ( )
#include <stdio.h>
int main()
{
long num = 0;
FILE* fp = NULL;
if ((fp = fopen("fname.dat", "r")) == NULL)
{
printf("Can’t open the file!");
exit(0);
}
while (fgetc(fp) != EOF)
{
num++;
}
printf("num=%d\n", num);
fclose(fp);
return 0;
}
//A.拷贝文件
//B.统计文件的字符数
//C.统计文件的单词数
//D.统计文件的行数
//答案:B
6. 下面说法不正确的是:( )
A.scanf和printf是针对标准输入、输出流的格式化输入、输出语句
B.fscanf和fprintf是针对所有输入、输出流的格式化输入、输出语句
C.sscanf是从字符串中读取格式化的数据
D.sprintf是把格式化的数据写到输出流中
答案:D - sprintf是把格式化数据转换成字符串
7. 关于feof函数描述不正确的是:( )
A.feof函数是用来判断文件是否读取结束的
B.feof函数是在文件读取结束的时候,检测是否是因为遇到了文件结束标志EOF,而读取结束
C.读取文本判断是否结束时,fgetc看返回值是否为EOF, fgets看返回值是否为NULL
D.二进制文件判断读取结束,看实际读取个数是否小于要求读取个数
答案:A - 正确解释是B选项