2025年9月计算机二级C语言程序设计——选择题打卡Day8

备考计算机二级 C 语言 程序设计考试,选择题是不容忽视的重要部分。

今天为大家带来 10 道选择题,聚焦文件的打开、读写等操作,助力掌握数据持久化技能。

1、以下关于文件指针的叙述中,正确的是( )
A. 文件指针是指向文件缓冲区的指针
B. 文件指针就是文件的路径
C. 一个文件只能有一个文件指针
D. 文件指针的值是文件名

答案:A

分析:文件指针指向文件缓冲区(A 正确);与路径、文件名无关(B、D 错误);一个文件可被多个指针指向(C 错误)。

2、有以下程序

#include <stdio.h>
main()
{
    FILE *fp;
    int i, a[6] = {1,2,3,4,5,6};
    fp = fopen("data.dat", "w");
    fprintf(fp, "%d%d%d", a[0], a[1], a[2]);
    fprintf(fp, "%d%d%d", a[3], a[4], a[5]);
    fclose(fp);
    fp = fopen("data.dat", "r");
    fscanf(fp, "%d", &i);
    fclose(fp);
    printf("%d\n", i);
}

程序运行后的输出结果是( )
A. 123456
B. 1
C. 123
D. 6

答案:A

分析:文件中写入 “123456”,fscanf 读取整数时会全部读入,i=123456,输出 A。

3、以下不能实现向文件写入一个字符的函数是( )
A. fputc
B. fprintf
C. fwrite
D. fgets

答案:D

分析:fgets 用于从文件读取字符串(D 错误);fputc 写单个字符,fprintf 可格式化写字符,fwrite 可写字符数据(A、B、C 正确)。

4、有如下程序

#include <stdio.h>
main()
{
    FILE *fp;
    char s[10] = "abcdef";
    fp = fopen("test.txt", "w");
    fwrite(s, sizeof(char), 6, fp);
    fclose(fp);
}

程序执行后,文件 test.txt 的内容是( )
A. abcdef
B. a
C. 6
D. 不确定

答案:A

分析:fwrite 向文件写入 6 个字符 “abcdef”,故文件内容为 A。

5、以下关于 fclose 函数的叙述中,正确的是( )
A. fclose 函数关闭文件后,文件指针变得无效
B. fclose 函数关闭文件后,仍可通过文件指针读写文件
C. 一个文件只能调用一次 fclose 函数
D. fclose 函数不需要传入文件指针参数

答案:A

分析:fclose 关闭文件后,指针无效(A 正确,B 错误);多次关闭可能出错(C 错误);需要传入文件指针(D 错误)。

6、有以下程序

#include <stdio.h>
main()
{
    FILE *fp;
    int i, n=0;
    fp = fopen("num.txt", "r");
    while(fscanf(fp, "%d", &i)!=EOF)
        n++;
    fclose(fp);
    printf("%d\n", n);
}

若 num.txt 文件中内容为 “1 2 3 4 5”,程序运行后的输出结果是( )
A. 0
B. 5
C. 1
D. 不确定

答案:B

分析:循环读取文件中的整数,共 5 个,n 累加为 5,输出 B。

7、以下打开文件的方式中,能实现创建一个新文件并只允许写入的是( )
A. “r”
B. “w”
C. “r+”
D. “a”

答案:B

分析:“w” 方式打开文件,若文件不存在则创建,只允许写入(B 正确);“r” 只读,“r+” 读写,“a” 追加写入(A、C、D 错误)。

8、有如下程序

#include <stdio.h>
main()
{
    FILE *fp;
    fp = fopen("file.txt", "w");
    fprintf(fp, "%s", "computer");
    fclose(fp);
}

程序执行后,文件 file.txt 的长度是( )
A. 8 字节
B. 9 字节
C. 0 字节
D. 不确定

答案:A

分析:写入字符串 “computer”(8 个字符),文件长度为 8 字节(不含 ‘\0’),输出 A。

9、以下关于 fseek 函数的叙述中,正确的是( )
A. fseek 函数用于改变文件的读写位置
B. fseek 函数只能用于文本文件
C. fseek 函数的偏移量必须是正数
D. fseek 函数不需要文件指针参数

答案:A

分析:fseek 用于移动文件指针(A 正确);可用于二进制文件(B 错误);偏移量可正可负(C 错误);需要文件指针(D 错误)。

10、有以下程序

#include <stdio.h>
main()
{
    FILE *fp;
    int a=1, b=2, c=3;
    fp = fopen("data.dat", "wb");
    fwrite(&a, sizeof(int), 1, fp);
    fwrite(&b, sizeof(int), 1, fp);
    fwrite(&c, sizeof(int), 1, fp);
    fclose(fp);
    fp = fopen("data.dat", "rb");
    fseek(fp, sizeof(int), SEEK_SET);
    fread(&a, sizeof(int), 1, fp);
    fclose(fp);
    printf("%d\n", a);
}

程序运行后的输出结果是( )
A. 1
B. 2
C. 3
D. 0

答案:B

分析:文件中依次写入 1、2、3,fseek 移动到第二个整数位置,读取到 b 的值 2,输出 B。

希望这 10 道题能帮助大家对计算机二级 C 语言的知识点有更深入的理解和掌握。如果想要获取完整版 PDF(含二级更多题目题库)

夸克网盘分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值