填空题请补充main()函数,该函数的功能是求出1!+2!+3!+4!…+N!的和。
例如,1!+2!+3!+4!+…+9!=409113。
注意:部分源程序给出如下。
仅在横线上填写所需要的若干表达式或语句,请勿改动函数中的其他任何内容。
试题程序:
#include<stdio.h>
void main()
{
int i, n;
long sum=0, temp=1;
printf("/nInput n: /n");
scanf("%d", ______);
for(i=1; i<=n; i++)
{
temp=______;
sum=______;
}
printf("1!+…+%d!=%1d/n", n, sum);
}
填空题给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
#include<stdlib.h>
#define N 5
typedef struct node {
int data;
struct node *next;
}NODE;
/***********found***********/
______*fun(NODE*h)
{NODE*p,*q,*r;
p=h;
if(p==NULL)
return NULL;
q=p->next;
p->next=NULL;
while(q)
{
/***********found***********/
r=q->______;
q->next=p;
p=q;
/***********found***********/
q=______;
}
return p;
}
NODE*creatlist(int a[])
{NODE*h,*p,*q;int i;
h=NULL;
for(i=0;i<N;i++)
{q=(NODE*)malloc(sizeof(NODE));
q->data=a[i];
q->next=NULL;
if(h==NULL)h=p=q;
else{p->next=q;p=q;)
}
return h;
}
void outlist(NODE*h)
{NODE*p;
p=h;
if(p==NULL)printf("The list is NULL!/n");
else
{printf("/nHead");
do
{printf("->%d",p->data);p=p->next;
}
while(p!=NULL);
printf("->End/n");
}
}
main()
{NODE*head;
int a[N]={2,4,6,8,10};
head=creatlist(a);
printf("/nThe original list:/n");
outlist(head);
head=fun(head);
printf("/nThe list after inverting:/n");
outlist(head);
}
填空题数组xx[M]保存着一组4位无符号整数,其元素的个数通过变量num传入函数proc()。请补充函数proc(),该函数的功能是:从数组xx中找出个位和百位上的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数proc()返回。
例如,当xx[8]={1111 2413 2321 2222 4245 3333 1414 5335}时,yy[6]={1111 2222 3333 1414}。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define M 1000
int proc(int xx[],int yy[],int nun)
{
int i,n=0;
int g,b;
for(i=0;i<num;i++)
{
g=______;
b=xx[i]/100%10;
if(g==b)
______;
}
return ______;
}
void main()
{
int xx[8]={1111,2413,2321,2222,4245,3333,1414,5335};
int yy[M];
int num=0,n=0,i=0;
num=8;
system("CLS");
printf("****original data****/n");
for(i=0;i<num;i++)
printf("%u",xx[i]);
printf("/n/n/n");
n=proc(xx,yy,num);
printf("/nyy=");
for(i=0;i<n;i++)
printf("%u",yy[i]);
}
填空题算法的复杂度主要包括{{U}} 【2】 {{/U}}复杂度和空间复杂度。
填空题请补充函数fun(),该函数的功能是:输出一个N×N矩阵,N由键盘输入,矩阵元素的值为随机数,并计算出该矩阵四周边元素的平均值,结果由函数返回。例如:当N=4时:注章:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序;#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN20doublefun(inta[][N],intn)inti,j;intk;doubles=0.0;doubleaver=0.0;printf("*****Thearray*****/n");for(i=0;i<n;i++)for(j=0;j<n;j++)a[i][j]=rand()%10;printf("%4d",a[i][j]);if(【1】)s+=a[i][j];printf("/n");k=【2】;aver=【3】;returnaver;main()inta[N][N];intn;doubles;Clrscr();printf("*****InputthedimensionofarrayN*****/n");scanf("%d",&n);s=fun(a,n);printf("*****THERESULT*****/n");printf("Theaverageis%2,3f/n",s);
填空题设有下列宏定义: #defineA2
#define B A+3
则执行赋值语句:t=B*2;t为int型变量后的值是______。
填空题下列程序舶输出结果是{{U}} {{/U}}。 #include <stdio.h> main() int a[5]=2,4,6,8,10,*p; p=a;p++; printf("%d",*p);
填空题请补充main()函数,该函数的功能是:计算每个学生成绩的平均分,并把结果保存在数组aver中。 例如,当score[N][M]=(83.5,82,86,65,67,80,91.5,84,99,95,90.5,95,86,95,97时,3个学生的平均分为76.7 89.9 92.7。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdlib.h> #include<stdio.h> #define N 3 #define M 5 void main() int i,j; static float score[N][M]=(83.5,82,86,65,67),80,91.5,84,99,95,90.5,95,86,95,97; float aver[N]; system("CLS"); for(i=0;i<N;i++) (1) ; for(i=0;i<N;i++) for(j=0;j<M;j++) (2) ; aver[i]/=M; for(i=0;i<N;i++) printf("/nstudent%dktaverage=%5.1f",i+1,aver[i]);
填空题程序测试分为静态测试和动态测试。其中 [3] 是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
填空题下列给定程序中,函数fun的功能是:计算一个带头结点的单向链表中各结点的数据域中数值之和,结果作为函数值返回。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<stdlib.h>
#define N 8
typedef struct list
{int data;
struct list *next;
}SLIST;
SLIST *creatlist(int*);
void outlist(SLIST *);
int fun(SLIST *h)
(SLIST *p; inl s=0;
p=h->next;
while(p)
{
/**********found**********/
s+=p->______;
/**********found**********/
p=p->______;
}
return s;
}
main()
{SLIST* head;
int a[N]={12,87,45,32,91,16,20,48};
head=creatlist(a);
outlist(head);
/**********found**********/
printf("/nsum=%d/n", fun(______));
}
SLIST *creatlist(int a[])
{SLIST *h, *p, *q; int i;
h=p=(SLIST *)malloc(sizeof(SLIST));
for(i=0; i<N; i++)
{q=(SLIST *)malloc(sizeof(SLIST));
q->data=a[i]; p->next=q;
p=q;
}
p->next=0;
return h;
}
void outlist(SLIST *h)
{SLIST *p;
p=h->next;
if(p==NULL)
printf("The list is NULL!/n");
else
{printf("/nHead");
do
{printf("->%d", p->data);
p=p->next;}
while(p!=NULL);
printf("->End/n");
}
}
填空题在关系运算中,{{U}} 【5】 {{/U}}运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。
填空题设有以下程序,为使之正确运行,请在下划线中填入应包含的命令行。(注:try_me()函数在a:/myfile.txt中有定义。) ______ main() printf("/n"); try_me(); printf("/n");
填空题已知字符A的ASCII码值为65,以下语句的输出结果是______。 char ch='B'; printf("%c%d/n", ch, ch);
填空题下面invert函数的功能是将一个字符串str的内容颠倒过来,请填空。
#include<string.h>
void invert(char str[])
{ int i,j,{{U}} 【17】 {{/U}};
for(i=0,j=strlen(str) {{U}}【18】 {{/U}};i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;
}
}
填空题函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,当s<t时返回负值。请填空。 my_cmp(char *s,char *t) while(*s==*t) if(*s=='/0')return 0; ++s; ++t; return 【11】 ;
填空题以下程序运行后的输出结果是______。 #include <stdio.h> main() int x=10,y=20,t=0; if(x==y)t=x;x=y;y=t; printf("%d%d/n",x,y);
填空题以下程序运行后的输出结果是______。main() int a=3,b=4,c=5,t=99;if(b<A&&Aif(a<C&&Bprintf("%d%d%d\n",a,b,c);
填空题下面程序的输出结果是{{U}} 【8】 {{/U}}。
unsigned fun6(unsigned num)
{ unsigned k=1;
do { k*=hum%10;
num/=10;}while(num);
return(k); }
main()
{ unsigned n=26;
printf("%d/n",fun6(n));}
填空题函数fun()的功能是:将形参a所指数组中的前半部分元素的值和后半部分元素的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。例如,若a所指数组中的数据依次为1、2、3、4、5、6、7、8、9,则调换后为6、7、8、9、5、1、2、3、4。 #include<stdio.h> #define N 9 void fun(int a[],int n) int i,t,p; /**********found**********/ p=(n%2==0)?n/2:n/2+ (1) ; for(i=0;i<n/2;i++) t=a[i]; /**********found**********/ a[i]=a[p+ (2) ]; /**********found**********/ (3) =t; main() int b[N]=1,2,3,4,5,6,7,8,9,i; printf("/nThe original data:/n"); for(i=0;i<N;i++)printf("%4d",b[i]); printf("/n”); fun(b,N); printf("nThe data after moving:/n"); for(i=0;i<N;i++)printf("%4d",b[i]); printf("/n");
填空题以下程序运行时若从键盘输入:10 20 30<回车>。输出结果是 (6) 。 #include main() { int i=0, j=0,k=0; scanf(“%d%*d%d”,&i,&j,&k); printf(“%d%d%d/n”,i,j,k); }