填空题给定程序MODI1.C中fun函数的功能是求出以下分数序列的前n项之和。和值通过函数值返回main函数。例如,若n=5,则应输出:8.391667。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序如下。#include<stdio.h>/******found*******/fun(intn){inta=2,b=1,c,k;doubles=0.0;for(k=1;k<=n;k++){s=s+1.0*a/b;/********found*******/c=a;a+=b;b+=c;}return(s);}main(){intn=5;printf("/nThevalueoffunctionis:%lf/n",fun(n));}
填空题有以下程序: #include<stdio.h> main() int a=1,b=2,c=3,d=0; if(a==1) if(b1=2) if(c==3) d=1; else d=2; else if(c!=3) d=3; else d=4; else d=5; printf("%d/n",d); 程序运行后的输出结果是______。
填空题以下函数把b字符串连到a字符串的后面,并返回a中新字符串的长度,请填空。
strcen(char a[],char b[])
{
int num=0,n=0;
while(*(a+num)!={{U}} {{U}} {{/U}} {{/U}})num++;
while(b[n]){*(a+num)=b[n];num++;{{U}} {{U}} {{/U}} {{/U}};}
return num;
}
填空题以下程序的输出结果是______。 #include <stdio.h> main() int a[5]=2,4,6,8,10,*p; p=a;p++; prinft("%d",*p);
填空题已有定义;char c=' ';int a=1,b;(此处c的初值为空格字符),执行b=!c &&a;后b的值为{{U}} 【6】 {{/U}}。
填空题下列给定的程序中,函数proc()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#include<math.h>
void proc(int num,int*b,int*c)
{
int i,j,d,y;
for(i=3;i<=num/2;i=i+2)
//****found****
{ y=0;
for(j=2;j<=sqrt((double)i);j++)
if(i%j==0)y=0;
if(y==1)
//****found****
{ d=i-num;
for(j=2;j<=sqrt((double)d);
j++)
if(d%j==0)y=0;
if(y==1)
{ *b=i;*c=d;}
}
}
}
void main()
{ int num,b,c;
do
{ printf("/nInput num:");
scanf("%d",}
while(num%2);
proc(num,
printf("/n/n%d=%d+%d/n",num,b,c);
}
}
填空题设有以下结构体类型: struct st charname[8]; int num; float s[4]; student[50];并且结构体数组student中的元素都已有值。若要将这些元素写到硬盘文件fp中,请将以下 fwrite语句补充完整: fwrite(student, 【20】 ,1,fp);
填空题以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。
#include
main()
{ int n,s;
prinff("Enter a number:");scanf("%d",&n);
printf("output: ");
do
{ S=n%10;printf("%d",s).【 】;}
while(n!=O);
printf("\n");
}
填空题用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。 st=(char *) 【8】 ;
填空题以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。
#define M 2
#define N 4
void SumColumMin(int a[M][N],int *sum)
{ int i,j,k,s=0;
for(i=0;i〈N;i++)
{ k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+= {{U}} 【18】 {{/U}};
}
{{U}} 【19】 {{/U}} =s;
}
main( )
{ int x[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin( {{U}} 【20】 {{/U}} );
printf("%d/n",s);
}
填空题下列程序的运行结果是______。 #define POWER(x)((x)*(x)) main() int i=1; primtf("%d,%d",POWER(i++),i);
填空题以下程序的运行结果为 【7】 。#define N 5main() int a[N]=1,2,3,4,5,i,temp; for (i=0;i<N/2;i++) temp=a[i]; a[i]=a[N-i-1]; a[N-i-1)=temp; printf("/n"); for (i=0;i<n;i++) printf("%d",a[i]);
填空题若有定义语句:int a=5;,则表达式a++的值是______。
填空题下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> #include<string.h> #defineN 5 #defineM 8 int fun(char(*ss)[M],char*t) int i; /***************found**************/ for(i=0;i______;i++) /***********found****************/ if(strcmp(ss[i],t)==0) return ______; return(-1); main() char ch[N][M]="if","while","switch","int","for",t[M]; int n,i; pfintf("/nThe original string/n/n"); for(i=0;i<N;i++)puts(ch[i]); printf("/n"); wintf("/nEnter a string for search:"); gets(t); n=fun(ch,t); /***********found*****************/ if(n==______) printf("/nDon't found!/n"); else printf("/nThe position is%d./n",n);
填空题有以下程序:
main()
{ int t=1, i=5;
for(; i>=0; i--)t*=i;
printf("% d/n", t);
}
执行后的输出结果是{{U}} 【5】 {{/U}}。
填空题请补充函数fun(),该函数的功能是:判断某一个年份是否为闰年。 例如,1900年不是闰年,2004是闰年。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> #include<conio.h> int fun(int n) int flag=0; if (n%4=0) if ( 【1】 ) flag=1; if ( 【2】 ) flag=1; return 【3】 ; main() int year; clrscr(); printf("Input the year:"); scanf("%d", if (fun(year)) printf("%d is a leap year. /n", year); else printf("%d is not a leap year./n", year);
填空题给定程序中,函数fun的功能是建立一个N×N的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,……依此类推。例如,若N=5,生成的矩阵为:请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!试题程序:#inclucle<stdio.h>#defineN7/*********found*********/voidfun(int(*a)________){inti,j,k,m;if(N%2==0)m=N/2;elsem=N/2+1;for(i=0;i<m;i++){/*********found*********/for(j=________;j<N-i;j++)a[i][j]=a[N-i-1][j]=i+1;for(k=i+1;k<N-i;k++)/*********found*********/a[k][i]=a[k][N-i-1]=________;}}main(){intx[N][N]={0},i,j;fun(x);printf("/nTheresultis:/n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%3d",x[i][j]);printf("/n");}}
填空题以下程序运行后的输出结果是______。 #include<stdio.h> int *f(int *p, int *q); main() int m=1, n=2, *r= r=f(r, printf("%d/n", *r); int *f(int *p, int *q) return( *p>*q) ? p:q;
填空题给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
#include<stdlib.h>
#defineN 5
typedef struct
{int num;
char name[10];
char tel[10];
}STYPE;
void check();
/**********foun**********/
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++)
/**********foun**********/
fwrite(
fclose(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);}
printf("/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);
}
填空题下面程序的功能是建立一个有3个节点的单循环链表,如下图所示,然后求各个节点数值域data中数据的和,请填空。#include<stdio.h>#include<stdlib.h>structNODEintdata;structNODE*next;;main()structNODE*p,*q,*r;intsum=0;p=(structNODE*)malloc(sizeof(structNODE));q=(structNODE*)malloc(sizeof(structNODE));r=(structNODE*)malloc(sizeof(structNODE));p->data=100;q->data=200;r->data=300;p->next=q;q->next=r;r->next=P;sum=P->data+P->next->data+r->next->next______:printf("%d/n",sum);
