就业数据资源平台
当前位置:首页 > C语言程序设计
2014年全国计算机二级C语言上机模拟试题及答案9

  人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。 

  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 

  注意:源程序存放在考生文件夹下的BLANK1.C中。 

  不得增行或删行,也不得更改程序的结构! 

  给定源程序: 

  #include  

  #define N 8 

  typedef struct 

  { int num; 

  int year,month,day ; 

  }STU; 

  int fun(STU *std, STU *k, int year) 

  { int i,n=0; 

  for (i=0; i  if( ___1___==year) 

  k[n++]= ___2___; 

  return (___3___); 

  } 

  main() 

  { STU std[N]={ {1,1984,2,15},{2,1983,9,21},{3,1984,9,1},{4,1983,7,15}, 

  {5,1985,9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19}}; 

  STU k[N]; int i,n,year; 

  printf("Enter a year : "); scanf("%d",&year); 

  n=fun(std,k,year); 

  if(n==0) 

  printf("\nNo person was born in %d \n",year); 

  else 

  { printf("\nThese persons were born in %d \n",year); 

  for(i=0; i  printf("%d %d-%d-%d\n",k[i].num,k[i].year,k[i].month,k[i].day); 

  } 

  }


  解题思路: 

  本题是从给定的人员数据中找出年龄相同的记录存入k中,并返回符合条件的人数。 

  第一处:断结构变量中的编号year是否相等,所以应填:std[i].year。 

  第二处:把符合条件的记录依次存入实参k中,所以应填:std[i]。 

  第三处:返回符合满足条件的人数,所以应填:n。 

  *************************************************** 

  给定程序MODI1.C的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。 

  例如,若输入整数:2310,则应输出:2、3、5、7、11。 

  请改正程序中的语法错误,使程序能得出正确的结果。 

  注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 

  给定源程序: 

  #include  

  IsPrime ( int n ); 

  { int i, m; 

  m = 1; 

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

  if !( n%i ) 

  { m = 0; break ; } 

  return ( m ); 

  } 

  main( ) 

  { int j, k; 

  printf( "\nPlease enter an integer number between 2 and 10000: " ); scanf( "%d", 

  &k ); 

  printf( "\n\nThe prime factor(s) of %d is( are ):", k ); 

  for( j = 2; j <= k; j++ ) 

  if( ( !( k%j ) )&&( IsPrime( j ) ) ) printf( "\n M", j ); 

  printf("\n"); 

  }

就业数据资源平台