填空题近年来形成了软件开发的多种模式,大致有3种类型:基于瀑布模型的结构化生命周期方法、基于动态定义需求的 【4】 方法和基于结构的面向对象的软件开发方法。
填空题 【5】 是指一个数据对象中的各个数据元素之间存在的联系。
填空题给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000移动后的输出为:30 6 17 15 26 46 32 40 45 48
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1. C中。不得增行或删行,也不得更改程序的结构!
#include <stdlib. h>
#include <stdio.h>
#define N 10
double fun(double *x)
{int i, j; double av, y[N];
av=0;
/**********found**********/
for(i=0; i<N; i++) av+= ______;
for(i=j=0; i<N; i++)
if(x[i]<av){
/**********found**********/
y[j]=x[i]; x[i]=-1; ______;}
i=0;
while(i<N)
{if(x[i]!=-1) y[j++]=x[i];
/**********found**********/
______;
}
for(i=0; i<N; i++)x[i]=y[i];
return av;
}
main( )
{int i; double x[N];
for(i=0; i<N; i++)(x[i]=rand( )%50;
printf("%4.0f", x[i]);}
printf("/n");
printf("/nThe average is: %f/n",
fun(x));
printf("/nThe
result:/n", fun(x));
for(i=0; i<N; i++) printf("%5.0f", x[i]);
printf("/n");
}
填空题已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是一______。
填空题下列程序中的函数strcpy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如t所指字符串为efgh,调用strcpy2后,s所指字符串为efghefgh。请填空。 #include<stdio.h> #include<string.h> void strcpy2(char*s,char*t) char*P=t; while(*s++=*t++); s= (12) ; while( (13) =*P++); main() char str1[100]="ahcd",str2[]="efgh"; strcpy2(str1,str2);printf("%s/n",str1);
填空题下列给定的程序中,函数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");
}
填空题Internet的信息服务方式分为基本服务和扩展服务,电子邮件属于{{U}} 【3】 {{/U}} 。
填空题以下程序通过函数指针p调用函数fun,请在填空栏内写出定义变量p的语句。 void fun(int x,int * y) …… main() int a=10,b=20; 【12】 ; /*定义变量p*/ p=fun;p(
填空题以下程序段的输出结果是______。
int k, n, m;
n=10; m=1; k=1;
while(k++<=n) m*=2;
printf("%d/n", m);
填空题有以下程序: int sub(int n) return(n/10+n%10); main() int x, y; scanf("% d", y=sub(sub(sub(x))); printf("% d/n", y); 若运行时输入:1234<回车>,程序的输出结果是 【6】 。
填空题当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行______次。 #include<stdioh> main() char ch; while((ch=getchar())=='0')printf("#");
填空题下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。 例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> int fun(int a,int b) int r,t: if(a<b) /*********found*********/ t=a;b=a;a=t; r=a%b; while(r!=0) a=b;b=r;r=a%b; /*********found*********/ return(a); void main() int num1,hum2,a; printf("Input num1 num2:"); scanf("%d%d",&num1,&num2); printf("num1=%d num2=%d/n/n",num1,num2); a=fun(num1,num2): printf("The maximun common divisor is%d/n/n",a);
填空题以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。
请填空。
void sstrcpy(char*s,char*t)
{while(*s++={{U}} 【15】 {{/U}});}
main()
{ char strl[100],str2[]="abcdefgh";
sstrcpy(strl,str2);
printf("%s/n",strl);
}
填空题下面函数用来求出两个整数之和,并通过形参传回两数相加之和值。请填空。
int add(int x,inty,{{U}} 【15】 {{/U}},)
{ {{U}} 【16】 {{/U}} =x + y;}
填空题函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。
void delete(char s[],int i,int n)
{ int j,k,length=0;
whiles(length])
{{U}} 【16】 {{/U}};
-i;
j=i;
}
if({{U}} 【17】 {{/U}})
{ k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='/0';
}
填空题有以下程序: #include <stdio.h> main() int t=1,i=5; for(;i>=0;i--) t*=i; printf("%d//n",t); 执行后的输出结果是{{U}} {{/U}}。
填空题给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长小于N。
请在程序的下划线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
#define M 5
#define N 20
void fun(char(*ss)[N])
{int i,j,n,len=0;
for(i=0;i<M;i++)
{len=strlen(ss[i]);
if(i==0)n=len;
if(len>n)n=len;
}
for(i=0;i<M;i++){
/**********found**********/
n=strlen(______);
for(j=0;j<len-n;j++)
/**********found**********/
ss[i]______="*";
/**********found**********/
ss[i][n+j+______]="/0";
}
}
main()
{char ss[M][N]={"shanghai","guangzhou","beijing","tianjin","chongqing"};
int i;
printf("The original strings are:/n");
for(i=0;i<M;i++)
printf("%s",ss[i];
printf("/n");
fun(ss);
printf("The result is:/n");
for(i=0;i<M;i++)
printf("%s",ss[i]);
}
填空题以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串yes!,否则函数返回字符串no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。 #include<string.h> char*huiwen (char*str) char*p1,*p2;int i,t=0; p1=str;p2=______。 for(i=0;i<strlen(str)/2;i++) if(*p1++!=*p2-)t=1;break; if(______)return("yes"!); else return("no!"); main() char str[50]; printf("Input:");scanf("%s",str); printf("%s/n", ______);
填空题字符串str由数字字符‘0’和‘1’组成(长度不超过8个字符),可看作二进制数,请补充函数fun(),该函数的功能是:把str字符串转换成十进制数,结果由函数返回。例如,输入“1001”,结果输出:9。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int fun(char *str)
{
int n;
char *p=str;
{{U}}【1】 {{/U}};
p++;
while (*p)
{
n={{U}} 【2】 {{/U}};
p++;
}
return{{U}} 【3】 {{/U}};
}
main()
{
char str[9];
int i;
int n;
printf ("Enter a string made up of '0' and
'1' digital character:");
gets (str);
if (strlen(str)>8)
{
printf ("Error:string too longer!
please input again !/n/n");
exit(0);
}
for(i=0;str[i];i++)
if(str[i]<'0'||str[i]>'1')
{
printf("Error:%c not is '0'and
'1' digital character !/n/n",
str[i]);
exit(0);
}
printf("The original string:");
puts(str);
n=fun(str);
printf("/n%s is convered to decimal
number:%d/n/n",str,n);
}
填空题fseek函数的正确调用形式是______。
