浙江省高校计算机等级考试C程序设计上机模拟题(共44页)_第1页
浙江省高校计算机等级考试C程序设计上机模拟题(共44页)_第2页
浙江省高校计算机等级考试C程序设计上机模拟题(共44页)_第3页
浙江省高校计算机等级考试C程序设计上机模拟题(共44页)_第4页
浙江省高校计算机等级考试C程序设计上机模拟题(共44页)_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上浙江省高校计算机等级考试C程序设计上机模拟题第三部分  C程序设计上机模拟题(一)  上机修改题1. 在考生目录下,有Modify.c程序,该程序中”/*N*/”的下一行中    有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。       该程序功能:输入m、n(要求输入数均大于0),输出它们的最小公倍数            /*find the lease commo

2、n multiple of m and n*/           #include <stdio.h>           void main()               int m,n,k;               

3、 /*1*/               while(scanf("%d%d",&m,&n),m<0&&n<0);      /   m<0| n<0                for(k=m;k%n!=0;)   &#

4、160;             /*2*/                 k=k+m%n;             /  k=k+m                 

5、printf("%dn",k);           2.       在考生目录下,有Modify.c程序,该程序中"/* N */"的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+ #include <stdio.h>void main()   int i,a,n,t=

6、0;      /* 1 */s=0;                       / int s=0;    scanf("%d%d",&a,&n);for(i=1;i<=n;i+)        /* 2 */        t=t*

7、10+i;            / t=t*10+1;        s=s+t;    s=s*a;    printf("%dn",s);3.       在考生目录下,有Modify.c程序,该程序中"/* N */"的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:运行时输入n,输出n各位数

8、字之和(如n=1308则输出12,n=-3204则输出9)。#include <stdio.h>   #include <math.h>   void main()              int n,s=0;       scanf("%d",&n);n=fabs(n);/* 1 */         

9、 while(n>1)               / ns=s+n%10;/* 2 */                   n=n%10;        / n=n/10;                

10、60;       printf("%dn",s);     4.       在考生目录下,有Modify.c程序,该程序中"/* N */"的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入1个字符串,输出其中所出现过的大写英文字母。如运行时输入字符串"FONTNAME and FILENAME",应输出"F O N T A M E I L"

11、。          #include <stdio.h>    void main()    char x80,y26; int i,j,ny=0;               gets(x);               for(i=0;xi!='0'i+) 

12、;                if(xi>='A'&&xi<='Z')                      for(j=0;j<ny;j+)               &#

13、160;       /* 1 */                                 if(yi=xj)  continue;       /  if(yj=xi) break;      &#

14、160;              if(j=ny) yny=xi; ny+;                                            /* 2 */      

15、;         for(i=0;i<26;i+)            / i<ny            printf("%c ",yi);               printf("n");   &

16、#160;  5.       在考生目录下,有Modify.c程序,该程序中"/* N */"的下一行中有错误, 请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入x、eps,计算多项式1-x+x*x/2!-x*x*x/3!+.的和直到末项的绝对值小于eps为止。#include <stdio.h>#include <math.h>void main( )   float x,eps,s=1,t=1,i=1;     

17、0;  scanf("%f%f",&x,&eps);    do  /* 1 */         t = -t * x/ +i;       /  t = -t * x / i+;  s += t;    /* 2 */     while( fabs(t ) >= eps)  

18、60;/  少 ;        printf("%fn",s);6. 在考生目录下,有Modify.c程序,该程序中"/* N */"的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。#include <stdio.h>#include <ctype.h>void main()     char a80; int n5=0,i; gets(a);

19、      for(i=0; ai!=0; i+)               /* 1 */         switch(tolower(a+i)          / switch(tolower(ai)              case 'a

20、': n0+; break;       case 'e': n1+; break;       case 'i': n2+; break;       case 'o': n3+; break;       /* 2 */       case 'U': n4+; break;    / 

21、60;u          for(i=0;i<5;i+) printf("%dn",ni);     7. 在考生目录下,有Modify.c程序,该程序中"/* N */"的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)该程序功能:输入n(0<n<10)后,输出1个数字金字塔。如输入n为4,则输出:1          

22、     222               33333               #include <stdio.h>void main()    int i,j,n;   /* 1 */   scanf("%d", n);      

23、;       /  &n   for(i=1;i<=n;i+)    for(j=1;j<=n+1-i;j+) putchar(' ');              for(j=1;j<=2*i-1;j+)                 

24、60;  putchar(char)(i+48);             /* 2 */           putchar(n);             /  n      8. 在考生目录下,有Modify.c程序,该程序中"/* N */"的下一行中

25、    有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。    该程序功能:运行时输入10个数,然后分别输出其中的最大值、最小值。       #include <stdio.h>       void main()         float x,max,min;           /* 1 */

26、0;         for(int i=1;i<=10;i+)     / C中不能这样用, 改为:int i; for( i=1; i<=10; i+)                   scanf("%f",&x);              

27、0;   /* 2 */                 if(i =1) max=x;min=x;      /   i=1                 if(x>max) max=x;         &#

28、160;       if(x<min) min=x;                    printf("%f,%fn",max,min);      9. 在考生目录下,有Modify.c程序,该程序中"/* N */"的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。  该程序功能:运行时

29、输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5、7、11)。       #include <stdio.h>       void main( )          int n,i;           scanf("%d",&n);         

30、  /* 1 */           i=1;                          /   i=2;           while(n>1)      &#

31、160;    if(n%i=0)               printf("%dt",i); n/=i;            else             /* 2 */           n-;&

32、#160;                          /  i+;        10. 在考生目录下,有Modify.c程序,该程序中“/* N */”的下一行中有错误,请改正(注意:不得加行、减/行、加句、减句,否则后果自负)。      该程序功能:输入n以及小于n个字符的字符串,将字符串中所有

33、小写字母改为相应的大写字母后,输出该字符串。      #include <stdio.h>      #include <string.h>      #include <stdlib.h>      void main()        int n,i;         /* 1

34、 */        char str;                  /  char *str        scanf("%dn",&n);  str=(char*)malloc(n); gets(str);         

35、;/* 2 */        for(i=1;i<strlen(str);i+)         /   i=0        if(stri>='a'&& stri<='z')  stri=stri-32 ;           

36、puts(str);     (二)  上机填充题1. 在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。    该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。           #include <stdio.h>       

37、    void main()             int m,n,k;              while(scanf("%d%d",&m,&n); _1_ ) ;      /   m<0| n<0        

38、;        for( _2_;  n%k!=0|m%k!=0;  k-);      /   k=m<n?m:n              printf("%dn",k);               2.

39、在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:函数f将1个整数首尾倒置,程序输出结果应为"54321    -76543"。          #include <stdio.h>      #include <math.h>        &#

40、160; int f(int n)    int m,y=0;  m=fabs(n);               while(m!=0)                  y=y*10+m%10;                

41、      1              / m=m/10                              if(n>=0) return y;            

42、60;  else     2    ;           /  return ( -y);            void main()     printf("%dt",f(12345);  printf("%dn",f(-34567);

43、60; 3.       在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入1个整数后,输出该数的位数若输入3214则输出4,输入-23156则输出5)。#include <stdio.h>void main()     int n,k=0;    scanf("%d",&n);   &#

44、160;  while(   1    )        /  n%10        k+;          2    ;        / n=n/10          printf("%dn

45、",k);4. 在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:运行时输出下列结果。        abcdefg     abcde      abc       a#include <stdio.h>void main()   

46、0; int i,j; char k;    for(i=1;i<=4;i+)  for(j=1;j<i;j+)  putchar(' ');               1    ;             /  k=a      

47、0;     for(j=9-2*i;j>0;j-)                k=(char)k+;                  printf(“%c”,    2    );   /  k-1    

48、                    putchar('n');5. 在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充     部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。   该程序功能:输入整数n(n>0)求m,使得2的m次方小于或等于n、2的m+1次方大于或等于n。   

49、60; #include <stdio.h>   void main()            int i=0,t=1,n;          while( _ 1 _);        /  scanf(“%d”,&n),  n<=0        &

50、#160; while(!(t<=n&&t*2>=n)               _ 2 _               /  t=t*2;             i+;            &#

51、160;   printf("%dn",i);6. 在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充     部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。     该程序功能:对x=1,2,.,10,求f(x)=x*x-5*x+sin(x)的最大值。       #include <stdio.h>     

52、60; #include <math.h>       #define  f(x)   x*x-5*x+sin(x)        void main()                      / 运行结果:49.          int i

53、; float max;            _ 1 _            /  max=f(1);            for(i=2;i<=10;i+)            _ 2_      

54、60;  /  if(f(i)>max)  max=f(i);           printf("%fn",max);            7. 在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充     部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 

55、;   该程序功能:函数f除去数组中的负数,输出结果为:1  3   4   6        #include <stdio.h>        void f(int *a,int *m)                   int i,j; 

56、          for(i=0;i<*m;i+)              if(ai<0)                  for(j=i-;j<*m-1;j+)  aj=aj+1;         &#

57、160;       _1_;                 /  *m=*m-1;                        void main()           int i,

58、n=7,x7=1,-2,3,4,-5,6,-7;             _2_;               /   f(x,&n);for(i=0;i<n;i+)   printf("%5d",xi);            printf("n&quo

59、t;);        8.       在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入n和平面上n个点的坐标,计算各点间距离的总和。          #include <stdio.h>      #include <math.h&g

60、t;      #define f(x1,y1,x2,y2) sqrt(pow(x2-x1,2)+pow(y2-y1,2)         1               / #include <malloc.h> 或 #include <stdlib.h>      void main()    

61、60;float *x,*y,s=0; int i,j,n;             scanf("%d",&n);             x=(float*)malloc(sizeof(float)*n*2);             y=x+   2    ;   

62、               /  n             for(i=0;i<n;i+)   scanf("%f%f",x+i,y+i);  for(i=0;i<n-1;i+)                 &

63、#160;          for(j=i+1;j<n;j+)s+=f(xi,yi,xj,yj);             printf("%.2fn",s);      9.       在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则

64、后果自负)。该程序功能:调用函数f,求二维数组a中全体元素之和。          #include <stdio.h>   float f(   1   )     / float *x, int m, int n       / 运行结果:78.00     float y=0; int i,j;     

65、60;         for(i=0;i<m;i+) for(j=0;j<n;j+) y=y+*(*(x+i)+j);    return y;                void main()     float a34=1,2,3,4,5,6,7,8,9,10,11,12,*b3;         

66、;    int i;             for(i=0;i<3;i+)   bi=   2    ;     /  &ai0  或 ai             printf("%.2fn",f(b,3,4);   &

67、#160;     10.   在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f,求a数组中最大值与b 数组中最小值之差。          #include <stdio.h>      float f(float *x,int n,int flag)    

68、;           /  运行结果:11     float y; int i;                1    ;          / y=x0             for(i=1;i<

69、;n;i+)if(flag*xi>flag*y) y=xi;                return y;                    void main()     float a6=3,5,9,4,2.5,1,b5=3,-2,6,9,1;         

70、    printf("%.2fn",f(a,6,1) -    2   ) );    /  f(b,5,-1)      11.   在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*

71、x*x当x=1.7时的值。          #include <stdio.h>float f(float,float*,int);                / 运行结果:81.          void main()    float b5=1.1,2.2,3.3,4.4,5.5;      &

72、#160;        printf("%fn",f(1.7,b,5);                float f(   1    )              / float x,float a, int n    float y=a0,t=1; int i;&

73、#160;              for(i=1;i<n;i+) t=t*x ;   y=y+ai*t;                    2    ;              /  return y 

74、       12.   在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f用以求1元2次方程 x*x+5*x-2=0 的实根。          #include <stdio.h>      #include <math.h>   &#

75、160;                         / 运行结果:0.37  -5.37      int f(float a,float b,float c,float *x1,float *x2)    if(b*b-4*a*c<0)     1    ;  &#

76、160;        / return 1;                *x1=(-b+sqrt(b*b-4*a*c)/2/a;              *x2=(-b-sqrt(b*b-4*a*c)/2/a;                 

77、;        return 0;                      void main()     float u1,u2; float a=1,b=5,c=-2;                if(f(    2  

78、0;)    printf("实数范围内无解n");   / f(a,b,c,&u1,&u2)                else    printf("%.2f  %.2fn",u1,u2);          13.   在考生目录下,有Modify2.c程序,该程序中&qu

79、ot;_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:函数f将数组循环左移k个元素,输出结果为:4  5  6  7  1  2  3#include <stdio.h>void f(int *a,int n,int k)    int i,j,t;for(i=0;i<k;i+)          &

80、#160; 1    ;        /  t=a0         for(   2   )      /  j=1;j<n;j+aj-1=aj;             an-1=t;      &

81、#160; void main()  int i,x7=1,2,3,4,5,6,7;f( x , 7 , 3);for(i=0;i<7;i+) printf("%5d",xi); printf("n"); 14.   在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句 ,否则后果自负)。该程序功能:调用函数f,将字符串中的所有字符逆序存放,然后输出。例如,输入字符串为"",则

82、程序的输出结果为""。#include <stdio.h>#include <string.h> void main()    char s60,*f(char*);gets(s);printf("%sn",f(s);  1   f(char* x)      / char *   char t;   int i,n;  2      

83、;       / n=strlen(x)          for(i=0;i<n/2;i+) t=xi;  xi=xn-1-i;  xn-1-i=t;          return x;15.   在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句

84、、减句,否则后果自负)。该程序功能:调用函数f,从字符串中删除所有的数字字符。#include <stdio.h>#include <string.h>#include <ctype.h>void f(char *s)    int i=0;while(si!='0')      if(isdigit(si)     1   (s+i,s+i+1);    / strcpy   

85、60;    else     2                       /  i+ void main()  char str80;gets(str); f(str); puts(str);16. 在考生目录下,有Modify.c程序,该程序中"_ N _"是根据程序功能需要填充部分,请完成程序填充(

86、注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输出61000之间的完数(1个数的因子和等于其自身的数:6=1+2+3、28=1+2+4+7+14,则6、28都是完数)。#include <stdio.h>void main()                            / 运行结果:6  28  496  int i,

87、j,s;       for(i=6;i<=1000;i+)              1    ;          / s=0;          for(j=1;  2  j+)     / j<iif(i%j=0)s+=j;  &

88、#160;     if(s=i)  printf("%dn",s);       (三)上机编程题    1. 程序设计题:考生目录下有Design.c程序,请完成以下功能:z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间1,6的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考生目录下,新建文件design.dat。#include <stdio.h>void main(

89、)                              / 运行结果:x1=1, y1=6      FILE *p; float f(float x,float y),min;          int x,y,x1,y1;        &

90、#160;/* 此处起要求考生自己编制程序 */min=100;if(p=fopen("design.dat","w")=NULL)   printf("cannot open in FILEn");   exit(0);  for(x=1;x<=6;x+)                for(y=1;y<=6;y+)     

91、60;                                if(f(x,y)<min)                         min=f(x,y); x1=x; y1=y;

92、          fprintf(p, “%d,%d”,x1,y1);fclose(p);float f(float u,float v)  return (3.14*u-v)/(u+v);  2.       程序设计题:函数root返回满足条件f(a)*f(b)<0的方程在a,b区间内的1个实根。在区间2,5、限差为0.00001。用区间对分法求解,将方程 x*x-5sin(x)-4=0的根以格式"%9.6f"写入到考生目录

93、下新建的文件design.dat?      #include <stdio.h>#include <math.h>                        / 运行结果:2.float g(float x)  return x*x-5*sin(x)-4; float root(float a,float b,float eps,float(*f)

94、(float)   float c;   while(c=(a+b)/2,fabs(f(c)>=eps&&fabs(b-a)>=eps)    if(f(a)*f(c)<0)  b=c; else  a=c;        return c;void main()   /* 此处起要求考生自己编制程序 */       float a=2,b=

95、5,c,(*f)(float);FILE  *fp;if(fp=fopen(”design.dat”,”w”)=NULL)          printf(”Cannt open FILE”);  exit(0);                f=g;    c=root(a,b,1e-5,f);    fprintf(fp,”%9.6

96、f”,c);    fclose(fp);  3.       程序设计题:考生目录下有Design.c程序,请完成以下功能: xi,yi表示点d(i)的平面坐标,求d(0)至d(1)、d(1)至d(2)、.、d(4)至d(0)的连线所构成的5边形面积,并将所求面积以格式"%.4f"写到考生目录下新建文件design.dat。#include <stdio.h>d(0)d(1)d(2)d(4)d(3)#include <math.h>    

97、                          void main()   FILE *p;  int i;  float s,a,b,c,sdim=0;      float x5=-4.5,0.5,4.2,2.7,-3;      float y5=2.3,4.7,1.3,-2.5

98、,-3.3;      p=fopen("design.dat","w");         /* 此处起要求考生自己编制程序 */           for(i=1;i<4;i+)                 a=sqrt(x0-xi)*(x0-

99、xi)+(y0-yi)*(y0-yi);                  b=sqrt(xi-xi+1)* (xi-xi+1)+(yi-yi+1)*(yi-yi+1);                  c=sqrt(x0-xi+1)* (x0-xi+1)+(y0-yi+1)*(y0-yi+1);      

100、0;           s=(a+b+c)/2;                    sdim+=sqrt(s*(s-a)*(s-b)*(s-c);                  fprintf(p,"%.4f",sdim);  &

101、#160;             / 运行结果:46.7800      fclose(p);    4程序设计题:考生目录下有Design.c程序,请完成以下功能:对x=1,2,.,10,求函数f(x)=x-10*cos(x)-5*sin(x)的最大值,并将该数以格式"%.3f"写到考生目录下新建文件design.dat。        #include <stdio

102、.h>#include <math.h>void main()                                   / 运行结果:21.111        FILE *p; float f(float),max,x;     

103、0;       /* 此处起要求考生自己编制程序 */    if(p=fopen("design.dat","w")=NULL)     printf("cannot open in FILEn");   exit(0);                max=f(1);   

104、;           for(x=2;x<=10;x+)                     if(max<f(x)                            max=f

105、(x);              fprintf(p,”%.3f”,max);fclose(p);float f(float y)  y=y-10*cos(y)-5*sin(y);              return (y);    5. 程序设计题:考生目录下有Design.c程序,请完成以下功能:将字符串s中的所有字符按ASCII值从小到大重新排序

106、后,将排序后的字符串写入到考生目录下新建的文件design.dat。            #include <stdio.h>      #include <string.h>      void main()                       

107、0;       / 运行结果:%,.2346QSw|     FILE *p; char *s="634,.%w|SQ2",c;             int i,j,n=strlen(s);             /* 此处起要求考生自己编制程序 */    if(p=fopen("design.da

108、t","w")=NULL)     printf("cannot open in FILEn");   exit(0);             for(i=0;i<n-1;i+)                       

109、0;for(j=i+1;j<n;j+)                               if(*(s+i)>*(s+j)                             

110、0;      c=*(s+i); *(s+i)=*(s+j); *(s+j)=c;              for(i=0;i<n;i+)  fputc(si,p);                fclose(p);       6. 程序设计题:考生目录下有Design.c程序,请完成以下功能:数组元素xi、yi表示平面上某点坐标,统计10个点中同处在圆(x-1)*(x-1)+(y+0.5)*(y+0.5)=25与(x-0.5)*(x-0.5)+y*y=36内的点数k,并将变量k的值以格式"%d"写到考生目录下新建文件design.dat。  #include <stdio.h>#include <math.h>            

温馨提示

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

评论

0/150

提交评论