《电脑,系统测试题5.docx》由会员分享,可在线阅读,更多相关《电脑,系统测试题5.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、电脑,系统测试题5系统测试题5 1.输入某年某月某日,推断这一天是这一年的第几天? #include <stdio.h> main() int day,month,year,sum,leap; printf(“nplease input year,month,dayn“); scanf(“%d,%d,%d“,year,month,day); switch(month) case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; /*SPACE*/ case 4:;break; case 5:sum=120;break;
2、 case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf(“data error“);break; /*SPACE*/ ; /*SPACE*/ if(year%400=0|() leap=1; else leap=0; /*SPACE*/ if() sum+; printf(“it is the %dth da
3、y.“,sum); 2.已知X、Y、Z分别表示09中不同的数字,编程求出访算式 XXXX+YYYY+ZZZZ=YXXXZ成立时X、Y、Z的值,并要求打印该算式。#include <stdio.h> #include <stdlib.h> main() int x,y,z; /*SPACE*/ for(x=0;x+) for(y=0;y<10;y+) if(y=x) continue; for(z=0;z<10;z+) /*SPACE*/ if(z=xz=y) continue; /*SPACE*/ if(1111*(x+y+z)=+1110*x+z) pri
4、ntf(“x=%d,y=%d,z=%dn“,x,y,z); /*SPACE*/ printf(“%d+%d+%d=%dn“,1111*x,1111*y,1111*z,); exit(0); 3.编程求随意给两个日期(Y0年M0月DO日和Y1年M1月D1日)相差的天数。#include <stdio.h> #include <stdlib.h> int f(int y) return(y%4=0y%100!=0|y%400=0); int mday(int y,int m) return(31-(m=4)+(m=6)+(m=9)+(m=11)-(3-f(y)*(m=2);
5、 int yday(int y,int m,int d) return(d+31*(m>1)+(m>3)+(m>5)+(m>7)+(m>8)+(m>10)+30*(m>4)+(m>6)+(m>9)+(m>11)+(28+f(y)*(m>2); int yend(int y,int m,int d) return(365+f(y)-yday(y,m,d); main() int y1,m1,d1,y2,m2,d2,n,i; printf(“y1,m1,d1=“); scanf(“%d,%d,%d“,y1,m1,d1); /*SPA
6、CE*/ if(m1<1|m1>12|d1<1|d1>) exit(0); printf(“y2,m2,d2=“);scanf(“%d,%d,%d“,y2,m2,d2); /*SPACE*/ if(m2<1|m2>12|d2<1|d2>) exit(0); if(y1>y2|y1=y2m1>m2|y1=y2m1=m2d1>d2) n=y1; y1=y2; y2=n; n=m1; m1=m2; m2=n; n=d1; d1=d2; d2=n; else /*SPACE*/ n=yend(y1,m1,d1)+; /*SPACE*/
7、for(i=;i<y2;i+) n+=365+f(i); printf(“%d.%d.%d->%d.%d.%d:n=%dn“,y1,m1,d1,y2,m2,d2,n); 4.用二分法求方程2X3+4X2+3X-6=0在(-10,10)之间的根 ,其中 Xn代表X的n次方。#include <stdio.h> # include <math.h> main() float x0,x1,x2,fx0,fx1,fx2; do printf(“Enter x1x2:“); scanf(“%f,%f“,x1,x2); fx1=x1*(2*x1-4)*x1+3)-6;
8、fx2=x2*(2*x2-4)*x2+3)-6; /*SPACE*/ while (fx1*fx2); do x0=(x1+x2)/2; fx0=x0*(2*x0-4)*x0+3)-6; /*SPACE*/ if(fx0*fx1) x2=x0; fx2=fx0; else x1=x0; fx1=fx0; /*SPACE*/ while(>=1e-5); printf(“x=%6.2fn“,x0); 5.不用第三个变量,实现两个数的对调操作。#include <stdio.h> main() int a,b; scanf(“%d %d“,a,b); printf(“a=%d,b
9、=%dn“,a,b); /*SPACE*/ a= ; /*SPACE*/ b= ; /*SPACE*/ a= ; printf(“a=%d,b=%dn“,a,b); 6.计算圆周率的近似值。#include <stdio.h> #include <math.h> main() int s,n; /*SPACE*/ double ,t; t=1;pi=0;n=1;s=1; /*SPACE*/ while(>=2e-6) pi+=t;n+=2;s=-s;t=s/n; /*SPACE*/ pi*=; printf(“pi=%.6fn“,pi); 7.计算并输出n(包括n
10、)以内能被3或7整除的全部自然数的倒数之和。 例如,从键盘给n输入30后,输出为:S=1.226323。 #include <stdio.h> main() int i,n; /*SPACE*/ float ; printf(“请输入n: “); /*SPACE*/ (“%d“, n); sum = 0.0; /*SPACE*/ for (i=1; i<=n ; ) if (i%3=0 | i%7=0) /*SPACE*/ sum += ; /*SPACE*/ printf(“s=%fn“,); 8.将字母转换成密码,转换规则是将当前字母变成其后的第四个字母,但W变成A、X变
11、成B、Y变成C、Z变成D。小写字母的转换规则同样。#include <stdio.h> main() char c; /*SPACE*/ while(c=)!=n) /*SPACE*/ if(c>=ac<=z)|(c>=Ac<=Z); /*SPACE*/ if(c>Zc<=Z+4)|c>z) c-=26; printf(“%c“,c); 9.百鸡问题:100元买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只? #include <stdio.h> main() int coc
12、ks,hens,chicks; cocks=0; while(cocks<=19) /*SPACE*/ =0; /*SPACE*/ while(hens<=) chicks=100-cocks-hens; if(5*cocks+3*hens+chicks/3=100) printf(“%d,%d,%dn“,cocks,hens,chicks); /*SPACE*/ ; /*SPACE*/ ; 10.三角形的面积为:area=sqrt(s*(s-a)*(s-b)*(s-c).其中 ,s=(a+b+c)/2,a、b、c为三角形三条边的长。定义两个带参数的宏,一个用来求s,另一个用来求a
13、rea。编写程序,在程序中用带参数的宏求面积area。#include <stdio.h> #include “math.h“ /*SPACE*/ # S(x,y,z)(x+y+z)/2 #define AREA(s,x,y,z)sqrt(s*(s-x)*(s-y)*(s-z) main() double area; float a,b,c,s; printf(“a,b,c=“); /*SPACE*/ scanf(“%f,%f,%f“,a,c); if(a+b>cb+c>ac+a>b) /*SPACE*/ s=; /*SPACE*/ area=; printf(“
14、area=%fn“,area); 11.已知一个数列,它的头两项分别是0和1,从第三项起先以后的每项都是其前两项之和。编程打印此数,直到某项的值超过200为止。#include <stdio.h> main() int i,f1=0,f2=1; /*SPACE*/ for(;i+) printf(“5%d“,f1); /*SPACE*/ if(f1>) break; printf(“5%d“,f2); if(f2>200) break; if(i%2=0) printf(“n“); f1+=f2; /*SPACE*/ f2+=; printf(“n“); 12.以下程序
15、的功能是:输出a、b、c三个变量中的最小值。#include <stdio.h> main() int a,b,c,t1,t2; /*SPACE*/ scanf(“%d%d%d“,a,b, ); t1=a<b? a:b; /*SPACE*/ t2=c<t1? ; printf(“%dn“,t2); 13.以下程序的功能是:输出a、b、c三个变量中的最小值。#include <stdio.h> main() int a,b,c,t1,t2; /*SPACE*/ scanf(“%d%d%d“,a,b, ); t1=a<b? a:b; /*SPACE*/ t2=c<t1? ; printf(“%dn“,t2); 14.以下程序的功能如(图1)。 #include <stdio.h> /*SPACE*/ main() double x,f; scanf(“%f“,x); /*SPACE*/ if(x<0) ; /*SPACE*/ else if() f=2*x+1; else f=sin(x)+5; /*SPACE*/ printf(“x=%f,y=%fn“, );
限制150内