>>>考試吧考后首發(fā)2013年3月計算機等考試題答案
給定程序通過定義并賦初值的方式,利用結構體變量存儲了一名學生的學號、姓名和3門課的成績。函數(shù)fun的功能是將該學生的各科成績都乘以一個系數(shù)a。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
給定源程序:
#include
typedef struct
{ int num;
char name[9];
float score[3];
}STU;
void show(STU tt)
{ int i;
printf("%d %s : ",tt.num,tt.name);
for(i=0; i<3; i++)
printf("%5.1f",tt.score[i]);
printf("\n");
}
void modify(___1___ *ss,float a)
{ int i;
for(i=0; i<3; i++)
ss->___2___ *=a;
}
main( )
{ STU std={ 1,"Zhanghua",76.5,78.0,82.0 };
float a;
printf("\nThe original number and name and scores :\n");
show(std);
printf("\nInput a number : "); scanf("%f",&a);
modify(___3___,a);
printf("\nA result of modifying :\n");
show(std);
}
解題思路:
本題是利用結構體存儲學生記錄并由實參ss返回。
第一處:實參ss是一個結構型指針變量,所以應填:STU。
第二處:該學生的各科成績都乘以一個系數(shù)a,所以應填:score[i]。
第三處:函數(shù)的調(diào)用,由于函數(shù)定義時使用的指針結構型變量,所以應填:&std。
***************************************************
給定程序MODI1.C中函數(shù)fun的功能是:求k!(k<13),所求階乘的值作為函數(shù)值返回。例如:若k = 10,則應輸出:3628800。
請改正程序中的錯誤,使它能得出正確的結果。
注意:不要改動 main 函數(shù),不得增行或刪行,也不得更改程序的結構!
給定源程序:
#include
long fun ( int k)
{
if k > 0
return (k*fun(k-1));
else if ( k=0 )
return 1L;
}
main()
{ int k = 10 ;
printf("%d!=%ld\n", k, fun ( k )) ;
}
解題思路:
第一處:條件判斷缺少圓括號。
第二處:判斷相等的符號是==。
***************************************************
程序定義了N×N的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù) fun(int a[][N], int n),函數(shù)的功能是:使數(shù)組左下三角元素中的值乘以n 。
例如:若n的值為3,a 數(shù)組中的值為 | 1 9 7 | | 3 9 7 |
a = | 2 3 8 | 則返回主程序后a數(shù)組中的值應為 | 6 9 8 |
| 4 5 6 | | 12 15 18|
注意: 部分源程序存在文件PROG1.C中。
請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
給定源程序:
#include
#include
#define N 5
int fun ( int a[][N], int n )
{
}
main ( )
{ int a[N][N], n, i, j;
printf("***** The array *****\n");
for ( i =0; i
{ for ( j =0; j
{ a[i][j] = rand()%10; printf( "%4d", a[i][j] ); }
printf("\n");
}
do n = rand()%10 ; while ( n >=3 );
printf("n = %4d\n",n);
fun ( a, n );
printf ("***** THE RESULT *****\n");
for ( i =0; i
{ for ( j =0; j
printf("\n");
}
NONO( );
}
解題思路:
本題是利用兩重循環(huán)給二維數(shù)組左下三角元素中的值乘以n。
參考答案:
int fun ( int a[][N], int n )
{
int i, j;
for(i = 0 ; i < N ; i++)
for(j = 0 ; j <= i; j++)
a[i][j] *= n ;
}
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |