填空题请补充函数fun(),该函数的功能是建立一个带头结点的单向链表并输出到文件“out98.dat”和屏幕上,各结点的值为对应的下标,链表的结点数及输出的文件名作为参数传入。 注意:部分源程序给出如下。 请勿改动主函数main 和其他函数中的任何内容,仪在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio. h> #include<conio. h> #include<stdlib. h> typedef struct ss { int data; struct ss *next; } NODE; void fun(int n,char*filename) { NODE *h,*p, *s; FILE *pf; int i; h=p= (NODE *) malloc (sizeof (NODE)); h->data=0; for (i=1; i { s=(NODE *)malloc (sizeof (NODE)); s->data={{U}} 【1】 {{/U}}; {{U}} 【2】 {{/U}}; p={{U}} 【3】 {{/U}} } p->next=NULL; if ( (pf=fopen (filename, "w") ) ==NULL) { printf {"Can not open out9B.clat! "); exit (0); } p=h; fprintf (pf, "/n***THE LIST***/n"); print f ("/n***THE LIST***/n") while (p) { fprintf (pf, "%3d", p->data) printf ("%3d",p->data); if (p->next ! =NULL) { fprintf (pf, "->"); printf ("->"); } p=p->next; } fprintf (pf, "/n"); printf ("/n"); fclose (pf); p=h; while (p) { s=p; p=p->next; free (s); } } main() { char * filename="out98. dat"; int n; clrscr (); printf (" /nInput n: "); scanf ("%d", fun (n, filename); }
填空题有以下程序; int a=2; int f(int *A) return(*A) ++; main() int s=0; int a=5; s+=f(&A) s+=f(&A) printf("%d/n",s) 执行后的输出结果是 【8】 。
填空题有以下程序
main()
{ int n=0,m+1,X=2;
if(!n) X-=l;
if(m) X-=2;
if(X) X-=3;
printf("%d/n",x);
}
执行后输出的结果是
________
。
填空题以下程序运行后的输出结果是{{U}} 【14】 {{/U}}。
fun(iht x)
{ if(x/2>0) fun(x/2);
printf("%d",x);
}
main()
{ fun(6); }
填空题已知字符A的ASCⅡ代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是______。 #include <stdio.h> main() char a,b; a=getchar();scanf("%d", a=a-'A'+'0';b=b*2; printf("%c%c/n",a,b);
填空题下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>
#include<malloc.h>
#define M 10
typedef struct ss
{
char num[10];
int s;
}
STU;
STU*proc(STU a[],int m)
{
STU b[M],*t;
int i,j,k;
//****found****
*t=calloc(m,sizeof(STU));
for(i=0;i<M;i++)b[i]=a[i];
for(k=0;k<m;k++)
{
for(i=j=0;i<M;i++)
if(b[i].s>b[j].s)j=i;
//****found****
t[k]num=b[j].num;
t[k].s=b[j].s;
b[j].s=0;
}
return t;
}
void outresult(STU a[],FILE*pf)
{
int i;
for(i=0;i<M;i++)
fprintf(pf,"No=%sMark=%d/n",
a[i].num,a[j].s);
fprintf(pf,"/n/n");
}
void main()
{ STU stu[M]={{"A01",81},{"A02",89},
{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},
{"A09",80},{"A10",71}};
STU*pOrder;
int i,m;
system("CLS");
printf("****THE RESULT****/n");
outresult(stu,stdout);
printf("/nGive the number of the students who have better score:");
scanf("%d",
while(m>10)
{
printf("/nGive the number of the students who have better score:");
scanf("%d",
}
pOrder=proc(stu,m);
ptintf("****THE RESULT****/n");
printf("The top:/n");
for(i=0;i<m;i++)
printf("%s%d/n",pOrder[i].num,
pOrder[i].s);
free(pOrder);
}
填空题函数fun的功能是:在有n个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号:函数的返回值是有不及格科目的学生人数。例如,主函数中给出了4名学生的数据,则程序运行的结果为:
学号:N1002 学号:N1006
共有2位学生有不及格科目
请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1. C中。不得增行或删行,也不得更改程序的结构!
#include <stdio. h>
typedef struct
{char num[8];
double score[2];
/**********found**********/
}______;
int fun(STU std[], int n)
{int i, k=0;
for(i=0; i<n; i++)
/**********found**********/
if(std[i]. score[0]<60
______ std[i]. score[1]<60)
{k++; printf("学号: %s
", std[i]. num);}
/**********found**********/
return ______;
}
main( )
{STU std[4]={"N1001", 76.5, 82. 0, "N1002", 53.5, 73.0,
"N1005", 80.5, 66. 0, "N1006", 81.0, 56.0};
printf("/n共有%d位学生有不及格科目/n", fun(std, 4));
}
填空题以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整型数据,成员变量link是指向自身结构体的指针,请将定义补充完整。 struct node int info; 【19】 link; ;
填空题以下程序运行后的输出结果为______。 main() int x=0210; printf("%x/n", x);
填空题有以下程序: #include <stdio.h> main() char c; while((c=getchar())!='?') putchar(--c); 程序运行时,如查从键盘输入:Y?N?<回车>,则输出的结果为______。
填空题设有以下定义和语句,则*(*(p+2)+1)的值为{{U}} 【20】 {{/U}}。
int a[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
填空题请补充函数fun(),该函数的功能是:计算N×N维矩阵元素的方差,结果由函数返回。维数N在主函数中输入。例如:注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<math.h>#defineN20doublefun({{U}}【1】{{/U}},intn){inti,j;intk;doubles=0.0;doublef=0.0;doubleaver=0.0;doublesd=0.0;for(i=0;i<n;i++)for(j=0;j<n;j++)s+=a[i][j];aver={{U}}【2】{{/U}};for(i=0;i<n;i++)for(j=0;i<n;j++)f+=(a[i][j]-aver)*(a[i][j]-aver);f/=(n*n);sd={{U}}【3】{{/U}};returnsd;}main(){inta[N][N];intn;inti,j;doubles;clrscr();printf("***+InputthedimensionofarrayN*****/n");scanf("%d",&n);printf("*****Thearray*****/n");for(i=0;i<n;i++){for(j=0;j<n;j++){a[i][j]=rand()%50;while(a[i][j]=0)a[i][j]=rand()%60;printf("%4d",a[i][j]);}printf("/n/n");}s=fun(a,n);printf("*******THERESULT*******/n");printf("%4.3f/n",s);}
填空题给定程序中
填空题若x和y都是buble型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为 【7】 。
填空题以下程序运行后的输出结果是______。
main()
{
char c1,c2;
for {c1='0',c2='9';c1<c2;c1++,C2--)
printf("%c%c",c1,c2);
printf("/n");
}
填空题下列程序段的输出结果是______。 int n='c'; switch(n++) default:printf("error");break; case'a':printf("good");break; case'C':printf("morning"); case'd':printf("class");
填空题请补充main()函数,该函数的功能是:从键盘输入只有两个整数参与运算的一个四则运算式,然后计算出它的值。注意数字全部为正整数。
例如,输入30*28,结果为840.000000。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
void main()
{
int num1=0, num2=0, flag=1, fg=1;
float result;
char*p, ch;
char str[10];
system("CLS");
printf("/n Input a string/n");
gets(str);
p=str;
while(*p)
{
if(*p>="0"
else
if(fg)
{
ch=*p;
flag=2;
fg=0;
}
if(*p>="0"
p++;
}
switch(______)
{
case"+": result=num1+num2; break;
case"-": result=num1-num2; break;
case"*": result=num1*num2; break;
case"/": result=(float)num1/num2; break;
}
printf("/nresult=%f", result);
}
填空题函数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')return0; ++s;++t; return 【20】 ;
填空题以下程序的运行结果是______。
#include<stdio.h>
func(int a,int b)
{ static int m=1,i=3;
i+=m+1;
m=i+a+b;
return m;
}
main()
{ int k=2,m=3,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d/n",p);
}
填空题定义char ch="$";int i=1,j;执行j=! ch&&i++以后,i的值为______。
