生活随笔
收集整理的這篇文章主要介紹了
全国计算机等级考试题库二级C操作题100套(第33套)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第33套: 給定程序的功能是:調用函數fun將指定源文件中的內容復制到指定的目標文件中,復制成功時函數返回值為1,失敗時返回值為0。在復制的過程中,把復制的內容輸出到終端屏幕。主函數中源文件名放在變量sfname中,目標文件名放 在變量tfname中。 請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。 注意:源程序存放在考生文件夾下的BLANK1.C中。 不得增行或刪行,也不得更改程序的結構! 給定源程序:
#include <stdio.h>
#include <stdlib.h>
int fun ( char * source
, char * target
)
{ FILE
* fs
, * ft
; char ch
;
if ( ( fs
= fopen ( source
, ___1___
) ) == NULL )
return 0 ;
if ( ( ft
= fopen ( target
, "w" ) ) == NULL )
return 0 ;
printf ( "\nThe data in file :\n" ) ;
ch
= fgetc ( fs
) ;
while ( ! feof ( ___2___
) )
{ putchar ( ch
) ;
fputc ( ch
, ___3___
) ;
ch
= fgetc ( fs
) ;
}
fclose ( fs
) ; fclose ( ft
) ;
printf ( "\n\n" ) ;
return 1 ;
}
main ( )
{ char sfname
[ 20 ] = "myfile1" , tfname
[ 20 ] = "myfile2" ;
FILE
* myf
; int i
; char c
;
myf
= fopen ( sfname
, "w" ) ;
printf ( "\nThe original data :\n" ) ;
for ( i
= 1 ; i
< 30 ; i
++ ) { c
= 'A' + rand ( ) % 25 ; fprintf ( myf
, "%c" , c
) ; printf ( "%c" , c
) ; }
fclose ( myf
) ; printf ( "\n\n" ) ;
if ( fun ( sfname
, tfname
) ) printf ( "Succeed!" ) ;
else printf ( "Fail!" ) ;
}
解題思路: 本題要求是把一個文件中的內容復制到另一個文件中。程序中共有三處要填上適當的內容,使程序能運行出正確的結果。 第一處:要求打開一個讀方式的源文件,因此可以填上"r"或"r+"。打開讀文件操作的流是fs。 第二處:用while循環來判斷源文件是否已讀到文件結束符,int feof(FILE *stream),因 此,此處只能填寫fs。 第三處:把已經讀取的字符寫入目標文件中,打開寫文件操作的流是ft,因此,此處只能填寫ft。
給定程序MODI1.C中函數fun的功能是:將長整型數中每一位上為偶數的數依 次取出,構成一個新數放在t中。高位仍在高位,低位仍在低位。 例如,當s中的數為:87653142時,t中的數為:8642。 請改正程序中的錯誤,使它能得出正確的結果。 注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構! 給定源程序:
#include <stdio.h>
void fun
( long s
, long * t
)
{ int d
;
long sl
= 1 ;
* t
= 0 ;
while ( s
> 0 )
{ d
= s
% 10 ;
if ( d
% 2 = 0 )
{ * t
= d
* sl
+ * t
;
sl
* = 10 ;
}
s \
= 10 ;
}
}
main ( )
{ long s
, t
;
printf ( "\nPlease enter s:" ) ; scanf ( "%ld" , & s
) ;
fun ( s
, & t
) ;
printf ( "The result is: %ld\n" , t
) ;
}
解題思路: 第一處:判斷相等的條件是==。 第二處:整除的符號是/。
函數fun的功能是:將兩個兩位數的正整數a、b合并形成一個整數放在c中。合并的方式是:將a數的十位和個位數依次放在c數的十位和千位上, b數的十位和個位數依次放在c數的百位和個位上。 例如,當a=45,b=12時,調用該函數后,c=5142。 注意: 部分源程序存在文件PROG1.C中。數據文件IN.DAT中的數據不得修改。 請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。 給定源程序:
#include <stdio.h>
void fun ( int a
, int b
, long * c
)
{
}
main ( )
{ int a
, b
; long c
;
printf ( "Input a, b:" ) ;
scanf ( "%d,%d" , & a
, & b
) ;
fun ( a
, b
, & c
) ;
printf ( "The result is: %ld\n" , c
) ;
NONO ( ) ;
}
解題思路: 本題是給出兩個兩位數的正整數分別取出各位上的數字,再按條件組成一個新數。 取a十位數字的方法:a/10 取a個位數字的方法:a%10 參考答案:
void fun ( int a
, int b
, long * c
)
{
* c
= ( a
% 10 ) * 1000 + ( b
/ 10 ) * 100 + ( a
/ 10 ) * 10 + ( b
% 10 ) ;
}
總結
以上是生活随笔 為你收集整理的全国计算机等级考试题库二级C操作题100套(第33套) 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。