- 相關推薦
計算機二級C語言上機強化訓練題及答案
以下是應屆畢業(yè)生考試網(wǎng)小編提供的計算機二級C語言上機強化訓練題及答案,希望大家順利通過計算機二級考試。
填空題
給定程序的功能是:調用函數(shù)fun將指定源文件中的內容復制到指定的目標文件中,復制成功時函數(shù)返回值為1,失敗時返回值為0。在復制的過程中,把復制的內容輸出到終端屏幕。主函數(shù)中源文件名放在變量sfname中,目標文件名放 在變量tfname中。
請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
給定源程序:
#include
#include
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!");
}
解題思路:
本題要求是把一個文件中的內容復制到另一個文件中。程序中共有三處要填上適當?shù)膬热荩钩绦蚰苓\行出正確的結果。
第一處:要求打開一個讀方式的源文件,因此可以填上"r"或"r+"。打開讀文件操作的流是fs。
第二處:用while循環(huán)來判斷源文件是否已讀到文件結束符,int feof(FILE *stream),因此,此處只能填寫fs。
第三處:把已經(jīng)讀取的字符寫入目標文件中,打開寫文件操作的流是ft,因此,此處只能填寫ft。
改錯題
給定程序MODI1.C中函數(shù)fun的功能是:將長整型數(shù)中每一位上為偶數(shù)的數(shù)依 次取出,構成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。 例如,當s中的數(shù)為:87653142時,t中的數(shù)為:8642。
請改正程序中的錯誤,使它能得出正確的結果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構!
給定源程序:
#include
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);
}
解題思路:
第一處:判斷相等的條件是==。
第二處:整除的符號是/。
編程題
函數(shù)fun的功能是:將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上, b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上。
例如,當a=45,b=12時,調用該函數(shù)后,c=5142。
注意: 部分源程序存在文件PROG1.C中。數(shù)據(jù)文件IN.DAT中的數(shù)據(jù)不得修改。
請勿改動主函數(shù)main和其它函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
給定源程序:
#include
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();
}
解題思路:
本題是給出兩個兩位數(shù)的正整數(shù)分別取出各位上的數(shù)字,再按條件組成一個新數(shù)。
取a十位數(shù)字的方法:a/10
取a個位數(shù)字的方法:a%10
參考答案:
void fun(int a, int b, long *c)
{
*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);
}
【計算機二級C語言上機強化訓練題及答案】相關文章:
2017計算機二級C語言上機最終預測題07-08
最新C語言考試強化訓練題及答案07-22
計算機二級C語言歷年真題及答案05-29
2017計算機二級C語言上機測試題附答案10-24
計算機二級C語言考試上機考試題及答案10-29
2024二級c語言上機題庫04-18
全國計算機二級《C++》上機試題及答案08-15