函数subplot(m,n,p),m,n,p中哪个表示区号,区号按行还是列优先编号?()

题目
单选题
函数subplot(m,n,p),m,n,p中哪个表示区号,区号按行还是列优先编号?()
A

p列

B

n列

C

n行

D

p行

参考答案和解析
正确答案: B
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列给定程序中,函数fun()的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。

请改正程序中的错误,使它能得到正确结果。

[注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。

[试题源程序]

include<stdio.h>

define N 20

void fun(int a[], int n)

{

int i, j, t, p;

for(j=0; j<n-1; j++){

/***********found***********/

p=j

for(i=j; i<n; i++)

if(a[i]<a[p])

/***********found***********/

p=j;

t=a[P];

a[p]=a[j];

a[j]=t;

}

}

msin()

{

int a [N]=(9, 6, 8, 3, -1), i, m=5;

printf("排序前的数据:”);

for(i=0; i<m; i++)

printf("%d", a[i]);

printf("\n");

fun(a, m);

printf("排序后的数据:");

for(i=0; i<m; i++)

printf("%d", a[i]);

printf("\n");

}


正确答案:(1)错误:p=j 正确:p=; (2)错误:p=j; 正确:p=i;
(1)错误:p=j 正确:p=; (2)错误:p=j; 正确:p=i; 解析:题中提到按“从小到大”的顺序排序,这类题目都可以用选择排序法,即从后N个比较过程中,选择一个最小的与第一个元素交换,以此类推,即用第二个元素与后N-1个进行比较,并进行交换。
错误1:此处错误比较明显,p=j后面应加分号。
错误2:根据选择排序法的思路,此处应将i赋给p。

第2题:

请编一个函数void fun( int tt[M][N], int pp[N], tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include <conio.h>

include <stdio.h>

define M 3

define N 4

void fun(int tt[M][N],int pp[N])

{

}

main()

{

int t[M] [N]={{68,32,54,12},{14,24,88,

58},{42, 22, 44, 56}};

int p[N],i,j,k;

clrscr();

printf("The riginal data is:\n");

for(i=0;i<M;i++)

{

for(j=0;j<N;j++)

printf("%6d",t[i][j]);

printf("\n");

}

fun(t,p);

printf("\nThe result is:\n");

for(k=0;k<N;k++)

printf("%4d",p[k]);

printf("\n");

}


正确答案:void fun(int tt[M][N]int pp[N]) { int iimax; for(j=0;jN;j++) { max=tt[0][j]; /*假设各列中的第一个元素最大*/ for(i=0;iM;i++) if(tt[i][j]>max) /*如果各列中的其他元素比最大值大则将这个更大的元素看作当前该列中最大元素*/ max=tt[i][j]; pp[j]=max; /*将各列的最大值依次放入pp数组中*/ } }
void fun(int tt[M][N],int pp[N]) { int i,i,max; for(j=0;jN;j++) { max=tt[0][j]; /*假设各列中的第一个元素最大*/ for(i=0;iM;i++) if(tt[i][j]>max) /*如果各列中的其他元素比最大值大,则将这个更大的元素看作当前该列中最大元素*/ max=tt[i][j]; pp[j]=max; /*将各列的最大值依次放入pp数组中*/ } } 解析:本题中函数的功能是求出二维数组中每列的最大元素。首先,假设各列中的第一个元素最大,然后利用行标值的移动来依次取得各列中其他元素的值,并与假设的最大值进行比较,如果遇到更大的,则把这个更大的元素看做当前该列中最大的元素,继续与该列中其他元素比较。

第3题:

● 用数学归纳法证明命题 P(n)对任何自然数正确,一般包括两个步骤:第一,建立基础,例如证明P(1)正确;第二,建立推理关系,例如证明n≥1 时,如果命题P(n)正确则可以推断命题P(n+1)也正确。这种推理关系可以简写为:n≥1 时P(n)→P(n+1)。 将上述数学归纳法推广到二维情况。为证明命题P(m,n)对任何自然数m与n正确,先证明P(1,1)正确,再证明推理关系 (53) 正确 。

(53)

A. m≥1,n≥1时,P(m,n)→P(m+1,n+1)

B. m≥1,n≥1时,P(m,n)→P(m,n+1)以及P(m+1,n+1)

C. m≥1,n≥1时,P(m,n)→P(m+1,n)以及P(m,n+1)

D. n≥1时,P(1,n)→P(1,n+1);m≥1,n≥1时,P(m,n)→P(m+1,n+1)


正确答案:C


第4题:

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

【说明】

有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。

【函数】

main()

{

int number[20],n,m,i;

printf("the total numbers is:");

scanf("%d",&n);

printf("back m:");

scanf("%d",&m);

for(i=0;i<=n-1;i)

scanf("%d,",&number[i]);

(1);

for(i=0;i<=n-1;i)

printf("%d,",number[i]);

}

move(array,n,m)

int n,m,array[20];

{

int *p,array_end;

array_end=(2);

for(p=array[n-1];(3);p--)

*p=(4);

*array=array_end;

m--;

if(m>0) (5);

}


正确答案:(1)move(numbernm) (2)*(array[n-1]) (3)p>array (4)*(p-1) (5)move(arraynm)
(1)move(number,n,m) (2)*(array[n-1]) (3)p>array (4)*(p-1) (5)move(array,n,m) 解析:本题考查数字顺序移动和数组的相关知识。
从数据结构的角度出发,数字在数组中顺序移动,就是将数字一个一个往后搬,例如,将n-1位置的数字移到n位置,然后再把n-2位置的数字移到n-1位置,其实这是一个简单的数字移动。我们只需要取出第n个位置的数字并保存在一个临时变量中,然后,其他的就按顺序依次移动即可,直到一次整体移动完成,我们再从临时变量中取回数字并将其放在数组的第一个位置中。重复这个过程m次,整个数组就往后移动了m个位置。
首先,我们来看一下主函数,在主函数里面声明了一个容量为20的整型数组 number[20]和其余3个整型变量,数组用来存储我们输入的待处理的数,而变量m、n分别用于存放我们要移动位置的个数和输入整数的个数。第一个循环语句用于n个整数的输入,第二个循环语句用于n个整数的输出,在这中间应该还有一个处理来完成将n个整数顺序向后移m个位置,并让最后m个数变成最前面的m个数这个功能,从下面的程序段我们知道,这里是调用函数muve(number,n,m)来完成的。因此,第(1)空填 move(nurnber,n,m),在调用时我们需要注意参数的传递。
再来看move(array,n,m)函数,在此函数中,同样声明了一个容量为20的整型数组和 2个整型变量,另外还声明了一个指针变量p。由*array=array_end,结合第(2)空来看,这里是把数组中最后位置的数取出存放在array_end变量当中。因此,第(2)空应填 *(array[n-1])。
第(3)空是常见的在循环语句中表示判断的语句,由于“p=array[n-1]”把数组最末的地址赋给了指针p,只要p的值大于数组的起始地址循环就可以继续,因此,第(3)空应填p>array。
第(4)空要完成的任务是将数字后移,因此,第(4)空为*p-1。从程序来分析,数组每移动完成一次,m的值就减一,而现在只有移动m次的功能没有实现,因此,只要m值大于0,就调用函数自身来实现再次移动。因此,第(5)空填写move(array,n,m)进行递归调用。

第5题:

若关系R为M列P行,关系S为N列Q行,则()的结果为M+N列P×Q行。

A.R-S

B.R×S

C.R÷S


参考答案:B

第6题:

若关系R为M列P行,关系S为N列Q行,则R×S的结果为()列()行。

A.M+N、P+Q

B.M+N、P×Q

C.M×N、P+Q

D.M×N、P×Q


参考答案:B

第7题:

下列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。请改正程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include<stdio.h>

define N 20

void fun(int a[ ],int n)

{

int i,j,t,p;

/*************found*************/

for(j=0;j<n-1;j++) ;

{

p=j;

for(i=j;i<n;i++)

if(a[i)>a[p])

p=i;

t=a[p];

a[p]=a[i];

/*************found**************/

a[p]=t;

}

}

main()

{

int a[N]={11,32,-5,2,14},i,m=5;

printf(“排序前的数据:”);

for(i=0;i<m;i++)

printf(“%d”,a[i]);

printf(“\n”);

fun(a,m);

printf(“排序后的顺序:”);

for(i=0;i<m;i++)

printf(“%d”,a[i]);

printf(“\n”);

}


正确答案:(1)错误:for(j=0;jn-1;j++); 正确:for(j=0;jn-1;j++) (2) 错误:a[p]=t 正确:a[j]=t;
(1)错误:for(j=0;jn-1;j++); 正确:for(j=0;jn-1;j++) (2) 错误:a[p]=t 正确:a[j]=t; 解析:错误1:根据C语言语法,for循环中循环条件后不加分号,除非做空操作。错误2:将两数进行交换的常用语句,借助第三个变量。

第8题:

编写函数fun(),它的功能是;根据以下公式求p的值,结果由函数值带回。m与n为两个正数且要求m>n。

P=m!/n!(m-n)!),例如:m=12,n=8时,运行结果为495.000000。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include <conio.h>

include <stdio.h>

float fun (int m, int n)

{

}

main()

{

clrscr() ;

printf ("p=%f\n", fun (12,8) ) ;

}


正确答案:float fun (int m int n) { int i; double p=1.0; for(i=1;i=m;i++) p=p*i; /*求m!*/ for(i=1;i=n;i++) p=p/i; /*求m!/n!*/ for(i=1;i=m-n;i++) p=p/i; /*求m!/(n!(m-n)!)*/ return p; }
float fun (int m, int n) { int i; double p=1.0; for(i=1;i=m;i++) p=p*i; /*求m!*/ for(i=1;i=n;i++) p=p/i; /*求m!/n!*/ for(i=1;i=m-n;i++) p=p/i; /*求m!/(n!(m-n)!)*/ return p; } 解析:本题中,欲求P的值,需要先求m,n,m-n的阶乘值,可用循环语句实现。注意阶乘值应当是double类型,若定义x,y,z为整型变量,则p=x/(y*z)中的除法为整数除法。

第9题:

有以下程序: main() { int m,n,p; scan f("m=%dn=%dp=%d",&m,&n,&p); print("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是( )。

A.m=123n=456P=789

B.m=123 n=456 p=789

C.m=123,n=456,p=789

D.123 456 789


正确答案:A
解析:本题若想使变量m的值为123、n为456、p为789,则应该输入的字符串为:用这三个数据按m、n、p出现在scaaf()函数中的位置顺序替换掉scant()函数格式控制串中的格式控制符后所得到的格式控制串,即"m=123n=456p=789"。所以,4个选项十选项A符合题意。

第10题:

有以下程序 main () int m,n,p; scanf ( "m=%dn=%dp=%d" , &m, &n, &p); printf("%d %d %d\n", m, n, p); 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,

A.m=123n=456p=789

B.m=123 n=456 p=789

C.m=123,n=456,p=789

D.123 456 789


正确答案:A
解析:本题考查的是标准输入函数scanf()的运用。scanf函数的第一个参数是格式控制串,若在格式控制串中插入了格式控制符以外的其他字符,则在输入数据时要在对应的位置原样输入这些字符才能正确输入。所以本题若想使变量m的值为123、n为456、p为789,则应该输入的字符串为:用这三个数据按m、n、p出现在scanf()函数中的位置顺序替换掉scanf()函数格式控制串中的格式控制符后所得到的格式控制串,即“m=123n=456p=789”。所以,4个选项中选项A符合题意。

更多相关问题