>>>考試吧考后首發(fā)2013年3月計算機等考試題答案
第10套:
給定程序中,函數fun的功能是:判定形參a所指的N×N(規(guī)定N為奇數)的矩陣是否是"幻方",若是,函數返回值為1; 不是,函數返回值為0。"幻方"的判定條件是:矩陣每行、每列、主對角線及反對角線上元素之和都相等。
例如,以下3×3的矩陣就是一個"幻方":
4 9 2
3 5 7
8 1 6
請在程序的下劃線處填入正確的內容并把下劃線刪除, 使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
給定源程序:
#include
#define N 3
int fun(int (*a)[N])
{ int i,j,m1,m2,row,colum;
m1=m2=0;
for(i=0; i { j=N-i-1; m1+=a[i][i]; m2+=a[i][j]; } if(m1!=m2) return 0; for(i=0; i row=colum= __1__; for(j=0; j { row+=a[i][j]; colum+=a[j][i]; } if( (row!=colum) __2__ (row!=m1) ) return 0; } return __3__; } main() { int x[N][N],i,j; printf("Enter number for array:\n"); for(i=0; i printf("Array:\n"); for(i=0; i { for(j=0; j printf("\n"); } if(fun(x)) printf("The Array is a magic square.\n"); else printf("The Array isn't a magic square.\n"); } 解題思路: 第一處:行列變量row和colum的值初始化為0。 第二處:兩個條件只要有一個不滿足就返回0,所以應填:||。 第三處:如果矩陣是“幻方”,則返回1。 *************************************************** 給定程序MODI1.C中fun函數的功能是: 根據整型形參m,計算如下公式的值。 1 1 1 t = 1 - ----- - ----- - …… - ----- 2 3 m 例如,若主函數中輸入5,則應輸出 -0.283333。 請改正函數fun中的錯誤或在橫線處填上適當的內容并把橫線刪除, 使它能計算出正確的結果。 注意:不要改動 main 函數,不得增行或刪行,也不得更改程序的結構! 給定源程序: #include double fun( int m ) { double t = 1.0; int i; for( i = 2; i <= m; i++ ) t = 1.0-1 /i; _______; } main() { int m ; printf( "\nPlease enter 1 integer numbers:\n" ); scanf( "%d", &m); printf( "\n\nThe result is %lf\n", fun( m ) ); } 解題思路: 第一處:在除法運算中,如果除數和被除數都是整數,所么所除結果也是整數,因此應改為t-=1./i。 第二處:應是返回公式的值,函數中公式的值是存放在臨時變量t中,所以應填return t;。 *************************************************** 請編寫一個函數,函數的功能是刪除字符串中的所有空格。 例如, 主函數中輸入"asd af aa z67", 則輸出為 "asdafaaz67"。 注意:部分源程序在文件PROG1.C中。 請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。 給定源程序: #include #include int fun(char *str) { } main() { char str[81]; int n; printf("Input a string:") ; gets(str); puts(str); fun(str); printf("*** str: %s\n",str); NONO(); } 解題思路: 本題是考察考生怎樣利用字符串指針來刪除字符串的空格字符。在函數開始處把指針p先指 向字符串str以及位置變量i置0,然后采用while循環(huán)和字符串指針p來處理的,每循環(huán)一次來判斷指針p所指的字符是否為空格,如果不是空格,則把該字符寫到str字符串中,位置由i來控制,如果是空格,則不處理,繼續(xù)取下一字符,直至字符串結束為止,最后再把字符串結束符寫到 位置為i的str上,再通過形參str返回。 參考答案: int fun(char *str) { char *p = str ; int i = 0 ; while(*p) { if(*p != ' ') str[i++] = *p ; p++ ; } str[i] = 0 ; }
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |