C语言习题汇编 适合初学者.docx_第1页
C语言习题汇编 适合初学者.docx_第2页
C语言习题汇编 适合初学者.docx_第3页
C语言习题汇编 适合初学者.docx_第4页
C语言习题汇编 适合初学者.docx_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

程序设计C语言习题汇编编写一个程序能使计算机将所输入的三个大写英文字母变成小写字母。#include void main( ) char ch1,ch2,ch3; scanf(“%c%c%c”,&ch1,&ch2,&ch3); if (ch1=A & ch1=A & ch2=A & ch3=Z) ch3=ch3+32; printf(%cn,ch3 ); 编写一个程序实现如下功能:从键盘输入两个整数a、b,计算a2+b2的值。#include stdio.hvoid main()int a,b;printf(请输入两个整数n);scanf(%d%d,&a,&b);printf(两个整数平方和为:%ldn,a*a+b*b);编写一个程序实现如下功能:将整数n(0n9)转化为相应的ASCII字符,例如,整数3转换后变成字符3 37#include stdio.hvoid main() int n; printf(输入整数:n); scanf(%d,&n);printf(“n=%d,对应字符为:%cn,n,n);下列程序的功能是:输出字符串“China”。#include main()char ch1, ch2; int i; ch1=C; ch2=h; i=i; putchar(ch1); putchar(ch2); putchar(i); putchar(n); putchar(141); putchar(n); #include stdio.hmain()int n;printf(输入一位整数n);scanf(%d,&n);while (1)if(n=0&n=9)break;else printf(输入数据有误,请重新输入一位整数n); scanf(%d,&n);printf(n=%d,ASCII码为:%d 对应字符为:%cn,n,n+48,n+48);下列程序的功能是:用puts()函数输出字符串”This is a map.”#include main() char str1 =This is a map.; /* 字符数组str1的容量由实际字符确定 */ char str215=This is a map.; /*该字符串总长度14字节,增加1字节0 */ puts(str1); /* 函数调用语句,调用puts(),将str1字符串内容输出 */ puts(str2); /* 输出字符串str2的内容,都是自动换行 */ putchar(n); putchar(str10);putchar(n); putchar(str11);putchar(n);putchar(str12);putchar(n); putchar(str13);putchar(n); putchar(str14);putchar(n); putchar(str15);putchar(n); putchar(str16);putchar(n); putchar(str17);putchar(n); putchar(str18);putchar(n); putchar(str19);putchar(n); putchar(str110);putchar(n); putchar(str111);putchar(n); putchar(str112);putchar(n); putchar(str213); /* 输出字符串str1的末字符. */ putchar(n); /* 用putchar()函数输出仅含一个转移字符的字符n */ 下列程序的功能是:输入一个数,判断它是否既是5的倍数又是7的倍数,然后输出判断结果。#includemain() int number; printf(please input a number!n); scanf(%d,&number); /* number存放被测试数据 */ if(number%5=0&number%7=0 ) /* number是5或7的倍数 */ printf(yes,It is the multiple of5 and7.n); else /* number不是5或7的倍数 */ printf(no,It isnt the multiple of 5 and7. n);下列程序的功能为:输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、该字母、该字母的后序字母,例如:输入g,则输出FGH;输入a,则输出ZAB;输入M,则输出LMN;输入Z,则输出YZA。#include main() char ch,c1,c2; printf(Enter a character:); ch=getchar(); if(ch=a)&(ch=z) /*如果是小写字母,则转换成大写字母*/ ch-=32; c1=ch-1; c2=ch+1; if(ch=A) c1=ch+25; else if(ch=Z) c2=ch-25; putchar(c1); putchar(ch); putchar(c2); putchar(n);下列程序的功能为:判断从键盘上输入的一个字符,并按下列要求输出。若该字符是数字 输出字符串0-9若该字符是大写字母 输出字符串A-Z若该字符是小写字母 输出字符串a-z若该字符是其他字符 输出字符串!,#include main() char c; scanf(%c,&c); if(0=c&c=9) printf(0-9n); else if(A=c&c=Z) printf(A-Zn); else if(a=c&cb) if (ca) max=c; /* cba */else /* bc */if (ba) max=b; /* bca */printf(3个数中最大者为:%dn,max);下列程序的功能为:判断用户所输入的年份是否是闰年.#includemain() int y,f;scanf(%d,&y );if ( y%400=0 ) f=1;else if (y%4=0&y%100!=0) f=1;else f=0;if ( f ) printf(%d is,y );else printf(%d is not,y );printf( a leap yearn );下列程序的功能是:对输入两个整数,按从大到小顺序输出。#include void main() int x,y,z;scanf(%d%d,&x,&y);if (x=10)y=3*x-11;else if(x=1)y=2*x-1;else y=x;printf(y=%fn,y);getchar();输入一个不多于3位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆顺序打印出各位数字,例如原来为321,应输出123。#include stdio.hmain()int x;printf(输入一个整数(范围:0-999n);scanf(%d,&x);if (x999) printf(数据输入错,无法处理,再见!n);else if (!(x/10) printf(该整数为一位数,%dn,x);else if(!(x/100) printf(该整数为二位数,%d,十位上的数%d 个位上的数%d 逆序%dn,x,x/10,x%10,x%10*10+x/10);else printf(该整数为三位数,%d,百位上的数%d 十位上的数%d 个位上的数%d 逆序%dn,x,x/100,x/10%10,x%10,x%10*100+x/10%10*10+x/100);编写程序,输入一个三角形的3条边,若能构成一个直角三角形,则输出该三角形面积,反之输出相应提示信息。#include stdio.hmain() float t1,t,a,b,c,s=0;printf(请输入三角形的三条边!n);scanf(%f%f%f,&a,&b,&c); t=(t=ab?a:b)c?t:c;if(t=a)t1=a;a=c;c=t1;if(t=b)t1=b;b=c;c=t1;if(c*c=a*a+b*b) printf(三角形面积为:%fn,1.0/2*a*b);else printf(不能构成三角形n);下列程序的功能为:实现加、减、乘、除四则运算,请填写适当的符号或语句,使程序实现其功能。#include main() int a,b,d; char ch; printf(Please input a expression:); scanf(%d%c%d, &a,&ch,&b ); switch(ch) case +:d=a+b; printf(%d+%d=%dn,a,b,d); break; case -:d=a-b; printf(%d-%d=%dn,a,b,d); break; case *:d=a*b; printf(%d*%d=%dn,a,b,d); break; case /: if( b=0 ) printf(Divisor is zeron); else printf(%d/%d=%fn,a,b,( float )a/b); /*强制类型转换*/ break; default: printf(Input Operator error!n); 下列程序的功能是:找出5个数的最大、最小值。#include main() int a,b,c,d,e,max,min; scanf(%d%d%d%d%d,&a,&b,&c,&d,&e); max=ab?a:b,max=maxc?max:c,max=maxd?max:d,max=maxe?max:e; min=ab?a:b,min=minc?min:c,min=mind?min:d,min=miny?x:y;return max;float minf(float x,float y)float min;min=xy?x:y;return min;main()float a,b,c,d,e,t;printf(input datan);scanf(%f%f%f%f%f,&a,&b,&c,&d,&e); if(maxf(a,b)=b) t=b;b=a;a=t;if(maxf(a,c)=c) t=c;c=a;a=t;if(maxf(a,d)=d) t=d;d=a;a=t;if(maxf(a,e)=e) t=e;e=a;a=t;if(minf(b,e)=b) t=b;b=e;e=t;if(minf(e,c)=c) t=c;c=e;e=t;if(minf(e,d)=d) t=d;d=e;e=t;printf(a=%f,b=%f,c=%f,d=%f,e=%fn,a,b,c,d,e);printf(ave=%.1fn,(b+c+d)/3);一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。#include stdio.hmain()long x,j=1;for(x=10000;x=99999;x+) if(x%10=x/10000&x/1000%10=x/10%10)printf(%6d,x);if(!(j%5) printf(n);j+;下列程序的功能是:显示学生成绩与等级#include stdio.hmain() int x; printf(please input x(0=x100|x=90) printf(x=%d is grade A!n,x); else if (x=80) printf(x=%d is grade B!n,x); else if(x=60) printf(x=%d is grade C!n,x); else printf(x=%d is grade D! n,x); 程序的功能为:求1100之和(和值为5050)并输出。#include main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(The sum from 1 to 100 is %dn,sum);程序的功能为:倒序打印26个英文字母。#include main() char x; x=z; while(x=a) printf(%3c,x); x-; printf(n);问题 根据4名专家对4件产品质量评估,找出质量最好的产品和评估最正确的专家。4名专家的评语如下:A说:2号产品质量最好。B说:4号产品是最好的。C说:3号产品质量不是最好的。D说:B说错了。分析因为只有一件产品质量最好,只有一位专家的评语最正确,用每一件产品为最佳逐一地去测试4位专家的话,如果不满足一位专家的评语最正确的条件,就否定该产品为最佳,继续测试另一件产品,只有当每一件产品为最佳,且测试4位专家的的评语时,只有一位专家的评语最正确,这就是问题的解。#include stdio.hmain()int k,man,sum=0,g=0; /*man用来记录说对的专家*/ int best;for(k=1;k=4;k+) /*有4中可能情况,循环4次*/ /*循环控制变量k同时也代表4种可能情况*/sum=0;if (k=2) sum=sum+1; man=1; /*测试专家A的话是否为真*/if (k=4) sum=sum+1;man=2; /*测试专家B的话是否为真*/if (k!=3) sum=sum+1;man=3; /*测试专家C的话是否为真*/if (k!=4) sum=sum+1;man=4; /*测试专家D的话是否为真*/ if (sum=1) /*如果4句话有1句为真,输出最好产品*/printf(The best product is %d.n,k);printf(%c is right.n,64+man); /*输出专家*/g=1; /*设置有解标志*/break; /*退出测试*/if (g!=1) /*如果无解,输出没有找到答案*/printf(Cant fount the answer!n);下列程序的功能为:用辗转相除法求两个正整数的最大公约数。提示:“辗转相除法” 求两个正整数的最大公约数的算法如下:将两数中大的那个数放在m中,小的放在n中。求出m被n除后的余数r。若余数为0则执行步骤(7);否则执行步骤(4)。把除数作为新的被除数;把余数作为新的除数。求出新的余数r。重复步骤(3)到(5)。输出n,n即为最大公约数。#include main () int r, m, n,t; scanf (%d%d,&m,&n); if (mn) t=m;m=n;n=t; r = m%n; while (r) m=n;n=r;r=m%n; printf (%dn,n);# include int gcd(int, int);main( ) int a, b;scanf(“%d, %d”, &a, &b);printf(“a=%d, b=%d, gcd=%dn”, a, b, gcd(a,b); int gcd(int x, int y) int r; r=x%y; if(r=0) return y; return gcd(y, r);下列程序的功能为:计算1020个西瓜几天后能卖完(第一天卖了一半多两个,以后每天卖剩的一半多两个);#include main() int day,x1,x2; day=0; x1=1020; while(x1) x2=x1/2-2; x1=x2;day+; printf(day=%dn,day); 编写程序,编写一个程序实现如下功能:用下列近似公式计算e值,误差应小于10-5#include main() double e, a; /* a为通项,e为和 */ int i=1; e = 1.0; a = 1.0; do a /= i; e+= a; i = i + 1; while ( a=1e-6 ); /*(1e-6 ) 表示10-6 */ printf( e=%fn, e );编写一个程序实现如下功能:验证下列结论:任何一个自然数n的立方都等于n个连续奇数之和。例如: 13 =1 ; 23 =3+5 ; 33 =7+9+11 。 要求:程序对每个输入的自然数计算并输出相应的连续奇数,直到输入的自然数为 0 时止。#include stdio.hmain() long n,s;int i,j;scanf(%ld,&n);for(i=1;i+) for(s=0,j=i;ji+n;j+) s+=2*j-1; if(n*n*n=s) printf(%ld*%ld*%ld=%ld=,n,n,n,n*n*n); for(j=i;ji+n;j+) printf(%d%c,2*j-1,j=i+n-1?n:+); break; 下列程序的功能为:计算1000!的末尾有多少个零。#include stdio.hint main() int m, i, k; for(k=0, i=5; i=1000; i+=5) m=i; while(m%5=0) k+; m=m/5; printf(k=%dn, k);下列程序的功能为:接收键盘上的输入,直到按键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格。#include void main ( ) char cx;while (cx=getchar() !=n) if (cx!= ) putchar(cx) ; if (cx= ) if ( cx=getchar()= ) putchar( cx ); 编写一个程序实现如下功能:计算1100之间所有含8的数之和。答案:#include main()int i, sum=0;for(i=1;i=100;i+)if(i%10=8|i/10%10=8) sum=sum+i; printf(sum=%dn,sum);将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合?#include stdio.hmain()int x, y, z,s=0;for (x=1;x=1; y-) z=(100-5*x-y)/2;if(z&x*5+y+z*2=100) s+; printf(s=%dn,s);#include stdio.h void main()int x,y,z,s=0; for(x=0;x100;x+) for(y=0;y100;y+) for(z=0;z100;z+) if(x+y+z=100)&(x*50+y*10+z*5=1000) printf(x=%d,y=%d,z=%dn, x,y,z); s+; printf(n s=%dn,s);下列程序的功能为: (1)输入若干个学生成绩,若输入数据大于100或小于0(除 -999外),则不作记录,重新输入;当输入 999, 则输入结束。(2) 统计所有输入成绩的最大值、最小值、成绩个数、平均值,并输出之。请纠正程序中存在错误(程序中有8处错误),使程序实现其功能。#include #include /* 否则exit无法执行*/void main() int mark, n = 0, sum = 0; int max = 0 , min = 100; printf(Input score(0-100),-999结束输入:n);for( ; ; ) scanf(%d, &mark); if (mark=-999) break; else if (mark 100 | mark100, Reinput!n); exit(0); n+;sum += mark; if ( markmax ) max = mark; else if(markmin) min= mark; sum /= n; printf(max=%dnmin=%dngeshu=%dnaverage=%dn, max,min,n,sum); 下列程序的功能为:查找100至999之间所有符合以下条件的数:是另一数的平方;至少有两位数是相同的。如数144,它是12的平方,其中有两位4。#include stdio.hmain() int n,m,a,b,c; for ( n = 10; n = 31; n+ ) m = n*n; a = m%10; b = m / 10 % 10; c = m / 100 % 10; if ( a=b | b=c | a=c ) printf( %d , m ); 程序的功能为:输出如下的图形,要求顶端的*定位在第21字符位置。 * * * *#include void main() int i,j; for (i=0;i4;i+) for (j=0;j=20-i;j+) printf( ); for (j=0;j2*i+1;j+) printf(*);printf(n); 程序的功能为:打印九九乘法表。#include main() int i,j; for (i=1;i10;i+) for (j=1;j=i;j+) printf(%d,i*j); printf( ); if (i*j10)printf( ); printf(n); 下列程序的功能为:由1、2、3、4个数字,能组成多少个互不相同且无重复三位数?并输出这些数。#include void main() int i,j,k,count=0; for(i=1;i=4;i+) for(j=1;j=4;j+) if(i!=j) for(k=1;k=4;k+) if(j!=k&i!=k) printf(%dt,i*100+j*10+k); count+; printf(n%dn,count);下列程序的功能为:用“奇数”构成的三角形,行数n从键盘输入。# include main() int i,j,n,k; scanf(%d,&n); for(k=-1,i=1;i=n;i+) for(j=1;j=4;j+) printf(%4c, ); for(j=1;j=i;j+) printf(%-4d,k=k+2); printf(n); 编写一个程序实现如下功能:求10000以内能被13整除,且其中至少包含有2个7的数。#include stdio.hmain()int i,j,k,k1=0;for(i=13;i=2) k1=1;break;if(k1) printf(%5d,i);printf(n);求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),其中a和项数由键盘输入。#include stdio.hmain()int a,n,i,j,s=0,t;printf(a=?n=?n);scanf(%d%d,&a,&n);t=a; for(i=1;i=n;i+) s=s+t; t=t*10+a;printf(s=%dn,s);下列程序的功能是:求1-1/2+1/3-1/4+1/99-1/100之值。#include main() int i; float s; s=0; for (i=1;i=100;i+) if (!(i%2) /*偶数时累加(-1)/ i */ s=s-1.0/i; else s=s+1.0/i; /*奇数时累加1/i */ printf(s=%f ,s); 下列程序的功能是:用天平秤量100克的药,天平秤所配置的砝码只有1克、2克和5克3种,找出该天平秤量100克的药的方法。# include main() int i,j,k,sum=0; /*i,j,k分别表示所加的1、2、5克砝码的个数*/ for (i=1;i30;i+) /*砝码总数为30个,所以加1克砝码最多30种可能*/ for(j=1;j30-i;j+) /*加2克砝码的可能数为30减去加1克砝码的可能数*/ k=30-i-j; if (i+2*j+5*k=100) /* 采用else if结构 */ sum=sum+1; /*如果满足不定方程,累加每次组合*/printf(one result:%2d,%2d,%2dn ,i,j,k); printf(sum=%dn,sum); /*输出有几种不同的秤量方法*/ 以下程序的功能是:试在屏幕当前行的任意可能位置绘制如下等腰三角形。* * * * * * * * * * * * #include stdio.hmain ()int i,j,k;do printf(please input vex(773)=n); scanf (%d,&k); while (k73); /*容错输入顶点所在当前行的列数*/ for(j=1;j=k-1;j+) printf( ); printf(*n); /*显示顶点星号*/for(i=1;i=5;i+) /*中间5层输出*/ for(j=1;j=k-i-1;j+) printf( ); printf(*); /*显示中间层每层起点星号*/ for(j=1;j=i+i-1;j+) printf( ); printf(*n); /*显示中间层每层终点星号*/ for(j=1;j=k-7;j+) printf( ); printf(*); /*显示底边起始星号*/for(i=1;i=12;i+)printf(*); /*显示底边剩余星号*/printf(n); 中国古代数学家张丘建在他的算经中提出了著名的 “ 百钱百鸡问题 ” :鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何 ? 编写一程序解决此问题。参考解答:#include Stdio.hmain() int cock,hen,chick,cond,num; for(cock=1;cock=20;cock+) for(hen=1;hen33;hen+) chick=100-cock-hen; cond=chick%3; num=5*cock+3*hen+chick/3; if(cond=0&num=100) printf(cock=%d zhithen=%d zhitchick=%d zhittotal=%d zhin, cock,hen,chick,cock+hen+chick); printf(cock*5=%d yuanthen*3=%d yuantchick/3=%d yuan total=%d yuann, cock*5,hen*3,chick/3,cock*5+hen*3+chick/3); printf(nn); 打印出所有的“梅花数”,所谓“梅花数”是指一个4位数,其各位数字4次方之和等于该数本身。参考解答:#include stdio.hmain()int a,b,c,d,i,j=0;for(i=1000;i=9999;i+)a=i%10;b=i/10%10;c=i/100%10;d=i/1000; if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d=i) printf(%5d,i);j+;if(!(j%5) printf(n);printf(n);把100200之间能被7整除的数,以十个数为一行的形式输出,最后输出一共有多少个这样的数。#include stdio.hmain() int i,n=0; for(i=100;i=200;i+) if (i%7!=0) continue; printf(%6d,i); n+; if (n%10=0) printf(n); printf( n n=%dn,n); #include stdio.hmain() int i,n=0; for(i=100;i=200;i+) if (i%7=0) printf(%6d,i); n+; if (n%10=0) printf(n); printf( n n=%dn,n); 输出1到1000中能同时被3和5整除的前10个数。#include void main() int k,n=0;for(k=1;k=1000;k+) if(k%3=0 & k%5=0) printf(%d ,k); n+ ; if (n=10) break ; 计算半径为1到15的圆的面积,仅输出超过50的圆面积。 #include vo

温馨提示

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

评论

0/150

提交评论