网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

假设一个剧场有N*N个座位,顾客买票时可以提出任意有效的座号请求。下面用二维数组a[N][N]模拟剧场中的座位,a[i][j]圆等于0表示

第i排第j列(0≤i,j≤N-1)的票尚未售出。

函数int Find(int a[][N],int R,int*row,int*col)的功能是:在部分票已售出的情况下,找出剧场中的R*R个空座位,要求这些座位

的排列形成一个正方形。若找到满足要求的一个座位排列,则函数返回1,并算出该正方形左上角的行、列号;若未找到,则返回0。

例如,一个7X7个座位的剧场如下图(a)所示,已售出部分座位的剧场如下图(b)所示,图中阴影部分表示已售出的座位,从下图(b)中找出

的3X3正方形空座位如下图(c)中斜线区所示。

【函数】

int Find(int a[][N] int R,int*row,iht*col)

{int i,j,k,c,t;int FOUND=0;

for(i=0;!FOUND&&i<N-R+1;i++) { /*从第0排开始查找*/

(1);

while (j<N-R+1&&!FOUND) {

for (k=0;(2)&&a[i][j+k]==0;k++); /*查找第i排连续的R个空座位*/

if (k>=R) { /*找到第i排连续的R个空座位*/

for (c=0;c<R;c++) { /*查找其余的R*(R-1)个座位*/

for (t=1;t<R;t++)

if (a[(3)][j+c]!=0) break;

if (t<R) break;

}/*for*/

if ((4)) FOUND=1;

}/*if*/

(5;

}/*while*/

}/*fori*/

if (FOUND) {

*row=i-1; *col=j-1; /*计算正方形区域的左上角坐标*/

return 1;

}

return 0;

}


参考答案

更多 “ 阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。【说明】假设一个剧场有N*N个座位,顾客买票时可以提出任意有效的座号请求。下面用二维数组a[N][N]模拟剧场中的座位,a[i][j]圆等于0表示第i排第j列(0≤i,j≤N-1)的票尚未售出。函数int Find(int a[][N],int R,int*row,int*col)的功能是:在部分票已售出的情况下,找出剧场中的R*R个空座位,要求这些座位的排列形成一个正方形。若找到满足要求的一个座位排列,则函数返回1,并算出该正方形左上角的行、列号;若未找到,则返回0。例如,一个7X7个座位的剧场如下图(a)所示,已售出部分座位的剧场如下图(b)所示,图中阴影部分表示已售出的座位,从下图(b)中找出的3X3正方形空座位如下图(c)中斜线区所示。【函数】int Find(int a[][N] int R,int*row,iht*col){int i,j,k,c,t;int FOUND=0;for(i=0;!FOUNDi<N-R+1;i++) { /*从第0排开始查找*/(1);while (j<N-R+1!FOUND) {for (k=0;(2)a[i][j+k]==0;k++); /*查找第i排连续的R个空座位*/if (k>=R) { /*找到第i排连续的R个空座位*/for (c=0;c<R;c++) { /*查找其余的R*(R-1)个座位*/for (t=1;t<R;t++)if (a[(3)][j+c]!=0) break;if (t<R) break;}/*for*/if ((4)) FOUND=1;}/*if*/(5;}/*while*/}/*fori*/if (FOUND) {*row=i-1; *col=j-1; /*计算正方形区域的左上角坐标*/return 1;}return 0;} ” 相关考题
考题 ●试题四阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。【函数】void QuickSort(int A[],int s,int t){int i=s,j=t+1,temp;int x=A[s];do{do i++;while (1) ;do j--;while(A[j]x);if(ij){temp=A[i]; (2) ; (3) ;}}while(ij);A[a]=A[j];A[j]=x;if(si-1) (4) ;if(j+1t) (5) ;}

考题 ●试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明2.1】以下C语言函数用二分插入法实现对整型数组a中n个数的排序功能。【函数2.1】void fun1(int a[]){int i,j,k,r,x,m;for(i=2;i=n;i++){ (1) ;k=1;r=i-1;while(k=r){m=(k+r)/2;if(xa[m])r=m-1;else (2) ;}for(j=i-1;j=k;j--)a[j+1]=a[j];(3) ;}}【说明2.2】以下程序可以把从键盘上输入的十进制数(1ong型)以二~十六进制形式输出。【程序2.2】#includestdio.hmain(){char b[16]={′0′,′1′,′2′,′3′,′4′,′5′,′6′,′7′,′8′,′9′,′A′,′B′,′C′,′D′,′E′,′F′};int c[64],d,i=0,base;long n;printf(″enter a number:′n″);scanf(″%1d″,n);printf(″enter new basc:kn″);scanf(″%d″,base);do{c[i]= (4) ;i++;n=n/base;}while(n!=0);printf("transmite new base:\n");for(--i;i=0;--i){ d=c[i];printf("%c", (5) );}}

考题 ●试题三阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数move(int*a,int n)用于整理数组a[]的前n个元素,使其中小于0的元素移到数组的前端,大于0的元素移到数组的后端,等于0的元素留在数表中间。令a[0]~a[low-1]小于0(初始为空);a[low]~a[i-1]等于0(初始为空);a[i]~a[high]还未考察,当前考察元素为a[i]。a[high+1]~a[n-1]大于0(初始为空)。【函数】move(int*a,int n){int i,low,high,t;low=i=0;high=n-1;while( (1) )if(a[i]0){t=a[i];a[i]=a[low];a[low]=t;(2) ;i++;}else if( (3) ){t=a[i];a[i]=a[high];a[high]=t;(4) ;}else (5) ;}

考题 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】对20个数进行排序,可以利用选择法,即从后19个比较过程中,选择一个最小的与第一个元素交换,依次类推,即用第二个元素与后18个进行比较,并进行交换。【函数】define N 20main(){int i,j,min,tem,a[N];printf("please input twenty num:\n");for(i=0;i<N;i){printf("a[%d]=",i);scanf("%d",a[i]);}printf("\n");for(i=0;i<N;i)printf(",",a[i]);printf("\n");for(i=0;(1);i){min=(2);for(j=(3);j<N;j++)if((4))min=j;tem=a[i];(5);a[min]=tem;}printf("After sorted \n");for(i=0;i<N;i++)printf(",",a[i]);}

考题 阅读下列函数说明和C代码,将应填入 处的字句写在答题纸的对应栏内。[函数1.1说明]函数int factors(int n)的功能是判断整数n(n=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。所谓“完全数”是指整数n的所有因子(不包括n)之和等于n自身。例如28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28是“完全数”。[函数1.1]int factors(int n){int i,s;for(i=1,s=0;i=n/2;i++)if(n%i==0) (1) ;if( (2) )return 0;return -1;}[函数1.2说明]函数int maxint(int a[], int k)的功能是用递归方法求指定数组中前k个元素的最大值,并作为函数值返回。[函数1.2]int maxint(int a[],int k){int t;if( (3) ) return (4) ;t=maxint(a+1, (5) );return (a[0]t)?a[0]:t;

考题 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。【函数2.1说明】递归函数sum(int a[], int n)的返回值是数组a[]的前n个元素之和。【函数2.1】int sum (int a[],int n){if(n>0) return (1);else (2);}【函数2.2说明】有3个整数,设计函数compare(int a,int b,int c)求其中最大的数。【函数2.2】int compare (int a, int b, int c ){ int temp, max;(3) a:b;(4) temp:c;}【函数2.3说明】递归函数dec(int a[],int n)判断数组a[]的前n个元素是否是不递增的。不递增返回 1,否则返回0。【函数2.3】int dec( int a[], int n ){if(n<=1) return 1;if(a[0]<a[1]) return 0;return (5);}

考题 阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。【说明】阅读下面几段C++程序回答相应问题。比较下面两段程序的优缺点。①for (i=0; i<N; i++ ){if (condition)//DoSomething…else//DoOtherthing…}②if (condition) {for (i =0; i<N; i++ )//DoSomething}else {for (i=0; i <N; i++ )//DoOtherthing…}

考题 试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

考题 ()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]有一个一维数组cj,内放20个学生成绩,求平均成绩。函数ave用来求20个学生的平均成绩。[C语言函数]float ave(float a[20]){ int i;float aver,sum= (1) ;for(i=1;i20;i++) sum= (2) ;aver= (3) ;return( (4) );}main(){ float cj[20],aver;int i;printf(“input 20 cj:\n”);for(i=0;i20;i++) scanf(“%f”,cj[i]);printf(“\n”);aver= (5) ;printf(“average cj is %6.2f”,aver);}