内容正文:
编写说明:《计算机应用考纲百套卷》依据湖南省《计算机应用类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,共62份,第二部分是常考题训练卷,共18份,第三个部分是专业综合训练卷,参考历年计算机应用类专业真题试卷,编写了20份。
本试卷是《计算机应用考纲百套卷》的第80卷,是第二部分常考题训练卷,根据考纲进行解读,本试卷的知识要点如下所示:
①位运算。②顺序文件、随机文件的概念及文件访问的编程方法。
湖南省《计算机应用考纲百套卷》
《计算机编程语言—C语言》
第80卷
常考题训练卷
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共20小题,每小题3分,合计60分)
1.若执行fopen函数时发生错误,则函数的返回值是( )
A.0 B.1 C.EOF D.地址值
2.使用fopen函数打开一个新的二进制文件,要求该文件既能读也能写,则文件打开方式的字符串应该是( )
A. "ab+" B. "wb+" C. "rb+" D. "ab"
3.若要打开C盘上的user子目录下名为“abc.txt”的文本文件进行读、写操作,下列符合此要求的函数调用是( )
A. fopen("C:\user\abc.txt","r")
B. fopen("C:\\user\\abc.txt","r+")
C. fopen("C:\user\abc.txt","rb")
D. fopen("C:\\user\\abc.txt","w")
4.若fp已经正确定义并指向某一个文件,当没有遇到该文件结束标志时,函数feo(fp)的值为( )
A.-1 B.0 C.1 D.非零值
5. 函数调用语句“fseek(fp,-20L,2);”的含义是( )
A. 将文件位置指针移到距离文件头20个字节处
B. 将文件位置指针从当前位置向后移动20个字节
C. 将文件位置指针从文件末尾处后退20个字节
D. 将文件位置指针移到距离当前位置20个字节处
6. 在执行 fopen 函数时,ferror 函数的初值是( )
A. TURE B.-1 C.1 D.0
7. 若 fp是指向某文件的指针,且已读到文件末尾,则库函数 feof(fp)的返回值是( )
A. EOF B.0 C.1 D.-1
8. 若要打开A盘上 user子目录下名为abe.txt的文本文件,并进行读、写操作.则下列符合此要求的函数调用是( )
A. fopen("A:\user\abc.txt","rb")
B. fopen("A:\\user\\abc.txt","r+")
C. fopen("A:\user\abc,txt","rw")
D. fopen("A:\\user\\abc,txt","w")
9. 在C程序中,可以把整型数以内存中的二进制形式存放到文件中的函数是( )
A.fprintf函数 B.fread函数 C.fwrite函数 D.fputs函数
10. .函数调用语句“fputs(str,fp);"的正确功能是( )
A.把str所指的字符串,包括最后的'\0’,输出到fp所指的文件中
B.把 str 所指的字符串输出到fp所指的文件中,最后的'\0’用'
'替换
C.把 str所指的字符串输出到fp所指的文件中,但不输出'\0’
D.把str所指的字符串输出到fp所指的文件中,但不输出最后的'\0',而是由系统自动在字符串最后加字符串结束标志
11. 若以“a+”方式打开一个已存在的文件,则叙述正确的是( )
A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可做添加和读操作
B.文件打开时,原有文件内容不被删除,位置指针移到文件开头,可做重写和读操作
C.文件打开时,原有文件内容被删除,只可做写操作
D.以上都不正确
12. 已知函数的调用形式“fread( buffer ,size,count,fp);",其中 buffer 代表的是( )
A.一个整型变量,代表要读人的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,指向要写人数据的存放地址
D.一个存储区,存放要读的数据项
13. fwrite函数的一般调用形式是( )
A. fwrite(buffer,count,size,fp);
B.fwrite(fp,size,count,buffer);
C.fwrite(fp,count,size,buffer);
D.fwrite(buffer,size,count,(p);
14. 设有以下结构体类型, 并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘fp所指文件中,则不正确的形式是( )
struct st{ char name[10];int num; float s[4]; } student[50];
A.fwrite(student,sizeof(struct st),50,fp);
B.fwrite(student,50*sizeof(struct st),1,fp);
C.fwrite(student,25*sizeof( struct st),25,fp);
D.for(i=0;i<50;i++)
fwrite( student+i,sizeof(struct st),1,fp);
15. fseek 函数的正确调用形式是( )
A.fseek(文件类型指针,起始点,位移量);
B.fseek(fp,位移量,起始点);
C.fseek(位移量,起始点,fp);
D.fseek(起始点,位移量,文件类型指针);
16. 下列关于 C语言数据文件的说法中,正确的是( )
A.文件由 ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
17. 下列说法中,不正确的是( )
A.C语言中,文本文件以ASCII码形式存储数据
B.C语言中,二进制文件的访问速度比文本文件快
C.C语言中,随机读写方式不适用于文本文件
D.C语言中,顺序读写方式不适用于二进制文件
18. 以下程序企图把从终端输入的字符输出到名为“abc.txt"的文件中,直到从终端读人字符“#”时结束输入和输出操作,但程序有错,出错的原因是( )
#include <stdio.h> main( )
FILE * fout ; char ch;
fout =fopen( 'abc. txt' ,'w') ;
ch =fgetc(stdin );
while( ch!='#' )
{fputc( ch,fout ) ;
ch=fgetc(stdin);}
fclose ( fout );}
A.函数 fopen 调用形式错误 B.输入文件没有关闭
C.函数 fgetc 调用形式错误 D.文件指针 stdin没有定义
19. 下列说法中,错误的是( )
A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B.在程序结束时,应当用fclose函数关闭已打开的文件
C.在利用 fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读人数据
D.不可以用 FILE定义指向二进制文件的文件指针
20.执行以下程序的输出结果是( )
main()
{int x=69;
printf("%c,%d",x,~x);getch();}
A. E,-70 B.E,70 C.E,71 D.D,-70
二、程序运行结果题(共6小题,每小题4分,共24分)
21.执行以下程序的输出结果是( )(若1.tt 里面存放着“qescxxz”)
#include <stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#define N 100
int main (void)
{FILE * fp;
char str [N+1] ;
if((fp = fopen ("F: (\123.txt", "I"))== NULL)
{puts("文件打开失败");
exit (0) ;}
while (fgets ( str, N,fp)!=NULL){
printf("%s",str);}
fclose (fp) ;
getch();}
22.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
int main (void)
{FILE *fp;
int x[6]={1,3,5,7,9,11},i;
fp=fopen("test.dat","wb");
fwrite(x,sizeof(int),3,fp);
rewind(fp);
fread(x,sizeof(int),3,fp);
for(i=0;i<6;i++)
printf("%d",x[i]);
fclose(fp);getch();}
23.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main ()
{FILE *fp;
int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d
",i);
fprintf(fp,"%d
",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n);
printf("%d%d
",k,n);
fclose(fp);
getch();}
24.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main ()
{FILE *fp;
int i,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++)
fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat","rb");
fseek(fp,-1L*sizeof(long),SEEK_END);
fread(&b,sizeof(int),1,fp);
fclose(fp);
printf("%d
",b);
getch();}
25.下面的程序执行后,文件test.txt中的内容是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
void fun(char fname[],char str[])
{FILE *fp; int i;
fp=fopen(fname, "w");
for(i=0;i<strlen(str); i++)
fputc(str[i],fp);
fclose(fp);}
main()
{ fun("d:\\test.txt","new world");
fun("d:\\test.txt","hello,");
getch();}
26.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
main()
{int str[10]= {1,2,3,4,5,6,7,8,9,0},ptr[10],i;
FILE *fp;
if((fp=fopen("d:\
ew.txt","wb"))==NULL)
{printf("file open failed!
");}
fwrite(str,sizeof(int),10,fp);
fclose(fp);
fp=fopen("d:\
ew.txt","rb") ;
for(i=0;i<10;i++)
{fread(&ptr[i],sizeof(int),1,fp);
printf("%4d",ptr[i]);}
fclose(fp);
getch();}
三、程序填空题(共1小题,每空4分,合计16分)
27.程序填空。以下程序的功能是输入4名学生的姓名、学号、年龄和住址,并存入磁盘文件。
#include <stdio.h>
#include<conio.h>
#include<string.h>
#define SIZE 4
struct student
{char name[10];
int num;
int age;
char addr[15];}stud[SIZE];
void save()
{【1】;
int i;
if((fp=fopen("stu_list","wb"))==NULL)
{printf("cannot open file
");}
for(i=0;i<SIZE;i++)
if(【2】)!=1)
printf("file write error
");}
main()
{int i;
for(i=0;i<SIZE;i++)
scanf("%s,%d,%d,%s",stud[i].name,【3】 ,【4】 ,stud[i].addr);
save();
getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:《计算机应用考纲百套卷》依据湖南省《计算机应用类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,共62份,第二部分是常考题训练卷,共18份,第三个部分是专业综合训练卷,参考历年计算机应用类专业真题试卷,编写了20份。
本试卷是《计算机应用考纲百套卷》的第80卷,是第二部分常考题训练卷,根据考纲进行解读,本试卷的知识要点如下所示:
①位运算。②顺序文件、随机文件的概念及文件访问的编程方法。
湖南省《计算机应用考纲百套卷》
《计算机编程语言—C语言》
第80卷
常考题训练卷
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共20小题,每小题3分,合计60分)
1.若执行fopen函数时发生错误,则函数的返回值是( )
A.0 B.1 C.EOF D.地址值
【答案】A
2.使用fopen函数打开一个新的二进制文件,要求该文件既能读也能写,则文件打开方式的字符串应该是( )
A. "ab+" B. "wb+" C. "rb+" D. "ab"
【答案】B
3.若要打开C盘上的user子目录下名为“abc.txt”的文本文件进行读、写操作,下列符合此要求的函数调用是( )
A. fopen("C:\user\abc.txt","r")
B. fopen("C:\\user\\abc.txt","r+")
C. fopen("C:\user\abc.txt","rb")
D. fopen("C:\\user\\abc.txt","w")
【答案】B
4.若fp已经正确定义并指向某一个文件,当没有遇到该文件结束标志时,函数feo(fp)的值为( )
A.-1 B.0 C.1 D.非零值
【答案】A
5. 函数调用语句“fseek(fp,-20L,2);”的含义是( )
A. 将文件位置指针移到距离文件头20个字节处
B. 将文件位置指针从当前位置向后移动20个字节
C. 将文件位置指针从文件末尾处后退20个字节
D. 将文件位置指针移到距离当前位置20个字节处
【答案】C
6. 在执行 fopen 函数时,ferror 函数的初值是( )
A. TURE B.-1 C.1 D.0
【答案】D
7. 若 fp是指向某文件的指针,且已读到文件末尾,则库函数 feof(fp)的返回值是( )
A. EOF B.0 C.1 D.-1
【答案】D
8. 若要打开A盘上 user子目录下名为abe.txt的文本文件,并进行读、写操作.则下列符合此要求的函数调用是( )
A. fopen("A:\user\abc.txt","rb")
B. fopen("A:\\user\\abc.txt","r+")
C. fopen("A:\user\abc,txt","rw")
D. fopen("A:\\user\\abc,txt","w")
【答案】B
9. 在C程序中,可以把整型数以内存中的二进制形式存放到文件中的函数是( )
A.fprintf函数 B.fread函数 C.fwrite函数 D.fputs函数
【答案】C
10. .函数调用语句“fputs(str,fp);"的正确功能是( )
A.把str所指的字符串,包括最后的'\0’,输出到fp所指的文件中
B.把 str 所指的字符串输出到fp所指的文件中,最后的'\0’用'
'替换
C.把 str所指的字符串输出到fp所指的文件中,但不输出'\0’
D.把str所指的字符串输出到fp所指的文件中,但不输出最后的'\0',而是由系统自动在字符串最后加字符串结束标志
【答案】C
11. 若以“a+”方式打开一个已存在的文件,则叙述正确的是( )
A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可做添加和读操作
B.文件打开时,原有文件内容不被删除,位置指针移到文件开头,可做重写和读操作
C.文件打开时,原有文件内容被删除,只可做写操作
D.以上都不正确
【答案】D
12. 已知函数的调用形式“fread( buffer ,size,count,fp);",其中 buffer 代表的是( )
A.一个整型变量,代表要读人的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,指向要写人数据的存放地址
D.一个存储区,存放要读的数据项
【答案】C
13. fwrite函数的一般调用形式是( )
A. fwrite(buffer,count,size,fp);
B.fwrite(fp,size,count,buffer);
C.fwrite(fp,count,size,buffer);
D.fwrite(buffer,size,count,(p);
【答案】A
14. 设有以下结构体类型, 并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘fp所指文件中,则不正确的形式是( )
struct st{ char name[10];int num; float s[4]; } student[50];
A.fwrite(student,sizeof(struct st),50,fp);
B.fwrite(student,50*sizeof(struct st),1,fp);
C.fwrite(student,25*sizeof( struct st),25,fp);
D.for(i=0;i<50;i++)
fwrite( student+i,sizeof(struct st),1,fp);
【答案】C
15. fseek 函数的正确调用形式是( )
A.fseek(文件类型指针,起始点,位移量);
B.fseek(fp,位移量,起始点);
C.fseek(位移量,起始点,fp);
D.fseek(起始点,位移量,文件类型指针);
【答案】B
16. 下列关于 C语言数据文件的说法中,正确的是( )
A.文件由 ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
【答案】D
17. 下列说法中,不正确的是( )
A.C语言中,文本文件以ASCII码形式存储数据
B.C语言中,二进制文件的访问速度比文本文件快
C.C语言中,随机读写方式不适用于文本文件
D.C语言中,顺序读写方式不适用于二进制文件
【答案】D
18. 以下程序企图把从终端输入的字符输出到名为“abc.txt"的文件中,直到从终端读人字符“#”时结束输入和输出操作,但程序有错,出错的原因是( )
#include <stdio.h> main( )
FILE * fout ; char ch;
fout =fopen( 'abc. txt' ,'w') ;
ch =fgetc(stdin );
while( ch!='#' )
{fputc( ch,fout ) ;
ch=fgetc(stdin);}
fclose ( fout );}
A.函数 fopen 调用形式错误 B.输入文件没有关闭
C.函数 fgetc 调用形式错误 D.文件指针 stdin没有定义
【答案】A
19. 下列说法中,错误的是( )
A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B.在程序结束时,应当用fclose函数关闭已打开的文件
C.在利用 fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读人数据
D.不可以用 FILE定义指向二进制文件的文件指针
【答案】D
20.执行以下程序的输出结果是( )
main()
{int x=69;
printf("%c,%d",x,~x);getch();}
A. E,-70 B.E,70 C.E,71 D.D,-70
【答案】A
二、程序运行结果题(共6小题,每小题4分,共24分)
21.执行以下程序的输出结果是( )(若1.tt 里面存放着“qescxxz”)
#include <stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#define N 100
int main (void)
{FILE * fp;
char str [N+1] ;
if((fp = fopen ("F: (\123.txt", "I"))== NULL)
{puts("文件打开失败");
exit (0) ;}
while (fgets ( str, N,fp)!=NULL){
printf("%s",str);}
fclose (fp) ;
getch();}
【答案】qescxx
22.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
int main (void)
{FILE *fp;
int x[6]={1,3,5,7,9,11},i;
fp=fopen("test.dat","wb");
fwrite(x,sizeof(int),3,fp);
rewind(fp);
fread(x,sizeof(int),3,fp);
for(i=0;i<6;i++)
printf("%d",x[i]);
fclose(fp);getch();}
【答案】1357911
23.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main ()
{FILE *fp;
int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d
",i);
fprintf(fp,"%d
",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n);
printf("%d%d
",k,n);
fclose(fp);
getch();}
【答案】2030
24.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
main ()
{FILE *fp;
int i,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++)
fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat","rb");
fseek(fp,-1L*sizeof(long),SEEK_END);
fread(&b,sizeof(int),1,fp);
fclose(fp);
printf("%d
",b);
getch();}
【答案】4
25.下面的程序执行后,文件test.txt中的内容是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
void fun(char fname[],char str[])
{FILE *fp; int i;
fp=fopen(fname, "w");
for(i=0;i<strlen(str); i++)
fputc(str[i],fp);
fclose(fp);}
main()
{ fun("d:\\test.txt","new world");
fun("d:\\test.txt","hello,");
getch();}
【答案】hello,
26.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
main()
{int str[10]= {1,2,3,4,5,6,7,8,9,0},ptr[10],i;
FILE *fp;
if((fp=fopen("d:\
ew.txt","wb"))==NULL)
{printf("file open failed!
");}
fwrite(str,sizeof(int),10,fp);
fclose(fp);
fp=fopen("d:\
ew.txt","rb") ;
for(i=0;i<10;i++)
{fread(&ptr[i],sizeof(int),1,fp);
printf("%4d",ptr[i]);}
fclose(fp);
getch();}
【答案】 1 2 3 4 5 6 7 8 9 0
三、程序填空题(共1小题,每空4分,合计16分)
27.程序填空。以下程序的功能是输入4名学生的姓名、学号、年龄和住址,并存入磁盘文件。
#include <stdio.h>
#include<conio.h>
#include<string.h>
#define SIZE 4
struct student
{char name[10];
int num;
int age;
char addr[15];}stud[SIZE];
void save()
{【1】;
int i;
if((fp=fopen("stu_list","wb"))==NULL)
{printf("cannot open file
");}
for(i=0;i<SIZE;i++)
if(【2】)!=1)
printf("file write error
");}
main()
{int i;
for(i=0;i<SIZE;i++)
scanf("%s,%d,%d,%s",stud[i].name,【3】 ,【4】 ,stud[i].addr);
save();
getch();}
【答案】①FILE *fp ②fwrite(&stud[i],sizeof(struct student),1,fp
③&stud[i].num ④&stud[i].age
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$