二級c語言公共知識點(diǎn)(2)
二級c語言公共知識點(diǎn)
9.知識點(diǎn):fopen()函數(shù)和fclose()函數(shù)
(1)fopen函數(shù)
l 調(diào)用方式:fp=fopen(“file1”,”r”);
l 使用文件方式:如”r”只讀打開一個(gè)文本文;”w”只寫打開或建立一個(gè)文本文件;”a”追加打開一個(gè)文本文件,在文件末尾添加數(shù)據(jù)。
例1:(2011-03-40)設(shè)fp已定義,執(zhí)行語句fp=fopen("file","w");后,以下針對文本文件file操作敘述的選項(xiàng)中正確的是(B)
A)寫操作結(jié)束后可以從頭開始讀 B)只能寫不能讀
C)可以在原有內(nèi)容后追加寫 D)可以隨意讀和寫
【解析】文件打開方式,‘w’只能向該文件寫入,如打開的文件不存在則以指定的文件名建立文件,如存在,則先刪除再重建一個(gè)文件。故選B。
l 若不能實(shí)現(xiàn)打開任務(wù),fopen函數(shù)將帶回一個(gè)空指針值NULL。
例1:(2009-04-13)以下程序用來判斷指定文件是否能正常打開,請?zhí)羁铡?/p>
#include <stdio.h>
main()
{FILE *fp;
if(((fp=fopen(“test.txt”,”r”))== NULL ))
printf(“未能打開文件!\n);
else
printf(“文件打開成功!\n”);
}
【解析】考查文件打開操作。打開文件使用fopen函數(shù),正常打開時(shí)返回指向該文件的文件指針,否則返回值為NULL;題目中當(dāng)if條件表達(dá)式成立時(shí),輸出“未能打開文件!”,故fopen函數(shù)返回值為NULL。正確答案:NULL。
(2)fclose()函數(shù)
l 調(diào)用方式:fclose(fp);
l 順利完成關(guān)閉操作,返回值為0,否則返回EOF(-1)。
10.知識點(diǎn):fputc()函數(shù)和fgetc()函數(shù)
l fgetc()函數(shù)的調(diào)用形式:ch=fgetc(fp);從打開的文件fp中讀取一個(gè)字符。
l fputc()函數(shù)的調(diào)用形式:fputc(ch,fp);將字符輸出到fp所指向的文件中去。
11.知識點(diǎn):fread()函數(shù)和fwrite()函數(shù)
l fread()函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer是一個(gè)指針,size是每個(gè)數(shù)據(jù)塊的字節(jié)數(shù),count是每次讀入數(shù)據(jù)塊的個(gè)數(shù),fp是文件指針。
例1:structstud
{char name[10];
int num;
}stu[40];
假設(shè)學(xué)生的數(shù)據(jù)已存放在磁盤文件中,如何讀入40個(gè)學(xué)生的數(shù)據(jù)?
for(i=0;i<40;i++)
fread( &stu[i] , sizeof(struct stur) ,1,fp);
l fwrite()函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer是輸出數(shù)據(jù)的首地址。
12.知識點(diǎn):fscanf()函數(shù)和fprintf()函數(shù)
l fscanf(文件指針,格式控制字符串,輸入列表);
l fprintf(文件指針,格式控制字符串,輸出列表);
例1:(2011-09-40)有以下程序
#include<stdio.h>
main()
{FILE *fp;
int k,n,i,a[6]={1,2,3,4,5,6};
fp=fopen(“d2.dat”,”w”);
for(i=0;i<6;i++)fprintf(fp,”%d\n”,a[i]);
fclose(fp);
fp=fopen(“d2.dat”,”r”);
for(i=0;i<3;i++) fscanf(fp,”%d%d”,&k,&n);
fclose(fp);
printf(“%d,%d\n”,k,n);
}程序運(yùn)行后的輸出結(jié)果是 (C)
A.1,2 B.3,4 C.5,6 D.123,456
【解析】第一次fp=fopen(“d2.dat”,”w”);以寫方式打開,通過循環(huán)將a數(shù)組全部寫入文件中,并且每行寫一個(gè);第二次fp=fopen(“d2.dat”,”r”); 以寫方式打開,然后通過循環(huán)每次讀取兩個(gè)數(shù)字給k和n,第三次k和n分別得到5和6
例1:(2009-04-40)有以下程序
#include <stdio.h>
main()
{FILE *f;
f=fopen(“filea.txt”,”w”);
fprintf(f,”abc”);
fclose(f);
}若文本文件filea.txt中原有內(nèi)容為:hello,則運(yùn)行以上程序后,文件filea.txt的內(nèi)容為(C)
A)helloabc B)abclo C)abc D)abchello
【解析】程序中定義了一個(gè)文件指針,然后用fopen()函數(shù),以寫的方式打開文件“filea.txt”,并讓指針f指向它,執(zhí)著調(diào)用fprintf()函數(shù),將“abc”寫到指針?biāo)赶虻奈募?。由于filea.txt里原來的內(nèi)容”hello”被”abc”覆蓋掉,所以文件“filea.txt”里,最后的內(nèi)容為”abc”,本題答案選C。
13.知識點(diǎn):fgets()函數(shù)和fputs()函數(shù)
l fgets(str,n,fp);從fp指向的文件輸入n-1個(gè)字符,在最后加一個(gè)’
二級c語言公共知識點(diǎn)(2)
二級c語言公共知識點(diǎn)
9.知識點(diǎn):fopen()函數(shù)和fclose()函數(shù)
(1)fopen函數(shù)
l 調(diào)用方式:fp=fopen(“file1”,”r”);
l 使用文件方式:如”r”只讀打開一個(gè)文本文;”w”只寫打開或建立一個(gè)文本文件;”a”追加打開一個(gè)文本文件,在文件末尾添加數(shù)據(jù)。
例1:(2011-03-40)設(shè)fp已定義,執(zhí)行語句fp=fopen("file","w");后,以下針對文本文件file操作敘述的選項(xiàng)中正確的是(B)
A)寫操作結(jié)束后可以從頭開始讀 B)只能寫不能讀
C)可以在原有內(nèi)容后追加寫 D)可以隨意讀和寫
【解析】文件打開方式,‘w’只能向該文件寫入,如打開的文件不存在則以指定的文件名建立文件,如存在,則先刪除再重建一個(gè)文件。故選B。
l 若不能實(shí)現(xiàn)打開任務(wù),fopen函數(shù)將帶回一個(gè)空指針值NULL。
例1:(2009-04-13)以下程序用來判斷指定文件是否能正常打開,請?zhí)羁铡?/p>
#include <stdio.h>
main()
{FILE *fp;
if(((fp=fopen(“test.txt”,”r”))== NULL ))
printf(“未能打開文件!\n);
else
printf(“文件打開成功!\n”);
}
【解析】考查文件打開操作。打開文件使用fopen函數(shù),正常打開時(shí)返回指向該文件的文件指針,否則返回值為NULL;題目中當(dāng)if條件表達(dá)式成立時(shí),輸出“未能打開文件!”,故fopen函數(shù)返回值為NULL。正確答案:NULL。
(2)fclose()函數(shù)
l 調(diào)用方式:fclose(fp);
l 順利完成關(guān)閉操作,返回值為0,否則返回EOF(-1)。
10.知識點(diǎn):fputc()函數(shù)和fgetc()函數(shù)
l fgetc()函數(shù)的調(diào)用形式:ch=fgetc(fp);從打開的文件fp中讀取一個(gè)字符。
l fputc()函數(shù)的調(diào)用形式:fputc(ch,fp);將字符輸出到fp所指向的文件中去。
11.知識點(diǎn):fread()函數(shù)和fwrite()函數(shù)
l fread()函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer是一個(gè)指針,size是每個(gè)數(shù)據(jù)塊的字節(jié)數(shù),count是每次讀入數(shù)據(jù)塊的個(gè)數(shù),fp是文件指針。
例1:structstud
{char name[10];
int num;
}stu[40];
假設(shè)學(xué)生的數(shù)據(jù)已存放在磁盤文件中,如何讀入40個(gè)學(xué)生的數(shù)據(jù)?
for(i=0;i<40;i++)
fread( &stu[i] , sizeof(struct stur) ,1,fp);
l fwrite()函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer是輸出數(shù)據(jù)的首地址。
12.知識點(diǎn):fscanf()函數(shù)和fprintf()函數(shù)
l fscanf(文件指針,格式控制字符串,輸入列表);
l fprintf(文件指針,格式控制字符串,輸出列表);
例1:(2011-09-40)有以下程序
#include<stdio.h>
main()
{FILE *fp;
int k,n,i,a[6]={1,2,3,4,5,6};
fp=fopen(“d2.dat”,”w”);
for(i=0;i<6;i++)fprintf(fp,”%d\n”,a[i]);
fclose(fp);
fp=fopen(“d2.dat”,”r”);
for(i=0;i<3;i++) fscanf(fp,”%d%d”,&k,&n);
fclose(fp);
printf(“%d,%d\n”,k,n);
}程序運(yùn)行后的輸出結(jié)果是 (C)
A.1,2 B.3,4 C.5,6 D.123,456
【解析】第一次fp=fopen(“d2.dat”,”w”);以寫方式打開,通過循環(huán)將a數(shù)組全部寫入文件中,并且每行寫一個(gè);第二次fp=fopen(“d2.dat”,”r”); 以寫方式打開,然后通過循環(huán)每次讀取兩個(gè)數(shù)字給k和n,第三次k和n分別得到5和6
例1:(2009-04-40)有以下程序
#include <stdio.h>
main()
{FILE *f;
f=fopen(“filea.txt”,”w”);
fprintf(f,”abc”);
fclose(f);
}若文本文件filea.txt中原有內(nèi)容為:hello,則運(yùn)行以上程序后,文件filea.txt的內(nèi)容為(C)
A)helloabc B)abclo C)abc D)abchello
【解析】程序中定義了一個(gè)文件指針,然后用fopen()函數(shù),以寫的方式打開文件“filea.txt”,并讓指針f指向它,執(zhí)著調(diào)用fprintf()函數(shù),將“abc”寫到指針?biāo)赶虻奈募?。由于filea.txt里原來的內(nèi)容”hello”被”abc”覆蓋掉,所以文件“filea.txt”里,最后的內(nèi)容為”abc”,本題答案選C。
13.知識點(diǎn):fgets()函數(shù)和fputs()函數(shù)
l fgets(str,n,fp);從fp指向的文件輸入n-1個(gè)字符,在最后加一個(gè)’\0’,得到字符串共有n個(gè)字符,把它們放到字符數(shù)組str中。
l fputs(“China”,fp);把字符串”China”輸出到fp指向的文件,字符串末尾’\0’不輸出。
(2010-03-40)有以下程序
#include <stdio.h>
main()
{FILE *fp;char str[10];
fp=fopen(“myfile.dat”,”w”);
fputs(“abc”,fp);fclose(fp);
fp=fopen(“myfile,data”,”a+”);
fprintf(fp,”%d”,28);
rewind(fp);
fscanf(fp,”%s”,str);puts(str);
fclose(fp);
}程序運(yùn)行后的輸出結(jié)果是(C)
A)abc B)28c C)abc28 D)因類型不一致而出錯(cuò)
【解析】以“a+”方式打開一個(gè)已存在的文件,原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可作添加和讀操作。fputs(“abc”,fp);把字符串”abc”輸出到fp指向的文件。
14.知識點(diǎn):rewind()函數(shù)
l 調(diào)用形式:rewind(fp);
l 功能:使位置指針重新返回文件的開頭。
15.知識點(diǎn):fseek()函數(shù)
l 功能:改變文件的位置指針
l 調(diào)用形式:fseek(fp,100L,0);將位置指針移到離文件頭100個(gè)字節(jié)處。
l 文件首 SEEK_SET 0 文件當(dāng)前位置 SEEK_CUR 1
文件末尾 SEEK_END 2
16.知識點(diǎn):ftell()函數(shù)
l ftell(fp);
l 功能:得到流式文件中的當(dāng)前位置。
17.知識點(diǎn):feof()函數(shù)
l feof(fp);
l 判斷文件是否結(jié)束,結(jié)束,返回值為1,否則為0。
例1(2011-03-15)以下程序運(yùn)行后的輸出結(jié)果是 【15】 。
main()
{ FILE *fp; int x[6]={1,2,3,4,5,6},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]);
printf("\n");
fclose(fp);
}
答案:123456
【解析】fwrite(x,sizeof(int),3,fp);將數(shù)組內(nèi)的前三個(gè)元素即1,2,3輸出到文件中去,rewind(fp);文件回到開頭,fread(x,sizeof(int),3,fp);將文件的內(nèi)容讀出并存到x數(shù)組的前三個(gè)元素中,把1,2,3寫到數(shù)組的前三個(gè)元素中去,所有數(shù)組中的元素值均沒變。
看過“二級c語言公共知識點(diǎn)“的人還看了:
2.計(jì)算機(jī)二級公共基礎(chǔ)知識試題及答案
l fputs(“China”,fp);把字符串”China”輸出到fp指向的文件,字符串末尾’
二級c語言公共知識點(diǎn)(2)
二級c語言公共知識點(diǎn)
9.知識點(diǎn):fopen()函數(shù)和fclose()函數(shù)
(1)fopen函數(shù)
l 調(diào)用方式:fp=fopen(“file1”,”r”);
l 使用文件方式:如”r”只讀打開一個(gè)文本文;”w”只寫打開或建立一個(gè)文本文件;”a”追加打開一個(gè)文本文件,在文件末尾添加數(shù)據(jù)。
例1:(2011-03-40)設(shè)fp已定義,執(zhí)行語句fp=fopen("file","w");后,以下針對文本文件file操作敘述的選項(xiàng)中正確的是(B)
A)寫操作結(jié)束后可以從頭開始讀 B)只能寫不能讀
C)可以在原有內(nèi)容后追加寫 D)可以隨意讀和寫
【解析】文件打開方式,‘w’只能向該文件寫入,如打開的文件不存在則以指定的文件名建立文件,如存在,則先刪除再重建一個(gè)文件。故選B。
l 若不能實(shí)現(xiàn)打開任務(wù),fopen函數(shù)將帶回一個(gè)空指針值NULL。
例1:(2009-04-13)以下程序用來判斷指定文件是否能正常打開,請?zhí)羁铡?/p>
#include <stdio.h>
main()
{FILE *fp;
if(((fp=fopen(“test.txt”,”r”))== NULL ))
printf(“未能打開文件!\n);
else
printf(“文件打開成功!\n”);
}
【解析】考查文件打開操作。打開文件使用fopen函數(shù),正常打開時(shí)返回指向該文件的文件指針,否則返回值為NULL;題目中當(dāng)if條件表達(dá)式成立時(shí),輸出“未能打開文件!”,故fopen函數(shù)返回值為NULL。正確答案:NULL。
(2)fclose()函數(shù)
l 調(diào)用方式:fclose(fp);
l 順利完成關(guān)閉操作,返回值為0,否則返回EOF(-1)。
10.知識點(diǎn):fputc()函數(shù)和fgetc()函數(shù)
l fgetc()函數(shù)的調(diào)用形式:ch=fgetc(fp);從打開的文件fp中讀取一個(gè)字符。
l fputc()函數(shù)的調(diào)用形式:fputc(ch,fp);將字符輸出到fp所指向的文件中去。
11.知識點(diǎn):fread()函數(shù)和fwrite()函數(shù)
l fread()函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer是一個(gè)指針,size是每個(gè)數(shù)據(jù)塊的字節(jié)數(shù),count是每次讀入數(shù)據(jù)塊的個(gè)數(shù),fp是文件指針。
例1:structstud
{char name[10];
int num;
}stu[40];
假設(shè)學(xué)生的數(shù)據(jù)已存放在磁盤文件中,如何讀入40個(gè)學(xué)生的數(shù)據(jù)?
for(i=0;i<40;i++)
fread( &stu[i] , sizeof(struct stur) ,1,fp);
l fwrite()函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer是輸出數(shù)據(jù)的首地址。
12.知識點(diǎn):fscanf()函數(shù)和fprintf()函數(shù)
l fscanf(文件指針,格式控制字符串,輸入列表);
l fprintf(文件指針,格式控制字符串,輸出列表);
例1:(2011-09-40)有以下程序
#include<stdio.h>
main()
{FILE *fp;
int k,n,i,a[6]={1,2,3,4,5,6};
fp=fopen(“d2.dat”,”w”);
for(i=0;i<6;i++)fprintf(fp,”%d\n”,a[i]);
fclose(fp);
fp=fopen(“d2.dat”,”r”);
for(i=0;i<3;i++) fscanf(fp,”%d%d”,&k,&n);
fclose(fp);
printf(“%d,%d\n”,k,n);
}程序運(yùn)行后的輸出結(jié)果是 (C)
A.1,2 B.3,4 C.5,6 D.123,456
【解析】第一次fp=fopen(“d2.dat”,”w”);以寫方式打開,通過循環(huán)將a數(shù)組全部寫入文件中,并且每行寫一個(gè);第二次fp=fopen(“d2.dat”,”r”); 以寫方式打開,然后通過循環(huán)每次讀取兩個(gè)數(shù)字給k和n,第三次k和n分別得到5和6
例1:(2009-04-40)有以下程序
#include <stdio.h>
main()
{FILE *f;
f=fopen(“filea.txt”,”w”);
fprintf(f,”abc”);
fclose(f);
}若文本文件filea.txt中原有內(nèi)容為:hello,則運(yùn)行以上程序后,文件filea.txt的內(nèi)容為(C)
A)helloabc B)abclo C)abc D)abchello
【解析】程序中定義了一個(gè)文件指針,然后用fopen()函數(shù),以寫的方式打開文件“filea.txt”,并讓指針f指向它,執(zhí)著調(diào)用fprintf()函數(shù),將“abc”寫到指針?biāo)赶虻奈募小S捎趂ilea.txt里原來的內(nèi)容”hello”被”abc”覆蓋掉,所以文件“filea.txt”里,最后的內(nèi)容為”abc”,本題答案選C。
13.知識點(diǎn):fgets()函數(shù)和fputs()函數(shù)
l fgets(str,n,fp);從fp指向的文件輸入n-1個(gè)字符,在最后加一個(gè)’\0’,得到字符串共有n個(gè)字符,把它們放到字符數(shù)組str中。
l fputs(“China”,fp);把字符串”China”輸出到fp指向的文件,字符串末尾’\0’不輸出。
(2010-03-40)有以下程序
#include <stdio.h>
main()
{FILE *fp;char str[10];
fp=fopen(“myfile.dat”,”w”);
fputs(“abc”,fp);fclose(fp);
fp=fopen(“myfile,data”,”a+”);
fprintf(fp,”%d”,28);
rewind(fp);
fscanf(fp,”%s”,str);puts(str);
fclose(fp);
}程序運(yùn)行后的輸出結(jié)果是(C)
A)abc B)28c C)abc28 D)因類型不一致而出錯(cuò)
【解析】以“a+”方式打開一個(gè)已存在的文件,原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可作添加和讀操作。fputs(“abc”,fp);把字符串”abc”輸出到fp指向的文件。
14.知識點(diǎn):rewind()函數(shù)
l 調(diào)用形式:rewind(fp);
l 功能:使位置指針重新返回文件的開頭。
15.知識點(diǎn):fseek()函數(shù)
l 功能:改變文件的位置指針
l 調(diào)用形式:fseek(fp,100L,0);將位置指針移到離文件頭100個(gè)字節(jié)處。
l 文件首 SEEK_SET 0 文件當(dāng)前位置 SEEK_CUR 1
文件末尾 SEEK_END 2
16.知識點(diǎn):ftell()函數(shù)
l ftell(fp);
l 功能:得到流式文件中的當(dāng)前位置。
17.知識點(diǎn):feof()函數(shù)
l feof(fp);
l 判斷文件是否結(jié)束,結(jié)束,返回值為1,否則為0。
例1(2011-03-15)以下程序運(yùn)行后的輸出結(jié)果是 【15】 。
main()
{ FILE *fp; int x[6]={1,2,3,4,5,6},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]);
printf("\n");
fclose(fp);
}
答案:123456
【解析】fwrite(x,sizeof(int),3,fp);將數(shù)組內(nèi)的前三個(gè)元素即1,2,3輸出到文件中去,rewind(fp);文件回到開頭,fread(x,sizeof(int),3,fp);將文件的內(nèi)容讀出并存到x數(shù)組的前三個(gè)元素中,把1,2,3寫到數(shù)組的前三個(gè)元素中去,所有數(shù)組中的元素值均沒變。
看過“二級c語言公共知識點(diǎn)“的人還看了:
2.計(jì)算機(jī)二級公共基礎(chǔ)知識試題及答案
(2010-03-40)有以下程序
#include <stdio.h>
main()
{FILE *fp;char str[10];
fp=fopen(“myfile.dat”,”w”);
fputs(“abc”,fp);fclose(fp);
fp=fopen(“myfile,data”,”a+”);
fprintf(fp,”%d”,28);
rewind(fp);
fscanf(fp,”%s”,str);puts(str);
fclose(fp);
}程序運(yùn)行后的輸出結(jié)果是(C)
A)abc B)28c C)abc28 D)因類型不一致而出錯(cuò)
【解析】以“a+”方式打開一個(gè)已存在的文件,原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可作添加和讀操作。fputs(“abc”,fp);把字符串”abc”輸出到fp指向的文件。
14.知識點(diǎn):rewind()函數(shù)
l 調(diào)用形式:rewind(fp);
l 功能:使位置指針重新返回文件的開頭。
15.知識點(diǎn):fseek()函數(shù)
l 功能:改變文件的位置指針
l 調(diào)用形式:fseek(fp,100L,0);將位置指針移到離文件頭100個(gè)字節(jié)處。
l 文件首 SEEK_SET 0 文件當(dāng)前位置 SEEK_CUR 1
文件末尾 SEEK_END 2
16.知識點(diǎn):ftell()函數(shù)
l ftell(fp);
l 功能:得到流式文件中的當(dāng)前位置。
17.知識點(diǎn):feof()函數(shù)
l feof(fp);
l 判斷文件是否結(jié)束,結(jié)束,返回值為1,否則為0。
例1(2011-03-15)以下程序運(yùn)行后的輸出結(jié)果是 【15】 。
main()
{ FILE *fp; int x[6]={1,2,3,4,5,6},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]);
printf("\n");
fclose(fp);
}
答案:123456
【解析】fwrite(x,sizeof(int),3,fp);將數(shù)組內(nèi)的前三個(gè)元素即1,2,3輸出到文件中去,rewind(fp);文件回到開頭,fread(x,sizeof(int),3,fp);將文件的內(nèi)容讀出并存到x數(shù)組的前三個(gè)元素中,把1,2,3寫到數(shù)組的前三個(gè)元素中去,所有數(shù)組中的元素值均沒變。
看過“二級c語言公共知識點(diǎn)“的人還看了:
2.計(jì)算機(jī)二級公共基礎(chǔ)知識試題及答案