填空题以下程序中函数fun()的功能是构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单向链表中所有结点中的字符串。请填空完成函数disp。#include<atdio.h>typedefstructnode/*链表结点结构*/charsub[3];structnode*next;NodeNode~un(chars)/*建立链表*/......voiddisp(Node*h)Node*Psp=h->next;while(【17】)printf("%s/n",p->suh);p=【18】;main()Node*hd;hd=fun();disp(hd);prinff("/n");
填空题给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长小于N。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意
:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#include <string.h>
#define M 5
#define N 20
void fun(char(*ss)[N])
{int i,j,k,n[M];char t[N];
for(i=0;i<M;i++)
n[i]=strlen(ss[i]);
for(i=0;i<M-1;i++)
{k=i;
/**********found**********/
for(j=______;j<M;j++)
/********found********/
if(n[k]>n[j])______;
if(k!=i)
{strcpy(t,ss[i]);
strcpy (ss[i],ss[k]);
/********found********/
strcpy(ss[k],______);
n[k]=n[i];
}
}
}
main()
{char ss[M][N]={"shanghaf","guangzhou","beijing","tianjin","chongqing"};
int i;
printf("/nThe original strings are:/n");
for (i=0;i<M;i++)
printf("%s",ss[i]);
printf("/n");
fun(ss);
printf("/nThe result:/n");
for(i=0;i<M;i++)
printf("%s",ss[i]);
}
填空题以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
删除后,数组中的内容应该是:
2 3 4 5 6 7 8 9 10
请填空。
#include<stdio.h>
#define N 80
int fun(int a[],int n)
{ int i,j=1;
for(i=1;i<n;i++)
if(a[j-1]{{U}} 【8】 {{/U}}a[i])
a[j++]=a[i];
{{U}} 【9】 {{/U}};
}
main()
{ int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("The original data :/n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("/nThe data after deleted :/n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("/n/n");
}
填空题有以下程序:
#include<stdio.h>
main( )
{ char c;
while( (c=getchar( ) )!=''?'') putchar(- - c);
}
程序运行时,如果从键盘输入Y? N?<回车>,则输出结果为【 】。
填空题以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。
main()
{int i,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",({{U}} 【16】 {{/U}});
for(i=0;i<20;i++)
{ if(a[i]>0)
{ count++;
sum+=({{U}} 【17】 {{/U}});
}
}
printf("sum=%d,count=%dhn",sum,count);
}
填空题以下函数的功能是删除字符串s中的所有数字字符。请填空。
viod dele(char *s)
{ int n=0,i;
for(i=0;s[i];i++)
if({{U}} 【15】 {{/U}})
s[n++]=s[i];
s[n]={{U}} 【16】 {{/U}};
}
填空题下列给定程序的功能是调用fun函数建立班级通信录。通信录中记录每位学生的编号、姓名和电话号码。班级人数和学生信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下画线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#include <stdlib.h>
#define N 5
typedef struct
{ int num;
char name[10];
char tel[10];
}STYPE;
void cheek();
/**********found**********/
int fun(______ *std)
{
/**********found**********/
______*fp; int i;
if((fp=fopen("myfile5.dat","wb"))==NULL)
return(0);
printf("\nOutput data to file!\n");
for(i=0; i<N; i++)
/**********found**********/
fwrite(
felose(fp);
return(1);
}
main()
{ STYPE s[10]= {{1,"aaaaa","111111"},{1,"bbbbb","222222"},{1,"CCCCC","333333"},{1,"ddddd","444444"},{1,"eeeee","555555"}};
int k;
k=fun(s);
if(k==1)
{ printf("Succeed!"); check(); }
else
printf("Fail!");
}
void check()
{ FILE*fp; int i;
STYPE s[10];
if((fp=fopen("myfile5.dat","rb"))==NULL)
{ printf("Fail!\n"); exit(0);}
plintf("\nRead file and output to screen:\n");
printf("\n num name tel\n");
for(i=0;i<N;i++)
{ fread(
printf("%6d %s %s\n",s[i].num,s[i].name,s[i].tel);
}
fclose(fp);
}
填空题给定程序MODI1.C中函数fun的功能是:计算函数 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y) 的值,其中x和y的值不等,z和y的值不等。 例如,当x的值为9,y的值为11,z的值为15时,函数值为-3.50。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 文件MODI1.C内容如下: #include<stdio.h> #include<math.h> #include<stdlib.h> /**********found**********/ #define FU(m,n) (m/n) double fun(double a,double b,double c) double value; value=FU(a+b,a-b)+FU(c+b,c-b); /**********found**********/ Return(Value); void main( ) double x,y,z,sum; printf("Input x y z: "); seanf("%1f%1f%1f",&x,&y,&z); printf("x=%f,y=%f,z=%f/n",x,y,z); if(x==y||y=z) printf("Data error!/n"); exit(0); sum=fun(x,y,z); printf("The result is:%5.2f/n",sum);
填空题一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有{{U}} (3) {{/U}}个结点。
填空题求主次对角线之和。
main()
{static int a[ ][3]={9,7,5,1,2,4,6,8};
int I,j,s1=0,s2=0;
for(I=0;I<3;I++)
for(j=0;j<3;j++)
{if(__________)
s1=s1+a[I][j];
if( __________ )
s2=s2+a[I][j];
}
printf(“%d\n%d\n”,s1,s2);
}
填空题以下程序运行后的输出结果是 【8】 。 #include <stdio, h> main( ) int a=3,b=4,c=5,t=99; if(b<a a=c;c=t; if(a<e b=a;a=t; printf( "%d %d %d /n" ,a,b,e);
填空题设int a=5,b=6,表达式(++a==b--)?++a:--b的值是 【6】 。
填空题数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【 】。
填空题给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
例如,s所指字符串为“asd123fgh543df”,处理后新字符串为“asdfghdf123543”。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *fun(char *s)
{ int i,j,k,n; char *p,*t;
n=strlen(s)+1;
t=(char*)malloe(n*sizeof(char));
p=(char*)malloe(n*sizeof(ehar));
j=0;k=0;
for(i=0;i<n;i++)
{ if(((s[i]>="a")j++;}
else
{ p[k]=s[i];k++;}
}
/**********found**********/
for(i=0;i<
________
;i++) t[j+i]=p[i];
/**********found**********/
t[j+k]=
________
;
return t;
}
main()
{ char s[80];
printf("Please input:"); scanf("%s",s);
printf("/nThe result is:%s/n",fun(s));
}
填空题若变量n的值为24,则print函数共输出{{U}} 【7】 {{/U}}行,最后一行有{{U}} 【8】 {{/U}}个数。
void print(int n,int aa[])
{ int i;
for(i=1;i<n;i++)
{ printf("%6d",aa[i]);
if(!(i%5)) printf("/n");
}
printf("/n");
}
填空题以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾。单向链表的头指针作为函数值返回。请填空。
#include <stdio.h>
struct list
{ char dara;
struct list *next;
};
struct list *creat()
{ struct list *h,*p,*q;
char ch;
h= (struct list (*) malloc (sizeof (struct list));
______;
ch=getchar();
while(ch!='?')
{ p=(struct list*) malloc) sizeof (struct list));
p->data=ch;
______;
q=p;
ch=getchar();
}
p->next='/0';
______:
}
填空题在给定程序中,函数fun的功能是:求出形参SS所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长<N。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。 文件BLANK1.C内容如下: #include<stdio.h> #include<string.h> #define M 5 #define N 20 void fun(char( *ss)[N]) int i,j,k=0,n,m,len; for(i=0;i<M;i++) len=strlen(ss[i]); if(i==0)n=len: if(len>n) /**********found**********/ n=len; (1) =i; for(i=0;i<M;i++) if(i!=k) m=n: len=strlen(ss[i]); /***********found***********/ for(j= (2) ;j>=0;j--)ss[i][m--]=ss[i][j]; for(j=0;j<n-len;j++) /**********found**********/ (3) ='*': void main( ) char ss[M][N]="shanghai","guangzhou","beijing","tianjing","cchongqing"; int i; printf("/nThe original strings are: /n"); for(i=0;i<M;i++)printf("%s/n",ss[i]); printf("/n"); fun(ss); printf("/nThe resuh:/n"); for(i=0;i<M;i++)printf("%s/n",ss[i]);
填空题下面程序执行后输出的结果是{{U}} {{U}} {{/U}} {{/U}}。
int m=13;
int fun(int x,int y)
{ int m=3;
return(x*y-m);
}
main()
{ int a=7,b=5;
printf("%d/n",fun(a,B) /m);
}
填空题给定程序中,函数fun的功能是计算下式直到,并把计算结果作为函数值返回。例如,若形参e的值为1e-3,函数的返回值为2.985678。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>doublefun(doublee){inti;doubles,x;/**********found**********/s=0;i=________;x=1.0;while(x>e){/**********found**********/________;/**********found**********/x=(2.0*i-1)/((________)*(2.0*i));s=s+x;}returns;}main(){doublee=1e-3;printf("/nTheresultis:%f/n",fun(e));}
填空题有以下程序
int fa(int x){return x*x;}
int fb(int x){return x*x*x;}
int f(int(*fl)(),int(*f2)(),int x}
{return f2(x)-f1(x);}
main()
{int i;i=f(fa,fb,2);printf("%d/n",i);}
程序运行后,输出结果是{{U}} 【8】 {{/U}}。
