版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、理论部分参考答案2009春答案1-6DDCC BBAA DCBA ABCD ABCB ADCD7#include <stdio.h>#include <math.h>double fact(int n) double res=1;int i; for(i=1;i<=n;i+) res=res*i; return res;double cal(double x,double e) double s=0,t=x;int i; for(i=1;t>=e;i+) t=pow(x,i)/fact(i);s=s+t; return s;void main() float
2、 x,e; scanf("%f%f",&x,&e); printf("%lfn",cal(x,e); 2009秋答案一、1-6DACB BCAD DCBA AABB CCDD ABCD 二、1#include <stdio.h>main() int i,a100,min,min_i; for(i=0;i<100;i+) scanf("%d",&ai); if(i=0) min=ai,min_i=0; else if(ai<min) min=ai,min_i=i; printf("
3、;数组a中的最小值为a%d=%dn",min_i,min); 二、2#include <stdio.h>double cal_power(float x,int n) int i; double m=1; for(i=1;i<=n;i+) m=m*x; return m; main() float x; int i,n; double s=0; printf("请输入浮点数x和正整数n:"); scanf("%f%d",&x,&n); for(i=1;i<=n;i+) s=s+1.0/cal_power(
4、x,i); printf("表达式的值为%lfn",s); 2010春答案一、1-6DCCB BBAA AADD ABCD DCCB ABCD二、1#include <stdio.h>main() int i,a100;long s=0; for(i=0;i<100;i+) scanf("%d",&ai); if(ai%2!=0) s=s+ai; printf("数组a中的奇数之和为%ldn",s); 二、2#include <stdio.h>int total(int n) int i,s=0;
5、 for(i=1;i<=n;i+) s=s+i; return s; main() int i,n; float s=0; printf("请输入正整数n:"); scanf("%d",&n); for(i=1;i<=n;i+) s=s+1.0/total(i); printf("表达式的值为%fn",s); 2010秋答案一、1-6AABCC DDABCB AABB BBAA CDDC CDDC二、1 #include <stdio.h> void main() int a100, x, i, cou
6、nt=0 ; printf("Input 100 integers:n"); for ( i=0; i<100; i+) scanf("%d", a+i); printf("Input integer x:n"); scanf("%d", &x); for ( i=0; i<100; i+) if ( ai = x ) count+; printf( "count=%dn", count); 二、2double fact (int n) int i ;double s=1 ;
7、 for ( i=1; i<=n; i+)s *= i ;return s;#include <stdio.h>void main() double s=0;int n, i ;do scanf("%d", &n); while (n<=0);for ( i=1; i<=n; i+)s += (n-i+1)/fact(i);printf("s=%fn", s);11春答案一、ABCD DCBA AABB CCDD CDCD BBAA二、1 #include<stdio.h>void main() int
8、a100,x,i,s=0; for(i=0;i<100;i+) scanf("%d",&ai); scanf("%d",&x); for(i=0;i<100;i+) if(ai>=x) s+; printf("%dn",s);2 #include<stdio.h>double f(int n) int i; double s=1; for(i=n;i<=2*n-1;i+) s=s*i; return s; void main() double s=0;int n,i; do scan
9、f("%d",&n); while(n<=0); for(i=1;i<=n;i+) s+=1/f(i); printf("%fn",s);11秋答案:一、AAAB CDDC BABB DDCC DCBA DCBA二、1 #include<stdio.h> void main() int i,n=0;float a100; for(i=0;i<100;i+) scanf(“%f”,&ai); if(ai<60) n+; printf(“不及格人数是:%d。”,n);2 #include<stdio.
10、h> double f(int n) int i;double s=0; for(i=n;i<=2*n-1;i+) s=s+i; return s; void main() int i,n;double s=0; do scanf("%d",&n); while(n<=0); for(i=1;i<=n;i+) s=s+1.0/f(i); printf(“%lf”,s);12春答案:一、BABC DCBA BCDC AADD CBAB CDDA二、1 #include<stdio.h>void main() int m,n,i,j,
11、a66,s6=0; printf("请输入m,n(1<=m<=6, 1<=n<=6):"); do scanf("%d%d",&m,&n); while(m<1 | m>6 | n<1 | n>6); for(i=0;i<m;i+) for(j=0;j<n;j+) scanf("%d",&aij); si+=aij; for(i=0;i<m;i+) printf("第%d行元素的和是:%d。n",i+1,si); 2 #inc
12、lude<stdio.h> double fun(int x) return x*x-3.14*x-6; void main() int x;double s=0; printf("x yn"); for(x=-10;x<=10;x+) printf("%-6d%.2lfn",x,fun(x); 12秋答案:一、DCBA ABCD ACBD ABCD DCBA BDAC二、1 #include<stdio.h>void main() int n,i,j,s=0,a66; printf("请输入n(1<=n&l
13、t;=6):"); do scanf("%d",&n); while(n<1 | n>6); for(i=0;i<n;i+) for(j=0;j<n;j+) scanf("%d",&aij); if(aij!=0) s+; printf("矩阵中非零元素共%d个。",s); 2 #include<stdio.h> double power(double x,int n) int i;double s=1; for(i=1;i<=n;i+) s=s*x; return
14、s; void main() int i,n;double s=0; do scanf("%d",&n); while(n<=0); for(i=1;i<=n;i+) s=s+power(2,i); printf("%.0lf",s); 13春答案一、DCDA BADC DABA CCBB ADCD ABBC二、1 #include<stdio.h>void main() int x; scanf("%d",&x); if(x=0) printf("0n"); else if
15、(x<0) printf("-");x=-x; while(x!=0) printf("%d",x%10);x=x/10; printf("n"); 2 #include<stdio.h>double f(double x) return (x+1)*(x+1); void main() double x; printf(" x yn"); for(x=-1.0;x<=1.0;x=x+0.1) printf("%.1f %.2fn",x,f(x);13秋答案:一、BCDD
16、 CBAB CCBA DCBB CDAD ADAA二、1 #include<stdio.h> void main() int i,n=0;float a100; for(i=0;i<100;i+) scanf(“%f”,&ai); if(ai>=90) n+; printf(“优秀学生人数是:%d。n”,n);2 #include<stdio.h> double f(int n) int i;double s=0; for(i=n;i<=2*n-1;i+) s=s+i; return s; void main() int i,n;double
17、s=0; do scanf("%d",&n); while(n<=0); for(i=1;i<=n;i+) s=s+f(i)/i; printf(“%lf”,s);14春答案:一、ABBC CDCB AADA ABCD BACC BADD二、1 #include<stdio.h> void main() int m,n,i,j,c=0;float s=0,a66;do printf("请输入m(1<=m<=6):"); scanf("%d",&m); while(m<1 | m
18、>6); do printf("请输入n(1<=n<=6):"); scanf("%d",&n); while(n<1 | n>6);printf("请输入%d个数:",m*n);for(i=0;i<m;i+) for(j=0;j<n;j+) scanf("%f",&aij); s+=aij; printf("矩阵中所有元素的平均值为:%f。n",s/(m*n); for(i=0;i<m;i+) for(j=0;j<n;j+)
19、 if(aij>s/(m*n) c+; printf("大于平均值的元素个数为:%d。n",c); 2 #include<stdio.h>double fact(int n) int i; double s=1; for(i=1;i<=n;i+) s=s*i; return s; void main() double s=0;int n,i; do scanf("%d",&n); while(n<=0); for(i=1;i<=n;i+) s+=i/fact(i+1); printf("%fn&quo
20、t;,s);14秋答案:一、BCDB ACBD CDBC ABDD ABAD AACC二、1 #include<stdio.h> void main() int a100,i,max,count=0; for(i=0;i<100;i+) scanf(“%d”,&ai); max=a0; for(i=1; i<100;i+) if(ai>max) max=ai;for(i=0; i<100;i+) if(ai=max) count+;printf(“MAX=%d,COUNT=%dn”,max,count);2 #include<stdio.h&g
21、t; #include<math.h> double fun(double x) return pow(x,3)+2.0*pow(x,2)-3.9*x+8; void main() double x; printf(“ x yn”); for(x=-2.0;x<=2.0;x=x+0.5) printf(“%-8g%gn”,x,fun(x); 15春答案:一、ACDB BDBD BCAB ACDC ABDD AADC二、1 #include<stdio.h>void main()int a10,i,max,maxi,t; for(i=0;i<10;i+) sc
22、anf("%d",&ai); max=a0; maxi=0; for(i=1;i<10;i+) if(ai>max) max=ai; maxi=i; t=a0; a0=amaxi; amaxi=t; for(i=0;i<10;i+) printf("%d n",ai);2 #include<stdio.h>double fun(double x)return x*x-6.5*x+2; void main()double x; printf(" x yn"); for(x=-3;x<=3;x=
23、x+0.5) printf("%-8.2lf %-8.2lfn",x,fun(x);15秋答案:一、BCDC BABC DCBA ADDA ADCB ABCD二、1 #include<stdio.h>void main()int n,i,j,ii,jj; float a66,min; scanf("%d",&n); for(i=0;i<n;i+) for(j=0;j<n;j+) scanf("%f",&aij); ii=0; jj=0; min=a00; for(i=0;i<n;i+) f
24、or(j=0;j<n;j+) if(aij<min) min=aij;ii=i;jj=j; printf("%f %d %dn",min,ii,jj);2 #include<stdio.h>#include<math.h>double dist(double x,double y)return sqrt(x*x+y*y); void main()int i; double x10,y10; for(i=0;i<10;i+) scanf("%lf%lf",&xi,&yi); printf("
25、; (x,y) distancen"); for(i=0;i<10;i+) printf("(%.2f,%.2f) %.2fn",xi,yi,dist(xi,yi);【补充要点】 位运算符运算符名称说明按位求反转换二进制,按位求反; 0 1 对换&按位求与转换二进制,按位求与;有 0 得 0 ,全 1 得 1|按位求或转换二进制,按位求或;有 1 得 1 ,全 0 得 0按位异或转换二进制,按位异或;相同为 0 ,不同为 1<<按位左移转换二进制,按位左移;乘 2 模余,注意符号>>按位右移转换二进制,按位右移;除 2 取整上
26、机部分参考答案C 程序填空题参考答案1 调用函数f,计算:x=1.7时的多项式的值。#include <stdio.h>float f(float*,float,int);void main() float b5=1.1,2.2,3.3,4.4,5.5; printf("%fn",f(b,1.7,5);float f(float *a,float x,int n) float y=a0,t=1; int i; for(i=1;i<n;i+) t=t*x ; y=y+ai*t; return y;2 调用函数f,从字符串中删除所有的数字字符。#include
27、 <stdio.h>#include <string.h>#include <ctype.h>void f(char *s) int i=0; while(si!='0') if(isdigit(si) strcpy(s+i,s+i+1); else i+;void main() char str80; gets(str); f(str); puts(str);3 数组 x 中原有数据为:1、-2、3、4、-5、6、-7,调用函数 f 后数组 x 中数据为:1、3、4、6、0、0、0,输出结果为:1 3 4 6 #include <st
28、dio.h>void f(int *a,int *m) int i,j; for(i=0;i<*m; ) if(ai<0) for(j=i;j<*m-1;j+) aj=aj+1; a*m-1=0; (*m)-;else i+;void main() int i,n=7,x7=1,-2,3,4,-5,6,-7; f(x,&n); for(i=0;i<n;i+) printf("%5d",xi); printf("n");4 调用函数f,将1个整数首尾倒置。#include <stdio.h>#include
29、 <math.h>long f(long n) long m=fabs(n),y=0; while(m!=0) y=y*10+m%10; m=m/10; return n<0? -y:y;void main() printf("%ldt",f(12345);printf("%ldn",f(-34567);5 输入 m 、n(要求输入的数均大于0),输出它们的最大公约数。 #include <stdio.h>void main() int m,n,k; while(1) scanf("%d%d",&
30、m,&n); if(m>0 && n>0) break; k=m; while( m%k!=0 | n%k!=0) k-; printf("%dn",k);6 循环输入若干个整数(以输入Ctrl+z 结束循环),输出每个数的位数。例如: #include <stdio.h>void main() int n,m,k; while(scanf("%d",&n)!=-1) m=n;k=0; while(m!=0) k+; m=m/10; printf("%d是%d位整数n",n,k)
31、; 7 对 x=0.0,0.5,1.0,1.5,2.0,., 10.0,求f(x)= x2 - 5.5x +sin(x) 的最大值。 #include <stdio.h>#include <math.h>#define f(x) x*x-5.5*x+sin(x)void main() float x,max; max=f(0.0); for(x=0.5;x<=10;x=x+0.5) if(f(x)>max)max=f(x); printf("%fn",max);8 循环输入正整数 n (直到输入负数或者0结束),计算并显示满足条件 2m
32、n 2m+1 的 m 值。 #include <stdio.h>#define F (t<=n && t*2>=n)void main() int m,t,n; while(scanf("%d",&n),n>0) m=0;t=1; while(!F) t=t*2; m+; printf("%d %dn",n,m); 9 数列的第1、2项均为1,此后各项的值均为该项的前两项的和。要求:计算数列的第 24 项的值。 #include <stdio.h> long f(int); void ma
33、in() printf("%ldn",f(24); long f(int n) if( n=1 | n=2) return 1; else return f(n-1)+f(n-2);10 显示数据,要求: (1)在数组a中存在,而在数组b中不存在的数,以及 (2)在数组b中存在,而在数组a中不存在的数。#include <stdio.h>void main() int a6=2,5,7,8,4,12,b7=3,4,5,6,7,8,9,i,j,k; for(i=0;i<6;i+) for(j=0;j<7;j+) if(ai=bj) break; if(
34、j=7) printf("%d ",ai); putchar('n'); for(i=0;i<7;i+) for(j=0;j<6;j+) if(bi=aj) break; if(j=6) printf("%d ",bi); putchar('n');11 输入三个整数,按照由小到大的顺序输出这三个数。 #include <stdio.h>void swap(int *pa,int *pb) /*交换两个数的位置*/ int temp; temp=*pa;*pa=*pb;*pb=temp;void m
35、ain() int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) swap(&a,&b); if(b>c) swap(&b,&c); if(a>b) swap(&a,&b); printf("%d,%d,%dn",a,b,c);12 输入一个不超过80个字符的字符串,将其中的大写字符转换为小写字符;小写字符转换为大写字符;空格符转换为下划线。输出转换后的字符串。#include <stdio.h>#inclu
36、de <ctype.h>void main() char s81; int i; gets(s); for(i=0;si!= '0'i+) if(isupper(si) si=si+32; else if(islower(si) si=si-32; if(si= ' ') si='_' puts(s);13 输入4个整数,通过函数 Dec2Bin 的处理,返回字符串,显示每个整数的机内码(二进制,补码)。#include <stdio.h>void Dec2Bin(long m,char *s) int i,k; for(
37、i=0;i<32;i+) k=m & 0x80000000; if(k!=0) si='1' else si= '0' m=m*2; /* m 左移1位 */ void main() char a33="" long n; int i; for(i=1;i<=4;i+) scanf("%ld",&n); Dec2Bin(n,a); puts(a); 14 输入10个数到数组 a 中,计算并显示所有元素的平均值,以及其中与平均值相差最小的数组元素值。#include <stdio.h>
38、#include <math.h> void main() double a10,v=0,x,d; int i; printf("Input 10 numbers: "); for(i=0;i<10;i+) scanf("%lf", &ai);v=v+ai/10; d= fabs(a0-v); x=a0; for(i=1;i<10;i+)if(fabs(ai-v)<d) d=fabs(ai-v),x=ai; printf("%.4f %.4fn",v,x);15 将输入字符串 s 中所有的小写字符
39、 c 删除 。 #include <stdio.h> #include <string.h> void main() char s81;int i; gets(s); for(i=0;i<strlen(s);) if(si='c') strcpy(s+i,s+i+1); else i+; puts(s); C 程序改错题参考答案1 输入x和正数eps,计算多项式 的和,直到末项的绝对值小于eps为止。 #include <stdio.h>#include <math.h>void main() double x,eps,s=
40、1,t=1; /* 1 */ float i=0; /* 2 */ scanf("%lf%lf",&x,&eps); do i+;/* 3 */ t=-t*x/i; s+=t; /* 4 */ while(fabs(t)>=eps); printf("%fn",s);2 程序运行时,若输入a,n分别为3,6,则输出下列表达式的值: 3+33+333+3333+33333+333333#include <stdio.h>void main() int a,n,i; long s=0,t; /* 1 */ scanf(&qu
41、ot;%d%d",&a,&n); /* 2 */ t=0; /* 3 */ for(i=1;i<=n;i+) t=t*10+a; /* 4 */s=t+s; printf("%ldn",s);3 程序运行时输入n,输出n的所有质数因子。 例如:输入n为60,则输出 60=2*2*3*5#include <stdio.h>void main() int n,i; /* 1 */ scanf("%d",&n);printf("%d=",n); /* 2 */ i=2;/* 3 */ wh
42、ile(n>1) if(n%i=0) printf("%d*",i); /* 4 */ n=n/i; else i+;printf("b n");4 程序运行时输入整数n,则输出n的各位数字之和。 例如:输入n=1308,则输出12;n=-3204,则输出9#include <stdio.h>void main() /* 1 */ int n,s=0; scanf("%d",&n); /* 2 */ n=n<0?-n:n; /* 3 */ while(n>0) /* 4 */ s=s+n%10;
43、n=n/10; printf("%dn",s);5 程序运行时,输入10个数,分别输出其中的最大值和最小值。#include <stdio.h>void main() float x,max,min; int i; /* 1 */ for(i=1;i<=10;i+) /* 2 */ scanf("%f",&x); /* 3 */ if(i=1) max=x;min=x; else if(x>max) max=x; if(x<min) min=x; /* 4 */ printf("%f,%fn",m
44、ax,min);6 输入n,再输入n个点的平面坐标,则输出那些距离坐标原点不超过5的点的坐标值。#include <stdio.h>#include <math.h>#include <stdlib.h>void main() int i,n; struct axy float x,y; /* 1 */ struct axy *a; /* 2 */ scanf("%d",&n); a=(struct axy*) malloc(n*sizeof(struct axy); for(i=0;i<n;i+) scanf("
45、%f%f",&ai.x,&ai.y); /* 3 */ for(i=0;i<n;i+) if(sqrt(pow(ai.x,2)+pow(ai.y,2)<=5) printf("%f,",ai.x); /* 4 */ printf("%fn",(a+i)->y); 7 循环输入x,n,调用递归函数计算,显示x的n次方。当输入n小于0时,结束循环。#include <stdio.h>float f(float x,int n) /* 1 */ if(n=0) return 1; else/* 2 */r
46、eturn x*f(x,n-1);void main() float y,z; int m; while(1) scanf("%f%d",&y,&m); /* 3 */ if(m<0) break; /* 4 */ z=f(y,m); printf("%fn",z); 8 输入两个字符串s1,s2后,将它们首尾先连。#include <stdio.h>void main() char s180,s240; int j; /* 1 */ int i=0; printf("Input the first strin
47、g:"); gets(s1); printf("Input the second string:"); gets(s2); /* 2*/ while(s1i!= '0') i+; for(j=0;s2j!='0'j+) /* 3 */ s1i+j=s2j; /* 4 */ s1i+j= '0' puts(s1);9 用“选择法”对10个整数按升序排序。#include <stdio.h> #define N 10 void main() int i,j,min,temp; int aN=5,4,3,2,1
48、,9,8,7,6,0; printf("排序前:"); /* 1 */ for(i=0;i<N;i+) printf("%4d",ai); putchar('n'); for(i=0;i<N-1;i+) /* 2 */ min=i; for(j=i+1;j<N;j+) /* 3 */ if(aj<amin) min=j; temp=amin;amin=ai;ai=temp; printf("排序后:"); for(i=0;i<N;i+)printf("%4d",ai);
49、 /* 4 */ putchar('n');10 将十进制的整数,以十六进制的形式输出。#include <stdio.h> /* 1 */ void DtoH(int n) int k=n & 0xf; if(n>>4!=0) DtoH(n>>4); /* 2 */ if(k<10) putchar(k+'0'); else /* 3 */ putchar(k-10+'a'); void main() int a4=28,31,255,378,i; for(i=0;i<4;i+) prin
50、tf("%d->",ai); /* 4 */ DtoH(ai); putchar('n'); 11 输入一个字符串,将其中所有的非英文字母的字符删除后输出。#include <stdio.h> #include <string.h>#include<ctype.h> void main() char str81; int i,flag; /* 1 */ gets(str); for(i=0;stri!='0') flag=tolower(stri)>='a' &&
51、 tolower(stri)<='z' /* 2 */ flag=!flag; if(flag) /* 3 */ strcpy(str+i,str+i+1); /* 4 */ i-; i+; printf("%sn",str);12 显示两个数组中,数值相同的元素。#include <stdio.h> void main() /* 1 */ int i,j; int a6=1,3,5,7,9,11; int b7=2,5,7,9,12,16,3; /* 2 */ for(i=0;i<6;i+) for(j=0;j<7;j+) /* 3 */ if(ai=bj) break;/* 4 */if(j<7) printf("%d ",ai); printf("n");13 逐个显示字符串中各字符的机内码。提示:英文字符字母的机内码首位为0,汉子的每个字节首位为1.程序正确运行后,显示如下:#include <stdio.h> void main() /* 1 */ char a7= "a2汉字" int i,j,k; /*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑五金厂车工细则
- 2026年山西老区职业技术学院单招职业技能考试题库附参考答案详解(突破训练)
- 某污水处理厂防爆管控实施办法
- 2026 企业薪酬福利体系设计方案与案例
- 2025年热处理工年度工作总结
- 2026年餐饮品牌全案策划书
- 2026年山西管理职业学院单招职业技能测试题库完整参考答案详解
- 合疗奖惩制度
- 员工安全奖惩制度
- 咨询台岗位奖惩制度
- 2025年上饶幼儿师范高等专科学校单招职业技能测试题库汇编
- T-CNITA 05103-2018 袋式除尘用水刺非织造滤料
- 部编版小学语文六年级下册必读书阅读训练试题及答案(全册)
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 《光的本质之争》课件
- 《任务型教学法在初中历史教学中的应用研究》
- 学校食堂员工培训
- 中药灌肠疗法课件
- 西门子S7-1500 PLC技术及应用 课件 第5章 S7-1500 PLC 的通信及其应用
- 2024年员工借调合同书
- 市政绿化养护及市政设施养护服务方案(技术方案)
评论
0/150
提交评论