相关题目
下面的代码实现建立一个有若干名学生数据的单向动态链表,请填空。
#include
#include
#define LEN sizeof(struct student)
struct student
{ long num;
float score;
struct student * next;
};
int n;
struct student *creat();
void print(struct student * p);
main()
{
struct student *head;
________【1】__________;
display(head);
}
void print(struct student * p)
{
while(p)
{ printf("%ld\t%f\n",p->num, p->score);
_______【2】________; }
}
struct student *creat()
{
struct student *p1,*p2,*head;
long sno;
float score;
p1=p2=head=NULL;
______【3】_________;
while(1)
{ scanf("%ld,%f",&sno,&score);
if(sno==0) break;
n++;
p1=(struct student*)malloc(LEN);
p1->num=sno;
p1->score=score;
if(head==NULL)
head=p1;
else
_________【4】____________;
p2=p1;
}
if(p2) p2->next=NULL;
return head;
}
下面的函数实现删除动态链表中指定的结点,以学号num作为删除结点的标志(查找对象)。请填空。
struct student *del(struct student *head,long num)
{ struct student *p1,*p2;
if(______【1】_______) {printf(“\\n list null ! \\n”); return(head); }
p1=head;
while(num !=p1->num && p1->next != NULL)
{ _____【2】______; p1=p1->next; }
if(num == p1->num)
{ if(p1 = = head) head=p1->next;
else __________【3】____________;
printf(“delete: %d\\n”,num);
n=n-1;
________【4】_________;
}
else printf(“%ld not been found ! \\n”,num);
return(head);
}
___________【1】_______________
#include
void main()
{ int s;
float n,t,pi;
t=1; pi=0; n=1.0; s=1;
while((______【2】________)
{ pi=pi+t;
n=n+2;
s= -s;
_____【3】_______;
}
_______【4】________;
printf("pi=%10.6f\n",pi);
}
求100~200间的全部素数。
#include
________【1】__________
void main()
{ int m, k, i, n=0;
for(m=101;______【2】_______;m=m+2)
{ k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) ______【3】_______;
if(i>k) {printf("%d",m);______【4】________;}
if(n%10==0) printf("\n");
}
printf("\n");
}
用起泡法对10个数排序(由小到大)。
#define n 10
#include
void main()
{ int a[n],i,j,t;
printf("Input 10 numbers:\n");
for(i=0;_______【1】__________;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<=n-2;j++)
for(i=0;_______【2】________;i++)
if(a[i]>a[i+1])
{t=a[i]; ______【3】________; a[i+1]=t;}
printf("The sorted numbers:\n");
for(i=0;i<=9;i++)
printf("%d ",______【4】________);
}
将一个整数插入原来的一个有序数组中。
#include "stdio.h"
void main() {
int a[11]={1,3,5,7,9,11,13,15,17,19},num,i,j;
for (i=0;i<10;i++) printf("%5d",a[i]);
printf("\n");
printf("\ninput want insert number:");
scanf("%d",______【1】_______);
if (num>=a[9]) a[10]=num;
else
for(i=0;i<10;____【2】_____) {
if(num<=a[i]) {
for(j=10;j>i;j--)
______【3】______;
a[i]=num;
______【4】______;
}
}
for(i=0;i<11;i++)
printf("%5d",a[i]);
printf("\n");
}
求两个矩阵的乘积,已知:A[i][p] 和 B[p][j],求:C=A*B。
#include "stdio.h"
void main()
{ int i,j,k;
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int b[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
______【1】__________;
for(i=0;_______【2】_________;i++)
for(j=0;j<3;j++)
{ c[i][j]=0;
for (k=0;k<4;k++)
___________【3】_____________;
}
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%4d",_______【4】_________);
printf("\n");
}
printf("\n");
}
计算并输出下列多项式值:
Sn = 1 + 1/1! + 1/2! + 1/3! + 1/4! + ... + 1/n!
例如, 若主函数从键盘给 n 输入 15, 则输出为 s=2.718282 。注意: n 的值要求大于 1 但不大于 100。
#include
___________【1】____________;
main ( )
{
int n;
double s;
printf("Input n : ");
scanf("%d",&n);
_________【2】___________;
printf("s=%f\n",s);
}
double fun(int n)
{
double t,sn=1.0;
int i,j;
for(i=1;i<=n;i++)
{
t=1.0;
for(j=1;j<=i;j++)
__________【3】____________;
sn+=1.0/t;
}
_________【4】____________;
}
写出程序运行后的结果( ):
char ch[2][5] = {{' a' , ' b' , ' c' , ' d' , ' e' } , "abcd", } ;
printf("%s\n", ch[0]) ;
#include
struct TagNode
{
int nI;
struct TagNode* pNext;
} ;
void main ( void )
{
struct TagNode tag;
printf("%d \n", sizeof(tag) ) ;
}
运行结果是( )
