填空题假定整数数列中的数不重复,并存放在数组中。下列给定程序中函数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");
}
}
填空题若下面程序的输出结果是4,请填空。 main() int i,j,k; k = 0 ; i = j = 【6】 ; k+=-(i+j);printf("%d/n",k);
填空题下面程序的功能是用来统计文件中字符个数。请填空。 #include"stdio.h" main() long count=OL; FILE*fp= 【16】 ("text.dat","r"); if(fp==0) printf("Open error/n"); exit(0); while( 【17】 ) fgetc(fp); count++; fclise(fp); printf("%1d/n",count);
填空题给定程序MODI1.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值:例如,若m中的值为5,则应输出0.536389。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。文件MODI1.C内容如下:#include<stdio.h>doublefun(intm){doubley=1.0;inti;/**********found**********/for(i=2;i<m;i++)/**********found**********/y-=1/(i*i);return(y);}voidmain{{U}}{{/U}}{intn=5;printf("/nTheresultis%1f/n",fun(n));}
填空题以下 isprime 函数的功能是判断形参 a 是否为素数,是素数,函数返回 1,否则返回 0。 请填空。
int isprime(int a)
{ int i; for(i=2;i<=a/2;i++) if(a%i==0) _________;
_______ ;
}
填空题给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。
请在程序的下画线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
typedef struct
{ int num;
char name[10];
}PERSON;
/**********found**********/
void fun(PERSON ______
{
/**********found**********/
______temp;
if(std[0].num>std[1].num)
{ temp=std[0]; std[0]=std[1];
std[1]=temp; }
if(std[0].num>std[2].num)
{ temp=std[0]; std[0]=std[2];
std[2]=temp; }
if(std[1].num>std[2].num)
{ temp=std[1]; std[1] =std[2];
std[2]=temp; }
}
main()
{ PERSON std[]={5,"Zhanghu",2,"WangLi",6,"LinMin"};
int i;
/**********found**********/
fun ______;
printff(“The result is”:);
for(i=0; i<3; i++)
printf(“%d,%s”,std[i].num,std[i].name.);
}
填空题以下程序是输入m、n的值,求(m+n)/3+(m-n)/3的值,请把程序补充完整。
#include<stdio.h>
int main()
{
int m, n;
______
printf("Please input m, n:");
scanf("%d, %d",
printf("The sum=%d/n", sum(m, n));
return 0;
}
int sum(int i, int j)
{
int k;
k=______;
return k;
}
填空题以下程序中函数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");
}
填空题设y为int型变量,请写出描述“y是偶数”的表达式______。
填空题请补充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】 );
填空题以下程序运行结果是{{U}} 【15】 {{/U}}。
#include<stdio.h>
main()
{ int fun();fun();}
fun()
{ static int a[3]={0,1,2};
int i;
for(i=0;i<3;i++)a[i]+=a[i];
for(i=0;i<3;i++)printf("%d,",a[i]);
printf("/n");}
填空题由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");
}
填空题设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为 【4】 。
填空题当运行以下程序时,输入abcd,程序的输出结果是: _________。
insert(char str[])
{ int i; i=strlen(str); while(i>0)
{ str[2*i]=str[i]; str[2*i-1]= ''*''; i--;}
printf("%s/n",str);
}
main()
{ char str[40];
scanf("%s/n",str); insert(str);
}
填空题以下程序运行后的输出结果是______。#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);
填空题给定程序中,函数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");
填空题在内存中,存储字符'x'要占用1个字节,存储字符串"X"要占用______个字节。
填空题函数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];}
}
填空题已知字母A的ASCII码为65。以下程序运行后的输出结果是______。 main() char a,b; a='A'+'5'-'3';b=a+'6'-'2'; printf("%d %c/n",a,B) ;
填空题在关系运算中, 【4】 运算是对两个具有公共属性的关系所进行的运算。
