全国计算机等级考试题库二级C操作题100套(第21套)
第21套:
給定程序中,函數fun的功能是:計算形參x所指數組中N個數的平均值(規定所有數均為正數),將所指數組中大于平均值的數據移至數組的前部,小于等于平 均值的數據移至x所指數組的后部,平均值作為函數值返回,在主函數中輸出平均值和移動后的數據。
例如,有10個正數:46 30 32 40 6 17 45 15 48 26,平均值為:
30.500000 移動后的輸出為:46 32 40 45 48 30 6 17 15 26
請在程序的下劃線處填入正確的內容并把下劃線刪除, 使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
給定源程序:
#include <stdlib.h> #include <stdio.h> #define N 10 double fun(double *x) { int i, j; double s, av, y[N]; s=0; for(i=0; i<N; i++) s=s+x[i]; av=__1__; for(i=j=0; i<N; i++) if( x[i]>av ){ y[__2__]=x[i]; x[i]=-1;} for(i=0; i<N; i++) if( x[i]!= __3__) y[j++]=x[i]; for(i=0; i<N; i++)x[i] = y[i]; return av; } main() { int i; double x[N]; for(i=0; i<N; i++){ x[i]=rand()%50; printf("%4.0f ",x[i]);} printf("\n"); printf("\nThe average is: %f\n",fun(x)); printf("\nThe result :\n",fun(x)); for(i=0; i<N; i++) printf("%5.0f ",x[i]); printf("\n"); }解題思路:
第一處:計算N個數的平均值,所以應填:s/N。
第二處:利用for循環語句,把數組x中大于平均值的數,依次存放到數組y中,同時把數組x上的該數置為-1,其中位置由變量j來控制,所以應填:j++。
第三處:再利用循環把不是-1的數,依次仍存放到數組y中,所以應填:-1。
給定程序MODI1.C的功能是:讀入一個英文文本行,將其中每個單詞的第一個字母改成大寫,然后輸出此文本行(這里的“單詞”是指由空格隔開的字符串)。
例如,若輸入:I am a student to take the examination.,
則應輸出:I Am A Student To Take The Examination.。
請改正程序中的錯誤,使程序能得出正確的結果。
注意:不要改動 main 函數,不得增行或刪行,也不得更改程序的結構!
給定源程序:
#include <ctype.h> #include <string.h> include <stdio.h> upfst ( char p ) { int k=0; for ( ; *p; p++ ) if ( k ) { if ( *p == ' ' ) k = 0; } else if ( *p != ' ' ) { k = 1; *p = toupper( *p ); } } main( ) { char chrstr[81]; printf( "\nPlease enter an English text line: " ); gets( chrstr ); printf( "\n\nBefore changing:\n %s", chrstr ); upfst( chrstr ); printf( "\nAfter changing:\n %s\n", chrstr ); }解題思路:
第一處:包含頭文件的標識錯誤,在include前漏寫了#。
第二處:由于傳入的參數是字符串,所以應為upfst(char *p)。
程序定義了N×N的二維數組,并在主函數中賦值。請編寫函數fun,函數的功能是:求出數組周邊元素的平均值并作為函數值返給主函數中的s。
例如:a 數組中的值為
|0 1 2 7 9|
|1 9 7 4 5|
a = |2 3 8 3 1|
|4 5 6 8 2|
|5 9 1 4 1|
則返回主程序后s的值應為: 3.375。
注意: 部分源程序存在文件PROG1.C文件中。
請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
給定源程序:
#include <stdio.h> #include <stdlib.h> #define N 5 double fun ( int w[][N] ) { } main ( ) { int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1}; int i, j; double s ; printf("***** The array *****\n"); for ( i =0; i<N; i++ ) { for ( j =0; j<N; j++ ) { printf( "%4d", a[i][j] ); } printf("\n"); } s = fun ( a ); printf ("***** THE RESULT *****\n"); printf( "The sum is : %lf\n",s ); NONO( ); }解題思路:
本題是統計二維數組周邊元素值的平均值,但要注意的是不要重復計算四個角上的元素值。
參考答案:
總結
以上是生活随笔為你收集整理的全国计算机等级考试题库二级C操作题100套(第21套)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【SpringBoot 框架】- Spr
- 下一篇: 蓝牙耳机测试软件apk_延迟测试app下