填空题以下程序中函数fun的功能是求出能整除x且不是偶数的务正整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。
请按题意,完成填空。
试题程序:
#include <stdio.h>
void fun(int x,int pp[],int *n)
{ int i,j=0;
{{U}}【13】 {{/U}};
if(x%i==0)pp[j++]=i;
{{U}}【14】 {{/U}};
}
main()
{ int x,aa[1000],n,i;
printf("/nPlease enteran integer number :/n");
scanf("%d",&x);
fun(x,aa,&n);
for(i=0;i<n;i++) printf("%d",aa[i]);
printf("/n");
}
填空题给定程序中,函数fun的功能是:判定形参a所指的NxN(规定N为奇数)的矩阵是否是“幻方”,若是,则函数返回值为1;若不是,则函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include <stdio.h> #define N 3 int fun (int(+a)[N]) int i, j, m1, m2, row, colum; m1=m2=0; for(i=0; i<N; i++) j=N-i-1; m1+=a[i][i]; m2+=a[i][j]; if(m1!=m2) return 0; for(i=0; i<N; i++) /******************found*******************/ row=colum= (1) ; for(j=0; j<N; j++) row+=a[i][j]; colum+=a[j][i]; /******************found*******************/ if(row!=colum) (2) (row!=m1)) return 0; /******************found*******************/ return (3) ; main() int x[N][N], i, j; printf("Enter number for array:/n"); for(i=0; i<N; i++) for(j=0; j<N; j++) scanf("%d", &x[i][j]); printf("Array:/n"); for(i=0; i<N; i++) for(j=0; j<N; j++) printf("%3d", x[i][j]); printf("/n"); if(fun(x)) printf("The Array is a magic square./n"); else printf("The Array isn't a magic square./n");
填空题请补充main函数,该函数的功能是:如果数组aa的前一个元素比后一个元素小,则把它保存在数组比中并输出。 例如,输入“40,51,62,33,35,52,48,95,66, 73”,则结果输出“40,51,33,35,48,66”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio. h> #define N 10 main ( ) int i, n=0; int aa [N]=40, 51, 62,33, 35, 52, 48, 95, 66,73; int bb[N]; clrscr (); for (i=0; i< 【1】 ; i++) if (aa [i] <aa [i+l] ) 【2】 ; printf("/n*** display bb ***In"); for (i=0; i<n; i++) printf("bb[%d]=%2d ", 【3】 );
填空题函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。
#define N 4 void rotate(int a[][N],int b[][N])
{int i,j; for(i=0;i<N;i++) {b[i][N-1]={{U}}
(13) {{/U}};{{U}} (14) {{/U}}=a[N-1][i];}
}
填空题假定整数数列中的数不重复,并存放在数组中。下列给定程序中函数fun的功能是:删除数列中值为X的元素,变量n中存放数列中元素的个数。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 20
fun(int*a, int n, int x)
{
int p=0, i;
a[n]=x;
while[x!=a[p])
p=p+1;
/**********found**********/
if(p==n)
return-1;
else
{
for(i=p; i<n; i++)
/**********found**********/
a[i+1]=a[i];
return n-1;
}
}
void main()
{
int w[N]=(-3,0,1,5,7,99,10,15,30,90], x, n, i;
n=10;
printf("The original data:/n");
for(i=0; i<n; i++)
printf("%5d", w[i]);
printf("/nInput x(to delete):");
scanf("%d",
printf("Delete:%d/n", x);
n=fun(w, n, x);
if(n==-1)
printf("***No be found!***/n/n");
else
{
printf("The data after deleted:/n");
for(i=0; i<n; i++)
printf("%5d", w[i]);
printf("/n/n");
}
}
填空题设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为 【4】 。
填空题以下程序运行后的输出结果是______。#includechar *ss(char *s) char *p, t;p=s+1; t=*s;while(*p) *(p-1) = *p; p++;*(p-1)=t;return s;main() char *p, str[10]="abcdefgh";p = ss(str);printf("%s\n",p);
填空题在内存中,存储字符'x'要占用1个字节,存储字符串"X"要占用______个字节。
填空题由N个有序整数组成的数列已放在一维数组中,下列给定程序函数fun()的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low<high),然后用m与中间位置(mid)上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范同落在中间位置之前的元素中,直到low>high,查找结束。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 10
//****found****
void fun(int a[],int m)
{int low=0,high=N-1,mid;
while(low<=high)
{ mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
//****found****
else if(m>a[mid])
low=mid+1;
else return(mid);
}
return(-1);
}
void main()
{int i,a[N]={-3,4,7,9,13,45,67,89,100,180},k,m;
printf("a数组中的数据如下:");
for(i=0;i<N;i++)
printf("%d",a[i]);
printf("Enter m:");
scanf("%d",
k=fun(a,m);
if(k>=0)
printf("m=%d,index=%d/n",m,k);
else printf("Not be found!/n");
}
填空题已知字母A的ASCII码为65。以下程序运行后的输出结果是______。 main() char a,b; a='A'+'5'-'3';b=a+'6'-'2'; printf("%d %c/n",a,B) ;
填空题若下面程序的输出结果是4,请填空。 main() int i,j,k; k = 0 ; i = j = 【6】 ; k+=-(i+j);printf("%d/n",k);
填空题以下 isprime 函数的功能是判断形参 a 是否为素数,是素数,函数返回 1,否则返回 0。 请填空。
int isprime(int a)
{ int i; for(i=2;i<=a/2;i++) if(a%i==0) _________;
_______ ;
}
填空题在关系运算中, 【4】 运算是对两个具有公共属性的关系所进行的运算。
填空题请补充函数fun(),该函数的功能是把数组aa中的偶数元素按原来的先后顺序放在原数组后面。
例如,输入“33,67,42,58,25,76,85,16,41,56”,输出结果“33,67,25,85,41,42,58,76,16,56”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#define N 10
void fun (int aa [] )
{
int i, j=0,k=0;
int bb [N];
for (i=0;i<N; i++)
{
if ({{U}} 【1】 {{/U}})
bb [k++] =aa [i];
else
aa [ j ++ ] =aa [i];
}
for(i=0;{{U}} 【2】 {{/U}};i++,j++)
aa[j] =bb [i];
}
main ( )
{
int i;
int aa[N]={33, 67,42,58,25, 76, 85, 16,
41,56};
clrscr ();
printf("/n*** original list ***/n");
for (i=0;i<N; i++)
printf ("%4d", aa [i] );
fun (aa);
printf("/n*** new list ***/n ");
for (i=0; i<N; i++)
printf ("%4d", aa [i] );
}
填空题以下程序运行后的输出结果是{{U}} 【7】 {{/U}}。
main()
{ int x=1,y=0,a=0,b=0;
switch (x)
{ case1:switch (y)
{ case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("% d%d/n",a,b);
}
填空题有以下程序段:
s=1.0;
for(k=1; k<=n; k++) s=s+1.0/(k*(k+1));
printf("%f/n", s);
请填空,使下面的程序段的功能完全与之等同。
s=0.0;
______;
k=0;
do
{s=s+d;
______;
d=1.0/(k*(k+1));
}while(______);
printf("%f/n", s);
填空题以下程序的输出结果是______。 main() int a=0; a+=(a=8); printf("%d/n",A) ;
填空题有以下程序:
#include <stdio.h>
main()
{ char c;
while((c=getchar())!='?') putchar(--c);
}
程序运行时,如果从键盘输入Y?N?<回车>,则输出结果为{{U}} 【9】 {{/U}}。
填空题下列给定程序中函数fun的功能是:把从主函数中输入的3个数,最大的数放在a中,中间的数放在b中,最小的数放在C中。
例如,若输入的数为:55 12 34,输出的结果应当是.a=55.0,b=34.0,c=12.0。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(float*a,float*b,float*c)
{
/*********found*********/
float*k;
if(*a<*b)
{
k=*a:
*a=*b:
*b=k;
}
/*********found*********/
if(*a>*c)
{
k=*c:
*c=*a:
*a=k;
}
if(*b<*c){
k=*b;
*b=*c;
*c=k;
}
}
void main()
{
float a,b,c;
printf("Input a b c:");
scanf("%f%f%f",&a,&b,&c);
printf("a=%4.1f,b=%4.1f,c=%4.1f/n/n",a,b,c);
fun(&a,&b,&c);
printf("a=%4.1f,b=%4.1f,c=%4.1f/n/n",a,b,c);
}
填空题以下程序中select函数的功能是: 在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。
#define N 3
#define M 3
select{int a[N][M],int *n;
{ int i,j,row=l,eolum=l;
for(i=0;i<N;i++
for j=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j:}
*n=______;
return______;
}
main()
{ int a[N][M]={9,11,23.6,1,15,9,17,20}, max,nj
max=select(a,
printf("max=%d, line=%d/n",max.n ;
}
