c语言上机练习.doc_第1页
c语言上机练习.doc_第2页
c语言上机练习.doc_第3页
c语言上机练习.doc_第4页
c语言上机练习.doc_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序上机实训题上机练习一一、程序改错题:程序功能:求100以内(包括100)的偶数之和.#include stdio.hmain() int i,sum=1; sum+=i; printf(Sum=%d n;sum); getch();二、程序填空题:程序功能:输入数组最大的与最后一个元素交换,最小的与第一个元素交换,输出数组。main() int number10; input(number); max_min(number); output(number);input(int number10) int i; for(i=0;【?】;i+) scanf(%d,&numberi);scanf(%d,&number9);max_min(int array10) int max,min,k=0,l=0,t,p,; max=min=array0; for(p= 1;pmax) max= arrayp;k=p;else if(array0 min) 【?】; t=array0; array0=min; arrayl= t; 【?】; output(int array10) int p; for(p=0;p 9;p+) printf(%d, arrayp); printf(%dn,array9); 三、程序设计题:程序功能:求1到w之间的奇数之和。(w是大于等于100小于等于1000的整数)#include stdio.h #includeconio.hlong fun(int w) /*Program*/ /* End */main() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %ldn, fun(m);上机练习二一、程序改错题:功能:求1到10的阶乘的和。main() int i; float t,s=0; float fac(int n); for(i=1;i10;i+) s=fac(i); printf(%fn,s);float fac(int n) int y=1; int i; for(i=1 ;i=n;i+) y=y*i; return;二、程序填空题:功能:计算一元二次方程的根。#include #include 【?】main() float a,b,c,disc,x1,x2,realpart,imagpart; scanf(%f%f%f,&a,&b,&c); printf(the equation); if(【?】=1e-6) printf(is not quadraticn); else disc=b*b-4*a*c; if(fabs(disc)=1e-6) printf(has two equal roots:%-8.4fn,-b/(2*a); else if(【?】) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(has distinct real roots:%8.4f and %.4fn,x1,x2); else realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf(has complex roots:n); printf(%8.4f=%.4fin,realpart,imagpart); printf(%8.4f-%.4fin,realpart,imagpart); 三、程序设计题:功能:判断m是否为素数。#include stdio.hmain() int m,k=0; for(m=100;m200;m+) if(fun(m) printf(%4d,m); k+; if(k%5=0) printf(n); printf(k=%dn,k); fun(int m) /*Program*/ /* End */上机练习三一、程序改错题:功能:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5#include stdio.hmain() int n,i; printf(nplease input a number:n); scanf(%d,&n); printf(%d=,n); for(i=2;i=n;i+) while(n=i) if(n%i=1) printf(%d*,i); else break; printf(%d,n);二、程序填空题:功能:下面程序是计算 sum1+1+1/2)+(1+1/2+1/3)+. (1+1/2+.1/n)的值。例如:当n3,sum4.3333333 double f(int n) int i; double s; s=0; for(i=1;i=n;i+) 【?】; return s;main() int i,m=3; float sum=0; for(i=1;i=m;i+) 【?】; printf(【?】n,sum);三、程序设计题:功能:求一批数中小于平均值的数的个数。#includeint average_num(int a,int n) /*Program*/ /* End */main() int n,a100,i,num; clrscr(); scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); num=average_num(a,n); printf(the num is:%dn,num); 上机练习四一、程序改错题:功能:求如下表达式: #include main() int n; float fun(); printf(Please input a number:); print(%d,n) ; printf(%10.6fn,fun(n);fun(int n) int i,j,t; float s; s=0; while(i=1;i=n;i+); t=0; for(j=1;j=i;j+) t=t+j; =s+1/t; return s;二、程序填空题功能:已定义一个含有30个元素的数组s,函数fun1的功能是按顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序 每五个元素求一个平均值, 并将该值存放在数组w中。float s30,w6;fun1(float s) int k,i; for(k=2,i=0;i30;i+) 【?】 ; k+=2; fun2(float s,float w) float sum=0.0; int k,i; for(k=0,i=0;i30;i+) sum+=si; 【?】; wk=sum/5; 【?】 ; k+; main() int i; fun1(s); 【?】; for(i=0;i30;i+) if(i%5=0) printf(n); printf(%8.2f,si); printf(n); for(i=0;i6;i+) printf(%8.2f,wi); 三、程序设计题:功能:有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩。#include stdio.hfloat average (float array10) /*Program*/ /* End */ main() float score=92,87,68,56,92,84,70,65,90,60; printf(average score is %fn,average (score); 上机练习五一、程序改错题功能:编写函数fun求20以内所有5的倍数之积。#define N 20 #include stdio.hmain() int sum; sum=fun(5); printf(%d以内所有%d的倍数之积为: %dn,N,5,sum); getch(); int fun(int m) int s=0,i; for(i=1;iN;i+) if(i%m=0) s=*i; return s;二、程序填空题功能:编程求任意给定的n个数中的奇数的连乘积,偶数的平方和以及0的个数,n通过scanf()函数输入。main() int r=1,s=0,t=0,n,a,i; printf(n=);scanf(%d,&n); for(i=1;i=n;i+) printf(a=); scanf(%d,【?】); if(【?】!=0) 【?】=a; else if(a!=0) s+=【?】; else t+; printf(r=%d,s=%d,t=%dn,r,s,t);三、程序设计题功能:用函数求N个10,60上的整数中能被5整除的最大的数,如存在则返回这个最大值,如果不存在则返回0。int find(int arr,int n) int m=0; /*Program*/ /* End */ return(m);#define N 30 #include stdlib.h #include stdio.hmain() int aN,i,k; for(i=0;iN;i+) ai=random(51)+10; for(i=0;iN;i+) printf(%5d,ai); if(i+1)%5=0) printf(n); k=find(a,N); if(k=0) printf(NO FOUNDn); else printf(the max is:%dn,k); 上机练习六一、程序改错题功能:实现3行3列矩阵的转置,即行列互换。fun(int a33,int n) int i,j,t; for(i=0;in;i+) for(j=0;jn;j+) scanf(%d,aij); for(i=0;in;i+) for(j=0;jn;j+) printf(%4d,aij); printf(n); for(i=0;in;i+) for(j=0;jn;j+) aij=t; aij=aji; t=aji; for(i=0;in;i+) for(j=0;jn;j+) printf(%4d,aij); printf(n); main() int b33; fun(b,3);二、程序填空题功能:百鸡问题:100元买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只? #include main() int cocks,hens,chicks; cocks=0; while(cocks=19) 【?】=0; while(hens=【?】) chicks=100.0-cocks-hens; if(5.0*cocks+3.0*hens+chicks/3.0=100.0) printf(%d,%d,%dn,cocks,hens,chicks); 【?】; 【?】; 三、程序设计题功能:求一个四位数的各位数字的立方和。#include stdio.h int fun(int n) /*Program*/ /* End */ main() int k; k=fun(1234); printf(k=%dn,k); 上机练习七一、程序改错题功能:求0-7这8个数字所能组成的奇数个数。#include stdio.hmain() long sum=4;s=4; int j; for(j=2;j=8;j+) printf(n%d,sum); if(j2) s*=7; else s*=8; sum+=s; printf(nsum=%ld,sum); getch();二、程序填空题功能:如果整数的全部因子(包括,不包括本身)之和等于;且整数的全部因子 ( 包括,不包括本身 )之和等于,则将整数和称为亲密数。求 3000 以内的全部亲密数。#include #include main( ) int a, i, b, n ; printf(Friendly-numbers pair samller than 3000:n) ; for(a=1 ; a3000 ; a+) for(b=0,i=1 ; i=a/2 ; i+ ) if(!(a%i) 【?】 ; for(n=0,i=1 ; i=b/2 ; i+) if(!(b%i) 【?】 ; if(【?】 & ab) printf(%4d%4dn,a,b) ; 三、程序设计题功能:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。例如:7是素数,8不是素数。请编写fun函数。素数是仅能被1和自身整除的数#include stdio.h main() int m,flag; printf(input an integer:); scanf(%d,&m); flag=fun(m); if(flag) printf(%d is a prime.n,m); else printf(%d is not a prime.n,m); int fun(int n) /*Program*/ /* End */上机练习八一、程序改错题功能:编写一个程序计算某年某月有几天。(注意要区分闰年)#includevoid main() int yy,mm,len; printf(year,month=); scanf(%d%d,&yy,&mm); switch(yy) case 1: case 3: case 5: case 7: case 8: case 10: case 12: len=31; break case 4: case 6: case 9: case 11: len=30; break; case 2: if (yy%4=0 & yy%100!=0 | yy%400=0) len=29; else len=28; break; default printf(input error!n); break; printf(The length of %d %d id %dn,yy,mm,len); getch();二、程序填空题功能:从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数。#include main() int k,n,i,j; printf(Enter INT number,with 0 to endn); i=j=0; scanf(%d,&n); while(n!=0) if(n0)i=【?】; if(n0)j=【?】; scanf(%d,【?】); printf(i=%4dn,i,j); 三、程序设计题功能:用辗转相除法求两个整数的最大公约数。#includeint gcd(int n,int m) /*Program*/ /* End */main() int n,m,result; clrscr(); scanf(%d%d,&n,&m); result=gcd(n,m); printf(the gcd is %dn,result); 上机练习九一、程序改错题功能:已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项的和。下列给定程序中,函数fun的功能是:计算并输出该数列的前n项的平方根之和sum,n的值通过形参传入。例如:当n=10时,程序的输出结果应为23.197745。#include fun (int n) double sum,s0,s1,s2,s; int k; sum=0.0; if(nn;k+) s=s0+s1+s2; sum+=sqrt(s); s0=s1;s1=s2;s2=s; return sum;main() int n; scanf(%d,&n); printf(%lfn,fun(n);二、程序填空题功能:计算平均成绩并统计90分以上人数。main() int n,m;float grade,average; average=n=m=【?】; while(1) 【?】(%f,&grade);if(grade0) break; n+; average+=grade; if(grade90)【?】; m+; if(n) printf(%.2f%dn,average/n,m); 三、程序设计题功能给定n个数据, 求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可)。#includeint station(int s,int n) /*Program*/ /* End */main() int a100,n,i,t; clrscr(); scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); t=station(a,n); printf(the max_value position is:%dn,t); 上机练习十一、程序改错题功能:输入n,计算s=1+1+2+1+2+3+1+2+3+4+.+1+2+3+4+.+n#includevoid main() int i,s;p,n; printf(Enter n:n); scanf(%d,n); for(s=p=0,i=1;i1) f=【?】; else f=1; return(f);main() int n; long y; printf(input a inteager number:n); scanf(%d,【?】); y=power(n); printf(%d!=%ldn,n,【?】); getch(); 三、程序设计题功能:在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积,并在fun() 函数中输出。#include stdio.hmain() int i,j,s,a33; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); s=fun(a); printf(Sum=%dn,s);int fun(int a33) /*Program*/ /* End */上机练习十一一、程序改错题功能:用起泡法对10个整数从小到大排序。 void sort(int x,int n) int i,j,k,t; for(i=0;in-1;i+) for(j=0;jxi+1) t=xj; xj=xj+1; xj+1=t; main() int i,n,a100; printf(please input the length of the array:n); scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); sort(n,a); printf(output the sorted array:n); for(i=0;i=n-1;i+) printf(%5d,ai); printf(n);二、程序填空题功能:求两个非负整数的最大公约数和最小公倍数。main() int m,n,r,p,gcd,lcm; scanf(%d%d,&m,&n); if(mn) p=m,m=n;n=p; p=m*n; r=m%n; while(【?】 ) m=n;n=r; 【?】; gcd=【?】; lcm=p/gcd; printf(gcd=%d,lcm=%dn, 【?】); 三、程序设计题功能:找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。#include stdio.h #includeconio.hint fun(int n) /*Program*/ /* End */ main() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %dn, fun(m); 上机练习十二一、程序改错题用起泡法对连续输入的十个字符排序后按从小到大的次序输出.#define N 10 #include #include main( ) int i; char strN; for(i=0;iN;i+)scanf(%c,stri); sort(strN); for(i=0;iN;i+) printf(%c,stri); printf(n);sort(char strN) int i,j; char t; for(j=1;jN;j+) for(i=0;iN-j;i-) if(stristri+1) t=stri; stri=stri+1; stri+1=t; 二、程序填空题功能:从键盘上输入两个复数的实部与虚部,求出并输出它们的和、差、积、商。#includevoid main() float a,b,c,d,e,f; printf(输入第一个复数的实部与虚部:); scanf(%f, %f,&a,&b); printf(输入第二个复数的实部与虚部:); scanf(%f, %f,&c,&d); 【?】; f=b+d; printf(相加后复数:实部:%f,虚部:%fn,e,f); e=a*c-b*d; 【?】; printf(相乘后复数:实部:%f,虚部:%fn,e,f); e=(a*c+b*d)/(c*c+d*d); 【?】; printf(相除后复数:实部:%f,虚部:%fn,e,f);三、程序设计题功能:编写函数fun计算下列分段函数的值: x2+x+6 x0且x-3 f(x)= x2-5x+6 0x10且x2及x3 x2-x-1 其它#include stdio.h float fun(float x) /*Program*/ /* End */main() float x,f; printf(Input x=); scanf(%f,&x); f=fun(x); printf(x=%f,f(x)=%fn,x,f); 上机练习十三一、程序改错题功能:编写程序, 求矩阵(3行3列)与5的乘积例如:输入下面的矩阵: 100 200 300 程序输出: 500 1000 1500 400 500 600 2000 2500 3000 700 800 900 3500 4000 4500#include stdio.hint fun(int array33) int i;j; for(i=1; i 3; i+) for(j=0; j 3; j+) arrayij=arrayij/5;main() int i,j; int array33=100,200,300,400,500,600, 700,800,900; for (i=0; i 3; i+) for (j=0; j 3; j+) printf(%7d,arrayij); printf(n); fun(array); printf(Converted array:n); for (i=0; i 3; i+) for (j=0; j 3; j+) printf(%7d,arrayij); printf(n); 二、程序填空题功能:已知X、Y、Z分别表示09中不同的数字,编程求出使算式 XXXX+YYYY+ZZZZ=YXXXZ成立时X、Y、Z的值,并要求打印该算式。main() int x,y,z; for(x=0;【?】;x+) for(y=0;y10;y+) if(y=x) continue; for(z=0;z10;z+) if(z=x【?】z=y) continue; if(1111*(x+y+z)=【?】+1110*x+z) printf(x=%d,y=%d,z=%dn,x,y,z); printf(%d+%d+%d=%dn,1111*x,1111*y,1111*z,【?】); exit(0); 三、程序设计题功能:用do-while语句求1100的累计和。#includelong int fun(int n) /*Program*/ /* End */ void main () int i=100; printf(1100的累加和为:%ldn,fun(i); 上机练习十四一、程序改错题功能:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入。例如:若k的值为500,则函数值为4622。int fun(int k) int m=0,mc=0,j; while (k=2)|(mc10) if(k%13=0)|(k%17=0) m=m+k; mc+; k+; return ;main() printf(%dn,fun(500);二、程序填空题功能:十个小孩围成一圈分糖果,老师分给第一个小孩 10 块,第二个小孩 2 块,第三个小孩 8 块,第四个小孩 22 块,第五个小孩16 块,第六个小孩 4块,第七个小孩 10 块,第八个小孩6 块,第九个小孩 14 块,第十个小孩20 块。然后所有的小孩 同时将自己手中的糖分一半给左边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次调整后大家手中的糖的块数 都一样?每人各有多少块糖?main() int i,count=0,a11=0,10,2,8,22,16,4,10,6,14,20 ; while(【?】) for(i=1 ; i=10 ; i+) ai-1=ai-1/2+ai/2 ; a10=a10/2+a0 ; for(i=1 ; i=10 ; i+) if(【?】) ai+ ; for(i=1 ; i10 ; i+) if(ai!=ai+1) 【?】; if(i=10) break ; else a0=0 ; count+ ; printf(count=%d number=%dn,count,a1) ; 三、程序设计题功能:编写函数用冒泡排序法对数组中的数据进行从小到大的排序。#include #includevoid sort(int a,int n) /*Program*/ /* End */main() int a16,i; clrscr(); for(i=0;i16;i+) ai=random(30)+15; for(i=0;i16;i+) printf(%3d,ai); printf(n-n); sort(a,16); for(i=0;i16;i+) printf(%3d,ai); 上机练习十五一、程序改错题功能:根据以下公式求例如:给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。 1 1 2 1 2 3 1 2 3 4 = 1 + + x + x x + x x x + .2 3 3 5 3 5 7 3 5 7 9double fun(double eps) double s,t; int n=1; s=0.0; t=1; while(t=eps) s+=t; t=n/(2*n+1)*t; n+; return s;main() double x; scanf(%lf,&x); printf(neps=%lf,Pi=%lfnn,x,fun(x);二、程序填空题功能:打印以下图形。* * * * *main ( ) char a59= ; int i,j; for (i=0;i5;i+)for(j=i; 【?】;j+) aij=*; for(【?】;i5;i+) for(j=0;j9;j+) printf(%c, 【?】 ); 【?】; 三、程序设计题功能:用函数求fibonacci数列前n项的和。说明:fibonacci数列为数列的第一项值为1,第二项值也为1,从第三项开始,每一项均为其前面相邻两项的和。例如:当n=28时,运行结果:832039#include stdio.hlong sum(long f1,long f2) /*Program*/ /* End */main() long int f1=1,f2=1; clrscr(); printf(sum=%ldn,sum(f1,f2); 上机练习十六一、程序改错题功能:一个已排好序的一维数组,输入一个数number,要求按原来排序的规律将它插入数组中.main( ) int a11=1,4,6,9,13,16,19,28,40,100; int temp1,temp2,number,end,i,j; for(i=0;iend) a11=number; else for(i=0;i10;i+) if(ainumber) temp1=ai; ai=number; for(j=i+1;j11;j+) temp2=aj; aj=temp1; temp1=temp2; break; for(i=0;i11;i+) printf(%6d,ai);二、程序填空题功能:计算并输出high以内最大的10个素数之和,high由主函数传 给fun函数,若high的值为100,则函数的值为732。#include #include #include int fun( int high ) int sum = 0, n=0, j, yes; while (high = 2) & (【?】) yes = 1; for (j=2; j=high/2; j+ ) if (【?】) yes=0; break; if (yes) sum +=high; n+; high-; 【?】;main ( ) clrscr( ); printf(%dn, fun (100);三、程序设计题功能:编写程序,实现矩阵(3行3列)的转置(即行列互换)例如:输入下面的矩阵: 程序输出: 100 200 300 100 400 700 400 500 600 200 500 800 700 800 900 300 600 900#include stdio.h int fun(int array33) /*Program*/ /* End */ main() int i,j; int array33=100,200,300, 400,500,600,700,800,900; for (i=0; i 3; i+) for (j=0; j 3

温馨提示

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

最新文档

评论

0/150

提交评论