四川省计算机等级考试二级C语言机试题2128答案_第1页
四川省计算机等级考试二级C语言机试题2128答案_第2页
四川省计算机等级考试二级C语言机试题2128答案_第3页
四川省计算机等级考试二级C语言机试题2128答案_第4页
四川省计算机等级考试二级C语言机试题2128答案_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、四川省计算机等级考试二级c语言机试题(第二十一次)21-1套 参考答案:一、程序调试题(文件名test1-1.c)(40分)#include <stdio.h>#include <string.h>char  *fun( char  str)                     /* 改为 *str    */ int 

2、 i ;  for(i=0 ; str; i+)                         /* 改为 stri   */   if('a'<=stri)|(stri<='z')        

3、60;     /* 改为 &&    */     stri+=32;                         /* 改为 -=     */  return  *str;&

4、#160;                               /* 改为 str     */main()     char str81;   printf("n please  enter

5、  a string:");   gets(str81);                          /* 改为 str     */   printf("n the result string is:n%s" , fun(str)

6、;评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test1-2.c)(60分)评分标准:1被调函数编写正确                                      20分2文件打开、数据读入正确和定位正

7、确             10分3函数调用正确                                       &#

8、160;       5分4屏幕输出和文件输出正确                               20分5程序结构合理         

9、                                        5分参考程序:# include <stdio.h># include <math.h>int prime

10、(int a,int n)  int i,j,k=0,flag=0;   for(i=0;i<n;i+)     for(j=2;j<ai;j+)        if(ai%j=0)          flag=0;           break;  &#

11、160;             else flag=1;      if(flag)        ak+=ai;      return k;main()  int n,i,a10;   file *fp;   fp=fopen("test1-2.txt"

12、,"r+");   for(n=0;n<10;n+)     fscanf(fp,"%d",&an);   n=prime(a,n);   fseek(fp,0,2);   for(i=0;i<n;i+)     printf("%5d",ai);      fprintf(fp,"%5d",ai)

13、;      fclose(fp); 21-2套 参考答案:一、程序调试题(文件名为test2-1.c)(40分)#include <stdio.h>#define n10                              

14、60;      /* 改为 n 10    */void fi(int a,int m)                         /* 改为 int      */  int low=0,high=n,mid;

15、  while (low<=high)      mid=(low+high)/2;    if(m<amid)                 high=mid-1;    else if(m>=amid)         

16、60;                  /* 改为 m>amid */                     low=mid+1;        else  r

17、eturn(mid);      return(-1);main()  int i, an=-3,4,7,9,13,45,67,89,100,180,k,m;  for(i=0;i<n;i+)       printf("%d ",ai);  printf("enter m: ");   scanf("%d",m);       &

18、#160;                           /* 改为 &m     */  k=fi(a,m);             

19、;                   /* 改为 a       */  if(k>0) printf("m=%d,index=%dn",m,k);           /* 改为 k>=0    */ 

20、else printf("not be found!n");评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test2-2.c)(60分)评分标准:1被调函数编写正确                        20分2文件打开、数据读入正确          

21、;    15分3函数调用正确                                 5分4屏幕输出及结果正确            

22、60;           15分5程序结构合理                                   5分参考程序:# include <

23、stdio.h># define m 3# define n 4void fun(int ttmn,int ppn)  int i,j,min;   for(j=0;j<n;j+)     min=tt0;      for(i=0;i<m;i+)        if(ttij<min)         

24、 min=ttij;      ppj=min;   main()  int tmn;   int pn,i,j,k;   file *fp;   fp=fopen("test2-2.dat","r");   for(i=0;i<3;i+)     for(j=0;j<4;j+)     

25、0; fscanf(fp,"%d",&tij);   fclose(fp);   printf("the original data is :n");   for(i=0;i<m;i+)     for(j=0;j<n;j+)        printf("%6d",tij);      printf(&qu

26、ot;n");      fun(t,p);   printf("nthe result is :n");   for(k=0;k<n;k+)     printf("%4d",pk);   printf("n"); 21-3套 参考答案:一、程序调试题(test3-1.c):#include <stdio.h>void main()   int i

27、,k;                                                 

28、60;            /* 改为 k=0  */  char a80,b80,*p;  p=*a;                             

29、60;                                        /* 改为 p=a  */  gets(p);  while(!*p)  

30、                                                  

31、           /* 改为 *p   */               for(i=1;i<3&&*p!='0'p+,k+,i+)          /* 改为 i<=3  */     &

32、#160;       bk=*p;        if(i=4)  bk=''k+;                           /* 改为 ' ' 

33、0;  */       bk='0'  puts(*b);                                      

34、;                     /* 改为 b    */评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test4-2.c)(60分)评分标准:1被调函数编写正确               

35、60;        20分2文件打开、数据写入正确              10分3函数调用正确                            &#

36、160;    10分4屏幕输出正确                                   10分5m输入正确         

37、;                             5分6程序结构合理                    &

38、#160;              5分参考程序:# include <stdio.h>int create(int a,int m)  int i,j=0;   for(i=1;i<=m;i+)     if(i%3=0 | i%7=0)       aj+=i;   return (j);mai

39、n()  int a80,m;   int i,n;   file *fp;   if(fp=fopen("test3-2.dat","w")=null)     printf("can't open the file.n");      exit(0);      printf("input m:n"); &

40、#160; scanf("%d",&m);   n=creat(a,m);   printf("n=%dn",n);   fprintf("fp,"n=%dn",n);   for(i=0;i<n;i+)     printf("%4d",ai);      fprintf(fp,"%4d",ai); &

41、#160;    fclose(fp);21-4套 参考答案:一、程序调试题(test4-1.c):#include <stdio.h>main()  char str81,c;  int i,j,n;                             

42、0;    /* 改为 n=0      */  printf("n enter a string:");  gets(str81);                       /* 改为 str       

43、;*/  printf("n enter a character:");  getchar(c);                                   /* 改为 c=getchar()  */ 

44、; for(i=j=0;stri;i+)    if(stri!=c)       strj=stri;                      /* 改为 j+      */    else   

45、;    n;                              /* 改为 n+      */  strj=  ;        

46、;                    /* 改为 strj= '0'  */  printf("nstr=%s,n=%dn",str,n);  getchar();评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test4-2.c)(60分)评分标准:1输入数据正确    

47、0;                         5分2被调函数编写正确                      20分3文件操作及数据写入正确    &

48、#160;            15分4函数调用正确                                   5分5屏幕输出及结果正确&

49、#160;                       10分6程序结构合理                         &#

50、160;         5分参考程序:# include <stdio.h># include <string.h>void fun(char *s,char *t)  int i,j=0,n;   n=strlen(s);   for(i=0;i<n;i+)     if(!(i%2=0 && si%2!=0)     

51、0; tj+=si;   tj='0'main()  char s100,t100;   file *fp;   printf("please enter a string:n");   gets(s);   fun(s,t);   fp=fopen("test4-2.txt","w");   printf("%sn%sn",s,t); &#

52、160; fprintf(fp,"%sn%sn",s,t);   fclose(fp); 四川省计算机等级考试二级c语言机试题(第二十二次)22-1套 参考答案:一、程序调试题(文件名为test1-1.c)(40分)#include <stdio.h>#include <string.h>char move( char *str, int r)          /* 改为 *move  */ char t;  int i

53、,len;                                       /* 改为 k      */  len=strlen(str);  f

54、or(k=0;k<=r;k+)               /* 改为 k<r    */  t=*str;    strcpy(str+1,str);                   /* 改为 strcpy(s

55、tr+1,str) */    strlen-1=t;    return *str;                   /* 改为 str    */void main() char s81;  int m;  printf("n please enter a string:n"); 

56、 gets(s);  do  printf("n please enter m:");    scanf("%d",m);                        /* 改为 &m   */    if(m>strlen

57、(s)      printf("n data error!n");  while(m>strlen(s);  printf("n result:%sn",move(s,m);评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test1-2.c)(60分)评分标准:1被调函数编写正确                &

58、#160;      25分2文件打开、数据读出正确           10分3函数调用正确                              

59、60;    10分4屏幕输出正确                                   10分5程序结构合理         

60、;                          5分参考程序:#include <stdio.h>sort(char a,char b)  char c;  int i,j=0;  for(i=1;i<strlen(a);i+=2)    bj+=ai; 

61、 bj='0'  for(i=1;i<strlen(b);i+)    for(j=0;j<strlen(b)-i;j+)      if(bj>bj+1)      c=bj; bj=bj+1; bj+1=c; main()  file *in;  char a128,b65;  in=fopen("test1-2.in","r");  fg

62、ets(a,128,in);  fclose(in);  sort(a,b);  puts(b); 22-2套 参考答案:一、程序调试题(文件名为test2-1.c)(40分)#include <stdio.h>main()  float a 10, min;                       &

63、#160;             /* 改为 a1010  */  int i, j;  int invert();                            

64、60;         /* 改为 float      */  for(i=0;i<10;i+)    for(j=0;j<10;j+)        aij= i+j;  for(i=0;i<10;i+)      min=invert(a,10);   &

65、#160;                                /* 改为 ai      */    printf("a%dmin=%fn",i,min);  floa

66、t invert(float *a, n)                                  /* 改为 int n     */  int i;  float min;  min=*(a+0)

67、;  for(i=1;i<n;i+)      if(min<*(a+i)                                      

68、0; /* 改为 >       */        min=(a+i);                                

69、60;     /* 改为 *(a+i)   */    return min;评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test2-2.c)(60分)评分标准:1被调函数编写正确                       15分2文件打开、数据写入正确  

70、60;        15分3函数调用正确                                   10分4屏幕输出正确     

71、0;                             10分5程序结构合理                    

72、;               10分参考程序:# include <stdio.h>int select(int a)  if(!(a%3)&&!(a%5)  return 1;  else  return 0;main()  int i,k=0;  file *fp;  if(fp=fopen("test2-2.dat","w

73、b")=null)      printf("cannot open the filen");    exit(0);    for(i=3;i<400;i+)    if(select(i)          k=k+1;      printf("%10d",i);  

74、    fprintf(fp,"%10d",i);      if(k%5=0)        printf("n");         fprintf(fp,"n");             fclose(fp);&

75、#160;22-3套 参考答案:一、程序调试题(文件名为test3-1.c)(40分)#include <stdio.h>int fun(float s, int n, float *aver)            /* 改为 *s                 */ float ave,t=0.0;  int count

76、,k,i;                                /* 改为 count=0        */  for(k=0;k<n;k+)    t=sk;  

77、;                           /* 改为 +=                */  ave=t/n;  for(i=0;i<n;i+)  

78、;  if(si>ave) count+;                 /* 改为 <                  */    *aver=&ave;      

79、;                  /* 改为 ave                */    return count; main() float s30,aver;  int m, i;  printf("nplease

80、enter n(<30):");  scanf("%d", &m);  printf("nplease enter %d mark:n",m);  for(i=0;i<m;i+)       scanf("%f", s+i);  printf("nthe number of students:%d n",fun(s, m, aver);   /* 改为 &aver */

81、  printf("ave=%f n", aver);评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test3-2.c)(60分)评分标准:1被调函数编写正确                       20分2文件操作和读数据正确          

82、;     15分3函数调用正确                                   10分4屏幕输出正确        &

83、#160;                          10分5程序结构合理                      &#

84、160;            5分参考程序:#include<stdio.h>#include<string.h>#define m 10void fun(int *s)  int i,j,t;  for(i=1;i<m-2;i+)    for(j=i+1;j<m-1;j+)      if(si>sj)   &

85、#160;    t=si;         si=sj;         sj=t;      int input(int s)    file *fp;  int i;  if(fp=fopen("test3-2.in","r")=null)    printf(&

86、quot;cannot open filen");     return(0);    for(i=0;i<m;i+)    fscanf(fp,"%d ",&si);  fclose(fp);  return(1);main()  int sm;  int i;  if(input(s)      fun(s);    printf(&quo

87、t;n");    for(i=0;i<m;i+)      printf("%d ",si);  四川省计算机等级考试二级c语言机试题(第二十三次) 23-1套 参考答案:一、程序调试题(文件名为test1-1.c)(40分)#include <stdio.h>#include <string.h>             &

88、#160; /* 改为: math.h  */main() char str100, *p=str, help15;  static long int num50;  int i=0, k=0, m, sign=0;  printf("ninput the string:");  scanf("%s", p);  do    if(*p>=0 && *p<=9)       &#

89、160;      /* 改为:*p>=0 && *p<=9  或 *p>=48 && *p<=57 */     sign=1;       helpk+=*p;          else if(sign=1)        &#

90、160;     /* 改为:=*/     int n=0;       while(-k>=0)          numi+=(helpk-48)*(long int)pow(n+,10);  /* 改为:pow(10,n+) */       i+;   

91、    k=0;       sign=0;          else                              

92、0; /* 改为:else;  */     p+;  while(*(p-1)!='0');  for(m=0; m<i; m+)     printf("%d,", numm);         /* 改为:%ld  (即长整型格式输出)*/评分标准:每改对一处得6分,结果正确得4分二、编程题(程序文件取名为 test1-2.c)(60分)评分标准:1被调函数f

93、un编写正确         20分      2文件打开和关闭正确             10分3函数调用正确                     &#

94、160;      5分        4屏幕输出和文件输出正确            15分5输出格式正确                      

95、;      5分        6程序结构合理                              5分参考程序:# include <stdio.h># define m 100

96、0int fun(int *a) int m,k=0;  for(m=1;m<=m;m+)    if( (m%7=0 && m%11!=0) | (m%7!=0 && m%11=0) )       ak+=m;  return k;main() int am,n,k;  file *fp;  clrscr();          

97、60;          /*清屏函数*/  fp=fopen("test1-2.dat","w");  n=fun(a);  printf("%dn",n);  fprintf(fp,"%dn",n);  for(k=0;k<n;k+)  printf("%5d",ak);    fprintf(fp

98、,"%5d",ak);    if( (k+1)%10 = 0 )      printf("n");       fprintf(fp,"n");        fclose(fp); 23-2套 参考答案:一、程序调试题(文件名 test2-1.c)( 40 分 )#include <stdio.h>#define n 80void

99、 fun(int *s, int *t, int k)                /* 改为 *k  */ int i,m;  *k=0;  m=*s;  for(i=1;i<(*t-1);i+)    if(m<s+i)            

100、0;                      /* 改为 *(s+i)  */     m=*(s+i);      k=i;               &

101、#160;                      /* 改为 *k   */      si+1=m;  *t+ ;                 

102、60;               /* 改为 (*t)+  */main() int an=876,675,896,101,301,401,980,431,451,777;  int i, n=10, mi;                   fun(an, &n,

103、&mi);                   /* 改为 a  */    printf("nthe index of max is:%dn",mi);  printf("the result:n");  for(i=0;i<n;i+)     printf("%4d",

104、&ai  );                    /* 改为 ai  */评分标准:每改对一处得6分,结果正确得4分二、编程题(程序文件取名为 test2-2.c)(60分)评分标准:1被调函数fun编写正确         20分      2文件打开和关闭正确&#

105、160;            10分3函数调用正确                            5分        4屏幕输出和文件输出正确

106、0;           15分5输出格式正确                            5分        6程序结构合理  

107、                            5分参考程序:# include <stdio.h># define m 1000int fun(int *a) int m,k=0;  for(m=1;m<=m;m+)    if( (m%7=0 && m%

108、11!=0) | (m%7!=0 && m%11=0) )       ak+=m;  return k;main() int am,n,k; file *fp;  clrscr();                     /*清屏函数*/  fp=fopen("test1-2.d

109、at","w");  n=fun(a);  printf("%dn",n);  fprintf(fp,"%dn",n);  for(k=0;k<n;k+)  printf("%5d",ak);    fprintf(fp,"%5d",ak);    if( (k+1)%10 = 0 )      printf("n&quo

110、t;);       fprintf(fp,"n");        fclose(fp); 23-3套 参考答案:一、程序调试题(文件名 test3-1.c)( 40 分 )#include <stdio.h>#include <string.h>        /* 改为 ctype.h */void fun(char s)    

111、;       /* 改为 *s */ int i,j;  for(i=j=0;si;i+);       /* 改为 去掉分号 ;*/    if(isalpha(si)      sj =si;     /* 改为 sj+ */  si ='0'        

112、0;       /* 改为 sj  */void main()  char str80="a*b$c(d!eee  !a."  fun(str80);          /* 改为 str  */  printf("n");  puts(str);评分标准:每改对一处得6分,结果正确得4分二、编程题(程序文件取名为 test3-2.c)(60分)

113、评分标准:1文件定义、打开、关闭正确     10分      2数据讲稿和文件写入正确     10分3函数调用正确                          5分       

114、4函数定义和参数使用正确     20分5结果正确                                   10分      6程序结构合理  &#

115、160;                    5分参考程序:#include <stdio.h>void sort(int aa,int bb)  int i,j,data;   for(i=0;i<5;i+)     for(j=i+1;j<5;j+)     if(aai%100

116、0>aaj%1000)       data=aai;         aai=aaj;         aaj=data;              else if(aai%1000=aaj%1000)    &

117、#160;         if(aai<aaj)                data=aai;                 aai=aaj;     &#

118、160;           aaj=data;                      for(i=0;i<5;i+)     bbi=aai;void main()  int aa5,bb5;   file *out; 

119、;  int i;   printf("nplease input 5 numbers:");   for(i=0;i<5;i+)     scanf("%d",&aai);   sort(aa,bb);   out=fopen("test3-2.dat","w");   printf("n");   for(i=

120、0;i<5;i+)   printf("%5d",bbi);     fprintf(out,"%5d",bbi);      fclose(out); 23-4套 参考答案:一、程序调试题(文件名 test4-1.c)( 40 分 )#include <stdio.h>#include <string.h>int fun(char s, char t)    /* 改为 char *s

121、, char *t  */   int  n=0 ;    char *p , *r ;    while(*s)      p=s;        r=t ;                    

122、        while(*r)         if(*r=*p)       /* 改为 =  */          r+;            p+;     

123、0;             else  continue;        /* 改为  break  */         if(r='0')             /* 改为 

124、*r  */           n+;          r+;                 /* 改为  s+  */        return  *s;

125、60;           /* 改为  n   */          main()  int m ;   char s100, t100;   printf("nplease enter string s:");   gets(s);     &

126、#160;                              printf("nplease enter string t:" );   gets(t);   m=fun(s,t);      

127、;                         printf("nthe result is: m= %dn",m);评分标准:每改对一处得6分,结果正确得4分二、编程题(程序文件取名为 test4-2.c)(60分)评分标准:1被调函数编写正确         &

128、#160; 20分             2函数调用正确           5分3文件打开和关闭正确          5分               4

129、文件读、写正确            15分5n输入和屏幕输出正确       10分             6程序结构合理                5

130、分参考程序:#include<stdio.h>#define n 5void fun(int ann,int n) int i,j;  for(i=j=0;i<n;i+,j+)    aij=aij+1;  for(i=1;i<n;i+)    for(j=0;j<i;j+)      aij=aij*2;  for(i=0;i<n;i+)    for(j=i+1;j<n;j+)&#

131、160;     aij=aij*3;main() int ann,i,j,n;  file *fp;  clrscr();  printf(“*input n *n”);  scanf(“%d”,&n);  fp=fopen("test4-2.in","r");  if(fp=null)  printf("file test4-2.in not open");    exit(0);&#

132、160;   for(i=0;i<n;i+)    for(j=0;j<n;j+)      fscanf(fp,"%d",&aij);  fclose(fp);  fun(a,n);  fp=fopen("test4-2.out","w");  if(fp=null)  printf("file test4-2.in not open"); &#

133、160;  exit(0);    for(i=0;i<n;i+)  for(j=0;j<n;j+)    printf("%5d",aij);      fprintf(fp,"%d",aij);        printf("n");    fprintf(fp,"n");  四川省

134、计算机等级考试二级c语言机试题(第二十四次) 24-1套 参考答案:一、程序调试题( 文件名 test1-1.c )(40分)#include <stdio.h>void spacenum(char *a,int *n) int i; n=0;               /*  改为 *n   */ for(i=0;i<n;i+)      /*  改为 *(a+i)!= '0'   */   if(*(a+i)=' ')     *n+;          /*  改为 (*n)+  */main( ) char str100; int count

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论