二级C语言操作例题(二十八)

一、程序填空题

在此程序中,主函数已给出由结构体构成的链表结点a、b、c,各结点的数据域中均存入字符,函数fun()的作用是:将a、b、c三个结点连接成一个单向链表,并输出链表结点中的数据。

#include  <stdio.h>

typedef  struct  list

{  char  data;

   struct list  *next;

} Q;

void fun( Q *pa, Q *pb, Q *pc)

{  Q  *p;

/**********found**********/

   pa->next=___1___;

   pb->next=pc;

   p=pa;

   while( p )

   {

/**********found**********/

      printf("  %c",____2_____);

/**********found**********/

      p=____3____;

   }

   printf("\n");

}

void main()

{  Q  a, b, c;

   a.data='E';  b.data='F';  c.data='G';  c.next=NULL;

   fun( &a, &b, &c );

}

答案:(1) pb (2) p->data (3) p->next

二、程序修改题

在此程序中,函数fun()的功能是统计s所指一维数组中的0的个数(存在变量zero中)和1的个数(存在变量one中),并输出结果。

#include  <stdio.h>

void  fun( int  *s, int  n )

{

/**********found**********/

   int  i,  one=0, zero ;

   for(i=0; i<n; i++)

/**********found**********/

   switch( s[i] );

   {

/**********found**********/

      case  0  :  zero++;

      case  1  :  one ++;

   }

   printf( "one : %d    zero : %d\n", one,  zero);

}

void main()

{  int  a[20]={1,1,1,0,1,0,0,0,1,0,0,1,1,0,0,1,0,1,0,0}, n=20;

   fun( a,  n );

}

答案:(1) int i,one=0, zero=0; (2) switch( s[i] ) (3) case  0  :  zero++; break;

三、程序设计题

在此程序中,编写函数fun,其功能是将形参s所指字符串放入形参a所指的字符数组中,使a中存放同样的字符串。说明:不得使用系统提供的字符串函数。

#include  <stdio.h>

#define    N    20

void NONO();

void  fun( char  *a , char  *s)

{

}

void main()

{  char  s1[N],  *s2="abcdefghijk";

   fun( s1,s2);

   printf("%s\n", s1);

   printf("%s\n", s2);

   NONO();

}

void NONO()

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

  FILE *fp, *wf ;

  int i;

  char s1[256], s2[256];

  fp = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

  for(i = 0 ; i < 10 ; i++) {

    fgets(s2, 255, fp);

    fun(s1,s2);

    fprintf(wf, "%s", s1);

  }

  fclose(fp) ;

  fclose(wf) ;

}

答案:

while(*s!='\0')

{ *a=*s;

a++;

s++;

}

*a='\0';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值