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