全國等級考試計算機四級機試試題及答案(1)

2021-12-30 01:31:22 字數 4787 閱讀 5285

全國等級考試計算機四級機試試題及答案

13./* 請編寫乙個函式changestr(char *s),函式的功能是把s串中所有的字母改寫成該字母的下乙個字母,字母z改寫成字母a。大寫仍為大寫字母,小寫字母仍為小寫字母,其它的字元不變。函式readwrite()實現從檔案in2.dat中讀取兩個字串,並呼叫函式changestr(),最後把結果輸出到檔案out2.dat中。

注意:部分源程式存在檔案prog1.c中。請勿改動主函式main()和其它函式中的任何內容,僅在函式changestr()的花括號中填入你編寫的若干語名。*/

#include

#include

#include

#include

#define n 81

changestr ( char *s )

main( )

char a[n] ;

clrscr( ) ;

printf ( 「enter a string : 」 ) ; gets ( a ) ;

printf ( 「the original string is : 」 ) ; puts( a ) ;

changestr ( a ) ;

printf ( 「the string after modified : 」) ;

puts ( a ) ;

readwrite( ) ;

readwrite( )

int i ;

char a[n] ;

file *rf, *wf ;

rf = fopen(「in2.dat」, 「r」) ;

wf = fopen(「out2.dat」, 「w」) ;

for(i = 0 ; i 《 10 ; i++) {

fscanf(rf, 「%s」, a) ;

changestr(a) ;

fprintf(wf, 「%s

」, a) ;

fclose(rf) ;

fclose(wf) ;

14./* 程式prog1.c的功能是:利用以下所示的簡單迭代方法求方程:

cos(x)-x=0的乙個實根。

xn+1=cos(xn)

迭代步驟如下:

(1) 取x1初步值為0.0;

(2) x0=x1,把x1,把x1的值賦給x0;

(3) x1=cos(x0),求出乙個新的x1;

(4) 若x0-x1的絕對值小於0.000001,執行步驟(5),否則執行步驟(2);

(5) 所求x1就是方程cos(x)-x=0的乙個實根,作為函式值返回。

請編寫函式countvalue()實現程式的要求,最後呼叫函式writedat()把結果輸出到檔案out4.dat中。

注意:部分源程式存在檔案prog1.c中,請勿改動主函式main()和輸出資料函式writedat()的內容。 */

#include

#include

#include

float countvalue()

main()

clrscr();

printf(「實根=%f

」, countvalue());

printf(「 %f

」,cos(countvalue())-countvalue());

writedat();

writedat()

file *wf ;

wf=fopen(「out4.dat」,「w」) ;

fprintf(wf, 「%f

」, countvalue()) ;

fclose(wf) ;

15./* 已知在檔案in.dat中存有若干個(個數《200)四位數字的正整數,函式readdat()讀取這些正整數並存入陣列xx中。請編制函式calvalue()其功能要求是:

1.求出這個檔案中共有多少個正整數totnum;2.求出這些數中的各位數字之和是奇數的數的個數totcnt,以及不滿足此條件的所有數的算術平均值totpjz,最後呼叫函式writedat()把所求的結果輸出到檔案out8.dat中。

注意:部分源程式存放在prog1.c中。

請勿改動主函式main(),讀資料函式readdat()和輸出資料函式writedat()的內容。 */

#include

#include

#define maxnum 200

int xx[maxnum] ;

int totnum = 0 ; /* 檔案in.dat中共有多少個正整數 */

int totcnt = 0 ; /* 符合條件的正整數的個數 */

double totpjz = 0.0 ; /* 平均值 */

int readdat(void) ;

void writedat(void) ;

void calvalue(void)

void main()

clrscr() ;

if(readdat()) {

printf(「資料檔案in.dat不能開啟! 07

」) ;

return ;

calvalue() ;

printf(「檔案in.dat中共有正整數=%d個

」, totnum) ;

printf(「符合條件的正整數的個數=%d個

」, totcnt) ;

printf(「平均值=%.2lf

」, totpjz) ;

writedat() ;

int readdat(void)

file *fp ;

int i = 0 ;

if((fp = fopen(「in.dat」, 「r」)) == null) return 1 ;

while(!feof(fp)) {

fscanf(fp, 「%d,」, &xx[i++]) ;

fclose(fp) ;

return 0 ;

void writedat(void)

file *fp ;

fp = fopen(「out8.dat」, 「w」) ;

fprintf(fp, 「%d

%d%.2lf

」, totnum, totcnt, totpjz) ;

fclose(fp) ;

16./* 編寫乙個函式findstr(),該函式統計乙個長度為2的子字串在另乙個字串**現的次數。例如,假定輸入的字串為「asd asasdfg asd as zx67 asd mklo」,子字串為「as」,則輸出6。 函式readwrite()實現從檔案in1.dat中讀取兩個字串,並呼叫函式findstr(),最後把結果輸出到檔案out1.dat中。

注意:部分源程式存在檔案prog1.c中。請勿改動主函式main()和其它函式中的任何內容,僅在函式findstr()的花括號中填入你編寫的若干語句。*/

#include

#include

#include

int findstr(char *str,char *substr)

main()

char str[81], substr[3] ;

int n ;

clrscr() ;

gets(str) ;

gets(substr) ;

puts(str) ;

puts(substr) ;

n=findstr(str, substr) ;

printf(「n=%d

」, n) ;

readwrite() ;

readwrite()

char str[81], substr[3], ch;

int n, len, i = 0;

file *rf, *wf ;

rf = fopen(「in1.dat」, 「r」) ;

wf = fopen(「out1.dat」, 「w」) ;

while(i 《 5) {

fgets(str, 80, rf) ;

fgets(substr, 10, rf) ;

len = strlen(substr) - 1 ;

ch = substr[len] ;

if(ch == 』

』 || ch == 0x1a) substr[len] = 0 ;

n=findstr(str, substr);

fprintf(wf, 「%d

」, n) ;

i++ ;

fclose(rf) ;

fclose(wf) ;

17./* 請編寫函式void countvalue(int *a,int *n),它的功能是:求出1到1000之內能被7或11整除但不能同時被7和11整除的所有整數,並放在陣列a中,然後通過n返回這些數的個數。

注意:部分源程式存入在prog1.c中。

請改動主函式main()和輸入輸出資料函式writedat()的內容。*/

#include

int cnt, sum ;

void countvalue()

void main()

cnt = sum = 0 ;

countvalue() ;

printf(「素數的個數=%d

」, cnt) ;

printf(「滿足條件素數值的和=%d」, sum) ;

writedat() ;

writedat()

file *fp ;

fp = fopen(「out6.dat」, 「w」) ;

fprintf(fp, 「%d

%d」, cnt, sum) ;

fclose(fp) ;

全國計算機等級四級考試筆試試題 四

第 31 32 題基於已知下列資訊 資料庫關係模式r a,b,c,d,e 有下列函式依賴 a bc d ec d 31 下述對r的分解中,哪乙個 或哪些 分解可儲存r所有的函式依賴關係 2分 a b c c d e a b c d e a 均不是 b 只有 c 只有 d 和 32 下述對r的分解中,...

全國計算機等級四級考試筆試試題 一

一 選擇題 共90題,分為1分題和2分題,滿分120分。除標註2分題外,其它均為1分題。1 若或非門的輸入變數為a和b,輸出變數為y,則a和b分別為下述哪一種情況時,y才為1 a 1,0 b 0,1 c 0,0 d 1,1 2 已知暫存器a存有帶符號整數且只作算術移位,ha和la分別代表其最高位和最...

全國計算機等級考試四級筆試試題 一 3

26 sql語言的資料操縱語句包括 select,insert,update和delete等。其中,最重要的,也是使用最頻繁的語句是 a select b insert c update d delete 27 查詢語言sql與c語言處理記錄的方式是不同的。乙個sql語句原則上一次生成或處理一組記錄...