}
return sum / n; }
/* 函数功能:输入n个学生的某门课成绩 */
void ReadScore(int score[], int n) /* ReadScore()函数定义 */ {
int i;
printf(\ for (i = 0; i < n; i++) {
scanf(\ } }
Q1683.(10分)用二维数组作为函数参数,实现矩阵转置。按如下函数原型编程计算并输出m×n阶矩阵的转置矩阵。其中,m和n的值由用户从键盘输入。已知m和n的值都不超过10。
void Transpose(int a[][N], int at[][M], int m, int n); void InputMatrix(int a[][N], int m, int n); void PrintMatrix(int at[][M], int n, int m);
输入提示信息:\输入格式:\
输出提示信息和格式:\参考答案
#include
void Transpose(int a[][N], int at[][M], int m, int n); void InputMatrix(int a[][N], int m, int n); void PrintMatrix(int at[][M], int n, int m); int main() {
int s[M][N], st[N][M], m, n; printf(\ scanf(\ InputMatrix(s, m, n); Transpose(s, st, m, n);
printf(\ PrintMatrix(st, n, m); return 0; }
/* 函数功能:计算m*n矩阵a的转置矩阵at */ void Transpose(int a[][N], int at[][M], int m, int n) {
int i, j;
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
at[j][i] = a[i][j]; } } }
/* 函数功能:输入m*n矩阵a的值 */ void InputMatrix(int a[][N], int m, int n) {
int i, j;
printf(\ for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
scanf(\ } } }
/* 函数功能:输出n*m矩阵at的值 */ void PrintMatrix(int at[][M], int n, int m) {
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
printf(\ }
printf(\ } }
Q358.(10分)有一个3*4的矩阵,求其中的最大元素的值。矩阵为: {{1,3,5,7},{2,4,6,8},{15,17,34,12}}; **输出格式要求:\程序运行示例如下: max value is 34 参考答案
#include
int array[][4]; {
int i,j,k,max; max=array[0][0]; for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(array[i][j]>max) max=array[i][j]; return max; }
main() {
static int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}}; printf(\}
Q434.(10分)除式还原(1)
给定下列除式,其中包含5和7,其它打X的位置上是任意数字,请加以还原。 X7X -------商 -------- -------被除数 除数------XX|XXXXX
X77 -------- X7X X7X ------- XX XX ------- 0
**输出格式要求:\程序运行示例如下: 51463/53=971 参考答案
#include
{ long int i; int j,k,l;
for(i=10000;i<=99999;i++) if(i00-i0==400) for(j=10;j<=99;j++)
if(i%j==0&&(l=i/j)0>=70&&i0<80&&i!=0&&l>100&&l<=999)
if(j*(l)<100&&j*(l)>10)
if(j*70>=70&&j*70<80)
if(j*(l/100)0==77&&j*(l/100)>100) printf(\}
Q337.(10分)求1到10的阶乘。
**输出格式要求:\ -!=%ld\每行输出5个数的阶乘。 程序运行示例如下:
1!=1 2!=2 3!=6 4!=24 5!=120
6!=720 7!=5040 8!=40320 9!=362880 10!=3628800 参考答案
#include
long int n=1; int i;
for(i=1;i<=10;i++) {
n=n*i;
printf(i%5==0?\ -!=%ld\\n\ -!=%ld\ } }
Q1160.(10分)
下面程序的功能是删除字符串中第一次出现的a字符。找出其中错误,并改正之。 #include
void fun(char *x,int n,*t); { int i,k=0;
x[n]='a';x[n+1]='\\0'; while(x*k+!=’a’) k++; if(k==n){*t=0;break;} else
{ for(i=k;i main() { char x[20]; int len,t; gets(x); puts(x); len=strlen(x); fun(x,len,t); if(t==0) printf(\ else puts(x); } 参考答案 #include void fun(char *x,int n,int *t) { int i,k=0; x[n]='a';x[n+1]='\\0'; while(x[k]!='a') k++; if(k==n){*t=0;} else { for(i=k;i main() { char x[20]; int len,t; gets(x); puts(x); len=strlen(x); fun(x,len,&t); if(t==0) printf(\ else puts(x); } Q275.(20分)输入某班学生某门课的成绩(最多不超过40人), 当输入为负值时,表示输入结束, 用函数编程统计成绩不低于平均分的学生人数。 要求: (1)按如下函数原型进行编程: int GetAboveAver(int score[], int n); (2)在主函数中: 输入学生成绩, 然后调用函数GetAboveAver计算成绩不低于平均分的学生人数,