(三)程序填空(每空2分,共18分,专科只答第1、第2小题,本科全答。)
1、下面程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。
Int fun(int n)
{ int m=0,f=1,i;
for(i=0; i { m+=i*f;
f=f*(-1);
}
return m;
}
main()
{printf(“m=%d\n”,fun(11));}
2、下面rotate函数的功能是:将n行n列的矩阵A转置为A’如:
1 2 3 4 1 5 9 13
5 6 7 8 2 6 10 14
当A=9 10 11 12 则 A’=3 7 11 15
13 14 15 16 4 8 12 16
#define N4
Void rotate (int a[][N])
{int i,j,t;
for (i=0;ifor(j=0;j{t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
3、下面程序的功能是:从键盘上输入若干数,要求输出最大值和最小值,当输入负数时结束输入。
main()
{float x,max,min;
scanf("%f",&x);
max=x;
min=x;
while(__(6)_______)
{if(x>max) max=x;
if(____(7)____) min=x;
scanf("%f",&x);
}
printf("\nmax=%f\nmin=%f\n",max,min);
}
4、下面程序的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线之和。
#include
int cont()
{
int a[3][3],sum;
int i,j;
____(8)____;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<3;i++)
______(9)______;
printf("sum=%d\n",sum);
}
main()
{
cont();
}
(四)阅读程序回答问题
(每小题6分,共18分,专科只答第1小题,本科全答。)
1、程序
#include"stdio.h"
#include"conio.h"
#define M 10
int fun(int *a, int *n,int pos[ ])
{
int i, k, max=-32768;
for(i=0;iif(a[i]>max)max=a[i];
for(k=0,i=0;i if(a[i]= =max)pos[k++]=i;
*n=k;
return max;
}
main( )
{
int a [M],pos[M],i=0,j,n;
clrscr( );
printf("Enter 10 number:");
for(i=0;ij=fun(a,&n,pos);
printf("The max: %d\n",j);
for(i=0;iprintf("\n");
}
问题1 fun函数的功能是什么?统计10个数中最大值的个数,最大数值放这POS数组,N是最大数的下标
问题2 若输入2 8 5 7 8 4 5 3 2 8
则该程序输出什么?8149 【责编:yunyun 纠错】
[1] [2] [3] [4] [5] [6] [7] 