C语言实验题.doc_第1页
C语言实验题.doc_第2页
C语言实验题.doc_第3页
C语言实验题.doc_第4页
C语言实验题.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

C语言实验题1 买糖果题目描述:小瑜是个爱吃糖果的馋鬼,天天嚷着要爸爸买糖果,可是爸爸很忙,哪有时间啊,于是就让小瑜自己去了,糖果3角钱一块,爸爸给小瑜n元钱,请你告诉小瑜最多能买几块糖,还剩几角钱? 输入:输入爸爸给小瑜的钱n元,n为整数。输出:小瑜最多能买回的糖块数以及剩下的钱(单位为:角),用空格分隔。样例输入2 样例输出6 2代码:intmain()intn,a,b;scanf(%d,&n);a=10*n/3;b=10*n%3;printf(%d%d,a,b);return0; 温度转换题目描述:输入一个华氏温度,输出摄氏温度,其转换公式为:C=5(F-32)/9 输入:输入数据只有一个实数,即华氏温度。输出:输出数据只有一个,即摄氏温度,保留2位小数。样例输入:32.0样例输出:0.00代码:intmain()floatf,c;scanf(%f,&f);c=5*(f-32)/9;printf(%.2f,c);return0; 三角形面积题目描述:已知三角形的边长a、b和c,求其面积。 输入:输入三边a、b、c 输出:输出面积,保留3位小数。样例输入:1 2 2.5样例输出:0.950代码:intmain()floatf,c;scanf(%f,&f);c=5*(f-32)/9;printf(%.2f,c);return0; 一元二次方程题目描述:解一元二次方程ax2+bx+c=0的解。 输入:a,b,c的值。输出:两个根X1和X2,其中X1=X2。 结果保留两位小数。样例输入:1 5 -2样例输出:0.37 -5.37代码:#includeintmain()floata,b,c,disc,p,q,x1,x2;scanf(%f%f%f,&a,&b,&c);disc=b*b-4*a*c;p=-b/2*a;q=sqrt(disc)/2*a;x1=p+q;x2=p-q;printf(%.2f%.2f,x1,x2);return0; 圆柱体计算 题目描述:已知圆柱体的底面半径r和高h,计算圆柱体底面周长和面积、圆柱体侧面积以及圆柱体体积。 输入:输入数据有一行,包括2个正实数r和h,以空格分隔。输出:输出数据一行,包括圆柱体底面周长和面积、圆柱体侧面积以及圆柱体体积,以空格分开,所有数据均保留2位小数。样例输入:1 2样例输出:6.28 3.14 12.57 6.28提示:圆周率定义为3.1415926。代码:#definepie3.1415926intmain()floath,r,l,s1,s2,v;scanf(%f%f,&r,&h);l=2.0*pie*r;s1=pie*r*r;s2=l*h;v=s1*h;printf(%.2f%.2f%.2f%.2f,l,s1,s2,v);return0; 找中间数题目描述:输入三个整数,找出其中的中间数。 输入:输入3个整数。输出:输出中间数样例输入:1 2 3样例输出:2代码:intmain()inta,b,c,m;scanf(%d%d%d,&a,&b,&c);if(ab)if(bc)m=b;elseif(ac)m=c;elsem=a;elseif(ac)m=a;elseif(bc)m=c;elsem=b;printf(%d,m);return0; 某年某月的天数题目描述:输入年和月,判断该月有几天? 输入:输入年和月,格式为年月输出:输出该月的天数。样例输入:20091样例输出:31代码:#includeintmain()inty,m,length;scanf(%d%d,&y,&m);if(m=1|m=3|m=5|m=7|m=8|m=10|m=12)length=31;elseif(m=4|m=6|m=9|m=11)length=30;elseif(m=2)if(y%4=0&y%100!=0)|(y%400=0)length=29;elselength=28;printf(%d,length);return0; 整数位题目描述:输入一个不多于5位的正整数,要求:(1)求出它是几位数;(2)分别输出每一位数字;(3)按逆序输出各位数字。输入:输入一个不多于5位的正整数。输出:输出数据有3行,第一行为正整数位数,第二行为各位数字,第三行为逆序的各位数字。样例输入:123样例输出:31 2 3 3 2 1代码:#includeintmain()longintnum;intplace,indiv,ten,hundred,thousand,ten_thousand;scanf(%ld,&num);if(num9999)place=5;elseif(num999)place=4;elseif(num99)place=3;elseif(num9)place=2;elseplace=1;printf(%dn,place);ten_thousand=num/10000;thousand=(num-ten_thousand*10000)/1000;hundred=(num-thousand*1000-ten_thousand*10000)/100;ten=(num-hundred*100-thousand*1000-ten_thousand*10000)/10;indiv=(num-ten*10-hundred*100-thousand*1000-ten_thousand*10000);switch(place)case5:printf(%d%d%d%d%dn,ten_thousand,thousand,hundred,ten,indiv);printf(%d%d%d%d%dn,indiv,ten,hundred,thousand,ten_thousand);break;case4:printf(%d%d%d%dn,thousand,hundred,ten,indiv);printf(%d%d%d%dn,indiv,ten,hundred,thousand);break;case3:printf(%d%d%dn,hundred,ten,indiv);printf(%d%d%dn,indiv,ten,hundred);break;case2:printf(%d%dn,ten,indiv);printf(%d%dn,indiv,ten);break;case1:printf(%dn,indiv);printf(%dn,indiv);break;return0; 两个数比较题目描述:求2个数中较大者。 输入:第一行为测试的数据组数N,接下来的N行分别是两个待比较的整数输出:输出N行,每一行的值为每组数中较大的整数样例输入:2 1 2 15 10样例输出:215代码:#includeint main()int n,a,b,max;scanf(%d,&n);doscanf(%d %d,&a,&b);max=(ab)?a:b;printf(%dn,max);while(-n);return 0;保留字母 题目描述:编一个程序,输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。 输入:一个字符串,长度不超过80个字符。输出:删掉非英文字母后的字符串。样例输入:abc123+xyz.5样例输出:abcxyz代码:#includeintmain()chara80;inti;scanf(%s,a);for(i=0;i=A)&(ai=a)&(ai=z)printf(%c,ai);return0;矩阵转置题目描述:输入N*N的矩阵,输出它的转置矩阵。 输入:第一行为整数N(1N100)。 接着是一个N*N的矩阵。输出:转置矩阵。样例输入: 21 21 2样例输出: 1 12 2 代码:#includeintmain()inta100100;intb100100,i,j,n;scanf(%d,&n);for(i=0;in;i+)for(j=0;jn;j+)scanf(%d,&aij);bji=aij;for(i=0;in;i+)for(j=0;j200之间的素数的个数,以及所有的素数。 输入:无输出:100-200之间的素数的个数,以及所有的素数。样例输入:无样例输出:21101 103 . 197 199代码:#includeintmain()intm,k,i,j,a100,n=0;j=0;for(m=101;m=200;m=m+2)k=sqrt(m);for(i=2;i=k+1)aj=m;n=n+1;j+;printf(%dn,n);for(j=0;jn;j+)printf(%4d,aj);return0; 矩阵下三角元素之和 题目描述:输入一个正整数n(1 =n = 10),再输入n*n的矩阵,要求求该矩阵的下三角元素之和。 输入:输入包括n+1行 第一行为整数:n 接下来的n行为矩阵数据输出:矩阵的下三角元素之和样例输入:51 2 3 4 52 3 4 5 63 4 5 6 74 5 6 7 85 6 7 8 9样例输出:75代码:#includeintmain()inta1010;inti,j,n,s=0;scanf(%d,&n);for(i=0;in;i+)for(j=0;jn;j+)scanf(%d,&aij);for(i=0;in;i+)for(j=0;j=i;j+)s=s+aij;printf(%d,s);return0;单词统计题目描述:从键盘输入一行字符,统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。 输入:输入只有一行句子。仅有空格和英文字母构成。输出:单词的个数。样例输入:stable marriage problem Consists of Matching members样例输出:7代码:#includeintmain()charstring81;inti,num=0,word=0;charc;gets(string);for(i=0;(c=stringi)!=0;i+)if(c=)word=0;elseif(word=0)word=1;num+;printf(%d,num);return0;水仙花数题目描述:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。现在要求输出所有在m和n范围内的水仙花数。 输入:输入数据有多组,每组占一行,包括两个整数m和n(100=m=n=999)。输出:对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;如果给定的范围内不存在水仙花数,则输出no;每个测试实例的输出占一行。样例输入: 100 120300 380样例输出: no370 371代码:#includeintmain()intm,n,a,b,c,d,t;while(scanf(%d%d,&m,&n)!=EOF)t=0;for(d=m;d=n;d+)a=d/100;b=d/10%10;c=d%10;if(d=a*a*a+b*b*b+c*c*c)printf(%d,d);t=1;if(t=1)printf(n);if(t=0)printf(non);return0;最小公倍数和最大公约数题目描述:从键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出。 输入:输入包括一行。 两个以空格分开的正整数。输出:两个整数的最小公倍数和最大公约数。样例输入:6 8样例输出:24 2代码:#includeintmain()inthcf(intu,intv);intlcd(intu,intv,inth);intu,v,h,l;scanf(%d%d,&u,&v);h=hcf(u,v);l=lcd(u,v,h);printf(%d%d,l,h);return0;inthcf(intu,intv)intt,r;if(vu)t=u;u=v;v=t;while(r=u%v)!=0)u=v;v=r;return(v);intlcd(intu,intv,inth)return(u*v/h); 求一个3*3矩阵对角线元素之和题目描述:给定一个3*3的矩阵,请你求出对角线元素之和。 输入:按照行优先顺序输入一个3*3矩阵,每个矩阵元素均为整数。输出:对角线元素之和。样例输入:1 2 31 2 31 2 3样例输出:6代码:#includeintmain()intsum(intb33);inta33,s;inti,j;for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);s=sum(a);printf(%d,s);return0;intsum(intb33)inti,c=0;for(i=0;i3;i+)c=c+bii;return(c); 计算表达式题目描述:计算下列表达式值:输入:输入x和n的值,其中x为非负实数,n为正整数。输出:输出f(x,n),保留2位小数。样例输入:3 2样例输出:2.00代码:#include#includefloats(floatx,intn)floatf;if(n=1)f=sqrt(1+x);elsef=sqrt(n+s(x,n-1);return(f);intmain()floats(floatx,intn);floatx,f;intn;scanf(%f%d,&x,&n);f=s(x,n);printf(%.2f,f);return0; 多项式求和题目描述:多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + .现在请你求出该多项式的前n项的和。 输入:输入数据由2行组成,首先是一个正整数m(m100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n1000),求该多项式的前n项的和。输出:对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。样例输入:21 2样例输出:1.000.50代码:intmain()inti,n,f,b=1;floatm,s,t;inta100;scanf(%d,&n);for(i=0;i0)s=s+t;m=m+1;b=-b;t=b/m;f-;printf(%.2fn,s);return0; 母牛的故事题目描述:有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛? 输入:输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0n55),n的含义如题目中描述。n=0表示输入数据的结束,不做处理。输出:对于每个测试实例,输出在第n年的时候母牛的数量。每个输出占一行。样例输入:2450样例输出:246代码:#includeintmain()longintn,i,a55;for(i=1;i55;i+)if(i=1)ai=i;elseif(4i&i9,18,27,36,45,54,63,72,81,90然后将所有字符的顺序颠倒。输入:输入一串文本,最大字符个数不超过100。输出:输出编码后的结果。样例输入:china样例输出:ANIHC代码:#includeintmain()charc101;inti,j;for(i=0;(ci=getchar()!=n;i+)if(ci=a&ci=A&ci=0&ci=0;j-)printf(%c,cj);return0;三个数排序题目描述:输入三个整数x,y,z,请把这三个数由小到大输出。 输入:输入数据包含3个整数x,y,z,分别用逗号隔开。输出:输出由小到大排序后的结果,用空格隔开。样例输入:2 1 3样例输出:1 2 3代码:#includeintmain()voidswap(int*p1,int*p2);intx,y,z;int*p1,*p2,*p3;scanf(%d,%d,%d,&x,&y,&z);p1=&x;p2=&y;p3=&z;if(xy)swap(p1,p2);if(xz)swap(p1,p3);if(yz)swap(p2,p3);printf(%d%d%d,x,y,z);return0;voidswap(int*p1,int*p2)intp;p=*p1;*p1=*p2;*p2=p; 字符串排序 题目描述:输入3个字符串,按字典序从小到大进行排序。 输入:输入数据 有一行,分别为3个字符串,用空格分隔。输出:输出排序后的三个字符串,用空格分隔。样例输入:abcd cdef bcde样例输出:abcd bcde cdef代码:intmain()voidswap(char*p1,char*p2);charn120,n220,n320;scanf(%s%s%s,n1,n2,n3);if(strcmp(n1,n2)0)swap(n1,n2);if(strcmp(n1,n3)0)swap(n1,n3);if(strcmp(n2,n3)0)swap(n2,n3);printf(%s%s%s,n1,n2,n3);return0;voidswap(char*p1,char*p2)charp20;strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); 约瑟夫问题题目描述: n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出最后一个人的编号。输入:输入n和m值。1n,m150。输出:输出胜利者的编号。样例输入:5 3样例输出:4提示:第一轮:3被杀;第二轮:1被杀;第三轮:5被杀;第四轮:2被杀代码:#includeintmain()inti,k,m,n,t,num150,*p;scanf(%d%d,&n,&t);p=num;for(i=0;in;i+)*(p+i)=i+1;i=0;k=0;m=0;while(mn-1)if(*(p+i)!=0)k+;if(k=t)*(p+i)=0;k=0;m+;i+;if(i=n)i=0;while(*p=0)p+;printf(%d,*p);return0; 简单排序题目描述:给定N个整数,请你对这些整数进行升序排列并输出。输入:输入数据有多组,第一行是测试数据的组数T,接下的T行中,每行表示一组测试数据,每组测试数据的第一个数字为N(1=N=1000),接下来是N个整数。本题中,所有的整数都在32位之内。输出:输出每组测试数据排序后的结果。每组测试数据占一行。样例输入:23 2 1 34 1 3 4 2样例输出:1 2 31 2 3 4代码:#includeintmain()intn,i,j,k,m,t;longa1000;scanf(%d,&n);while(n-)scanf(%d,&m);for(i=0;im;i+)scanf

温馨提示

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

评论

0/150

提交评论