日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

全国计算机等级考试题库二级C操作题100套(第88套)

發布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全国计算机等级考试题库二级C操作题100套(第88套) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第88套:

函數fun的功能是:把形參a所指數組中的最大值放在a[0]中,接著求出a所指數組中的最小值放在a[1]中;再把a所指數組元素中的次大值放在a[2]中,把a數組元素中的次小值放在a[3]中;其余以此類推。例如:若a所指數組中的數據最初排列為:1、4、2、3、9、6、5、8、7,則按規則移動后,數據排列為: 9、1、8、2、7、3、6、4、5。形參n中存放a所指數組中數據的個數。
請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
給定源程序:

#include <stdio.h> #define N 9 void fun(int ___1___, int n) { int i, j, max, min, px, pn, t; for (i=0; i<n-1; i+=___2___) { max = min = a[i]; px = pn = i; for (j=___3___; j<n; j++) { if (max < a[j]) { max = a[j]; px = j; } if (min > a[j]) { min = a[j]; pn = j; } } if (px != i) { t = a[i]; a[i] = max; a[px] = t; if (pn == i) pn= px; } if (pn != i+1) { t = a[i+1]; a[i+1] = min; a[pn] = t; } } } main() { int b[N]={1,4,2,3,9,6,5,8,7}, i; printf("\nThe original data :\n"); for (i=0; i<N; i++) printf("%4d ", b[i]); printf("\n"); fun(b, N); printf("\nThe data after moving :\n"); for (i=0; i<N; i++) printf("%4d ", b[i]); printf("\n"); }

解題思路:
第一處:形參a應定義指針整型變量,所以應填:*a。
第二處:外for循環每次增量應該加2。
第三處:內for循環的初始值應為:i+1。


給定程序MODI1.C中函數fun的功能是:按順序給s所指數組中的元素賦予從2 開始的偶數,然后再按順序對每五個元素求一個平均值,并將這些值依次存放在 w所指的數組中。若s所指數組中元素的個數不是5的倍數,多余部分忽略不計。
例如,s所指數組有14個元素,則只對前10個元素進行處理,不對最后的4個元素求平均值。
請改正程序中的錯誤,使它能得出正確結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。
給定源程序:

#include <stdio.h> #define SIZE 20 fun(double *s, double *w) { int k,i; double sum; for(k=2,i=0;i<SIZE;i++) { s[i]=k; k+=2; } sun=0.0; for(k=0,i=0;i<SIZE;i++) { sum+=s[i]; if(i+1%5==0) { w[k]=sum/5; sum=0; k++; } } return k; } main( ) { double a[SIZE],b[SIZE/5]; int i, k; k = fun(a,b); printf("The original data:\n"); for(i=0; i<SIZE; i++) { if(i%5==0) printf("\n"); printf("%4.0f", a[i]); } printf("\n\nThe result :\n"); for(i=0; i<k; i++) printf("%6.2f ",b[i]); printf("\n\n"); }

解題思路:
第一處:變量名書寫錯誤,應為sum。
第二處:由于%的優先級比+優先,所以必須加上括號,因此改為:if((i+1)%5==0)。


學生的記錄由學號和成績組成,N名學生的數據已在主函數中放入結構體數組 s中,請編寫函數fun,它的功能是:把低于平均分的學生數據放在b所指的數組中, 低于平均分的學生人數通過形參n傳回,平均分通過函數值返回。
注意: 部分源程序在文件PROG1.C中。
請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入
你編寫的若干語句。
給定源程序:

#include <stdio.h> #define N 8 typedef struct { char num[10]; double s; } STREC; double fun( STREC *a, STREC *b, int *n ) { } main() { STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85}, {"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}}; STREC h[N],t;FILE *out ; int i,j,n; double ave; ave=fun( s,h,&n ); printf("The %d student data which is lower than %7.3f:\n",n,ave); for(i=0;i<n; i++) printf("%s %4.1f\n",h[i].num,h[i].s); printf("\n"); out = fopen("c:\\test\\out.dat","w") ; fprintf(out, "%d\n%7.3f\n", n, ave); for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(h[i].s>h[j].s) {t=h[i] ;h[i]=h[j]; h[j]=t;} for(i=0;i<n; i++) fprintf(out,"%4.1f\n",h[i].s); fclose(out); }

解題思路:
本題是利用循環計算出記錄結構中學生成績的平均值,再把低于平均值的記錄存放到b所指的數組中。具體操作請看答案程序中的說明。
參考答案:

#include <stdio.h> #define N 8 typedef struct { char num[10]; double s; } STREC; double fun( STREC *a, STREC *b, int *n ) { int i ; double ave = 0.0 ; *n = 0 ; for(i = 0 ; i < N ; i++) ave = ave + a[i].s ; ave /= N ; /* 計算平均值 */ for(i = 0 ; i < N ; i++) if(a[i].s < ave) { /* 把低于平均值的記錄存放到b所指的數組中 */ b[*n]=a[i] ; (*n)++; /* 人數加1 */ } return ave ; /* 返回平均值 */ } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的全国计算机等级考试题库二级C操作题100套(第88套)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。