阅读下列函数说明和C代码,填入(n)处。
[说明]
以下C语言程序实现了生成从里到外是连续的自然数排列的回旋矩阵,矩阵形式如下:
7 6 5 16
8 1 4 15
9 2 3 14
10 11 12 13
程序的变量说明如下:
x1:矩阵上边界;
x2:矩阵下边界;
y1:矩阵左边界;
y2:矩阵右边界;
s:数组元素升降标记,s等于1为升,s等于-1为降;
a[]:存放矩阵元素的数组。
仔细阅读C语言程序源码,将(n)处的语句补充完整。(注:每处仅一个语句)
[C程序]
include<stdio.h>
void main ( )
{
const int N=20;
int i=0,j=0,a[N][N],n;
int m,x1,x2,y1,y2,s;
while (1)
{
Printf ("\ninput matrix row N( N>=2): ");
scanf ("%d",&n);
printf ("\n");
if (n>=2)
break;
}
m=n*n;
x1=0; y1=0; x2=n; y2=n;
if(n%2==0)
{j=n-1; y2=n-1; s=1;}
else
{i=n-1; y1=1; s=-1; }
while (1)
{
if (s==1)
{
for (i; i<x2; i++) a[i][j]=m--;
i--;
j--;
(1)
for (j;j>=y1;j--) a[i][j]=m--;
j++;
i--;
y1++;
(2)
}
else
{
for (i;i>=x1;i--)
a[i][j]=m--;
i++;
j++;
(3)
for (j;j<y2;j++)
(4)
(5)
i++;
(6)
S=i;
}
if (m<1) break;
}
for (i=O;i<n; i++)
{
for (j=O;j<n;j++)
printf ("%6d",a[i][j]);
printf ("\n");
}
printf ("\n");
}
第1题:
●试题二
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
该程序运行后,输出下面的数字金字塔
【程序】
include<stdio.h>
main ()
{char max,next;
int i;
for(max=′1′;max<=′9′;max++)
{for(i=1;i<=20- (1) ;++i)
printf(" ");
for(next= (2) ;next<= (3) ;next++)
printf("%c",next);
for(next= (4) ;next>= (5) ;next--)
printf("%c",next);
printf("\n");
}
}
第2题:
()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]有一个一维数组cj,内放20个学生成绩,求平均成绩。函数ave用来求20个学生的平均成绩。[C语言函数]float ave(float a[20]){ int i;float aver,sum= (1) ;for(i=1;i<20;i++) sum= (2) ;aver= (3) ;return( (4) );}main(){ float cj[20],aver;int i;printf(“input 20 cj:\n”);for(i=0;i<20;i++) scanf(“%f”,&cj[i]);printf(“\n”);aver= (5) ;printf(“average cj is %6.2f”,aver);}
第3题:
第4题:
试题三(共 15 分)
阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。
第5题:
()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]下面程序是一个带参数的主函数,其功能是显示在命令行中输入的文本文件内容。[C语言函数]#include"stdio.h"main(argc,argv) int argc; char *argv[]; { (1) ; if((fp=fopen(argv[1],”r’’))== (2) ) { printf(”file not open!\n”);exit(0);} while( (3) ) putchar( (4) ); (5); }