1、-C 语言编程题精选C 语言学习 2010-11-30 15:48:25 阅读 47 评论 0 字号:大中小 订阅 1. 有函数 F(x)=(x+1)2 和 G(x)=2x+1,输入 X 值计算 F(G(x)的值。2. 任意输入三个字符,要求首先按逆序输出,然后同行原序输出。3. 在屏幕上输出如下图案(考虑能否将输出的行数由输入的值来控制):*4. 在屏幕上输出如下图案(考虑将输出的行数由输入的值来控制):*5. 编程输出如下格式图形(考虑将输出的行数由输入的值来控制):*6. 编程输出如下格式图形(考虑将输出的行数由输入的值来控制):*7. 编程输出如下格式图形(考虑将输出的行数由输入的值来
2、控制):*8. 编程输出如下格式图形(考虑将输出的行数由输入的值来控制):*9. 编程输出如下格式图形(考虑将输出的行数由输入的值来控制):*10. 编程输出如下格式图形(考虑将输出的行数由输入的值来控制):-*11. 编写打印如下图形的程序(考虑将输出的行数由输入的值来控制):* * * * * * * * * * * * * * * * *12. 编制程序打印如下图形(考虑将输出的行数由输入的值来控制):ABBBCCCCCDDDDDDDEEEEEEEEEFFFFFFFFFFFGGGGGGGGGGGGG13. 编程打印图形(考虑将输出的行数由输入的值来控制):11 2 11 2 3 2 11
3、 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 114. 编程打印图形(考虑将输出的行数由输入的值来控制):11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 115. 编程打印图形(考虑将输出的行数由输入的值来控制):1 2 3 4 5 6 5 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 1116. 编程打印图形(考虑将输出的行数由输入的值来控制):11 1-1 2 11 3 3 11 4 6 4 11 5 1
4、0 10 1 117. 编程打印图形(考虑将输出的行数由输入的值来控制):11 11 2 11 3 3 11 4 6 4 11 5 10 10 1 118. 输入一个大写字母打印菱形。菱形中间一行由该字母组成,相邻的各行由前面的字母依次组成,直到字母 A 出现在第一行和最末行为止。例如输入字母 D,输出图形如下:ABBBCCCCCDDDDDDDCCCCCBBBA19. 打印如下图形。输出行数由键盘输入。* * * * *20. 输出矩阵 A 及其转置矩阵:1 2 3 4A = 2 3 4 13 4 1 221. 依次输入十个整数,找出其平方最大的一个数并打印出来。22. 输入 n,求下列级数前
5、 n 项的和。112233423. 编写程序用于判断一个数是否是素数。24. 编程序输出 1-1000 内的所有素数。所谓素数是指除了能被 1 和它本身之外不能被其它数整除的数。25. 输入个数,先按原来顺序输出,再将数组中元素逆置后输出,即将第个数跟第个互换、第个数跟第个互换。26. 从键盘上输入 10 个整数,并放入一个一维数组中,然后将其前 5 个元素与后 5 个元素对换,即:第 1 个元素与第 6 个元素互换,第 2 个元素与第 7 个元素互换第 5 个元素与第 10 个元素互换。分别输出数组原来各元素的值和对换后各元素的值。27. 从键盘输入一组数,先按原来顺序输出,再将其中最大的一
6、个找出来与第一个元素交换(即将最大的一个放到最前面)后将所有数重新输出。-28. 输入一组数,先按原来顺序输出,再找其中最大及最小元素,分别与第一个及最后一个交换后再将这一组数重新输出一遍。注意从一组数中找出最大或者最小数的方法。29. 用冒泡或选择法将一组数按从大到小的降序排序后输出。30. 输入一行文字(英文),统计其中的单词个数。31. 编程计算 的近似值。求近似值公式如下:32. 用递归的方法求 n!。可以用以下数学关系表示:33. 编写程序,要求用随机函数产生 n 个数(n 由键盘输入的值决定) ,并用选择法排序,输出排序前后的结果,要求每行打印 10 个数。34. 求出 10 至
7、1000 之内能同时被 2、3、7 整除的数,并输出。35. 求出 1 到 100 之间的奇数之和及偶数之和,并将二者输出。36. 编一程序用以输出所有各位数码阶乘之和等于其自身的三位数。 如:145(145=1!+4!+5!)。37. 假设字符数组存放有三行字符,每行的长度最长为 80 个字符,编程:分别统计出其中大写字母、小写字母、数字字符、空格字符以及其它字符的个数。38. 编写程序,读一个在字母 C 和 X 之间的字符,打印出该字母在中间的相邻五个字母。如输入 F,则输出 DEFGH。39. 编程输入一个小写字母,以该字母为第一个字母按字母表逆序输出字母表中所有小写字母。 (例:输入
8、m ,则输出: mlkjihgfedcbazyxwvutsrqpon)40. 在 1500 中,找出能同时满足用 3 除余 2,用 5 除余 3,用 7 除余 2 的所有整数。41. 编程将 1.100 间能被 2、3、5 分别整除的数的和求出来并输出。注意,在判断时要按照 2、3、5 的先后次序来确定优先顺序,如 6 既能被 2 整除,又能被 3 整除,则只算到能被 2 整除的这种情况里。42. 编程将 1.100 间能被 2、3、5 整除的数的和求出来并输出。注意,在判断时如果一个数能同时被多个数整除,则要算到多种情况里去。如 6 既能被 2 整除,又能被 3 整除,则要同时算到能被 2
9、整除的和能被 3 整除这两种情况里。43. 编写程序输入三位数(100999) ,然后按数字逆序输出。 (例:输入 123,输出321) 。44. 编写程序打印所有的“水仙花数” 。 “水仙花数”指一个三位数,其各位数字立方和等于该数本身,例如 153 是一个“水仙花数” ,因为 153111333555。45. 将一个二维数组 a23=1,2,3,4,5,6转置,存到数组 b 中并输出 b。46. 编写程序求 1-1/3+1/5-1/7+1/9的值,直到最后一项的绝对值小于 106 为止。47. 输入 x 值,根据下式计算 ,直到最后一项的绝对值小于 10-6 时为止。48. 编程计算下面公
10、式:49. 编一子程序实现十进制数转换为其它进制数。主程序将十进制数 43 和 17 分别转换为二进制数和八进制数。50. 编一个程序计算一元二次方程的根。51. 编程输入一个整数,若为四位正整数则要求正确分离出其个、十、百、千位及中-间的两位数并分别输出,如输入的是 1234,则输出应该为 4、3、2、1、23;否则给出一个出错提示。52. 任意输入三个数,按从大到小的降序输出。53. 编程计算 123.+1000054. 编程计算 1-2+3-4+5-6+-1000055. 编程计算 2+4+6+100 的结果56. 编和计算 13599 的和57. 编程计算 149162510000 之
11、和58. 编程计算下式的值,其中的 n 在程序运行时由用户通过键盘输入:59. 根据数学方面的知识,圆周率的计算可按下式进行,试编程序计算机圆周率,并试着将 n 取不同的值(至少在 100 以上) ,看计算出的圆周率结果有何不同。60. 输入两个正整数 m 和 n,求其最大公约数和最小公倍数。 (利用辗转相除法)61. 一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 10 次落地时,共经过多少米?第 10 次反弹多高?62. 计算 0.0之间各数的正弦及余弦值,各值之间以 0.01 为间距。63. 利用 C 语言自带的随机函数(rand)产生一组随机数(不要超过
12、 10000) ,先将它们按原序输出,再找出最大一个数的位置(即下标)并输出。64. 利用 C 语言自带的随机函数(rand)产生一组随机数(不要超过 10000) ,先将它们按原序输出,再找出最大及最小两个数的位置(即下标)并输出。65. 按如下公式计算表达式的值(用递归实现):66. 编一程序,从键盘输入若干个数,降序排序后存入文件 jieguo.txt 中去,同时将结果在屏幕上显示。67. 百鸡问题:用 100 元买 100 只鸡,大公鸡 5 元 1 只,母鸡 3 元 1 只,小鸡 1 元 3只。问各能买多少只?68. 今年父亲 30 岁,儿子 6 岁,问多少年后父亲的年龄是儿子年龄的
13、2 倍?69. 一个四位数,当它逆向排列时得到的 4 位数是它自身的整数倍,请找出所有符合这一条件的四位数。70. 某处发生一起案件,侦察得知如下可靠线索:ABCD 四人都有作案可能AB 中至少一人参与作案BC 中至少一人参与作案CD 中至少一人参与作案AC 中至少一人未参与作案请分析谁最有可能是案犯。71. 找赛手:2 个羽毛球队比赛,各出 3 人,每个人只比一次。甲队为 A,B,C 三人,乙队为 X,Y,Z 三人。有人打听比赛名单,A 说他不和 X 比,C 说不和,比。请编程找出三队赛手的名单。72. 求以下不定方程组的所有正整数解(提示:可以考虑让计算机在一定范围内穷举):-73. 编程
14、从键盘输入 20 个数,要求输出其中最大的前 5 个。74. 编程序输出 11000 以内的完全平方数并统计个数。所谓完全平方数是指其算术平方根为一整数,如 4、9、100 等。75. 我国古代有一种回文诗,倒念顺念都有意思,例如“人过大佛寺” ,倒读起来便是“寺佛大过人” 。还有经典的对联“客上天然居,居然天上客” 。此种例子举不胜举。在自然数中也有类似情形,比如 1991 就是一个很特殊的四位数,从左向右读与从右向左读竟是完全一样的,这样的数称为“回文数” 。编程序输出 1 到 10000 内的所有回文数并统计个数。76. 某班综合考评,根据参加集体活动的次数加分,规则如下:参加 1 次及
15、以下:加 1 分;参加 2 至 3 次:加 2 分;参加 4 至 7 次:参加几次加几分;参加 8 至 10 次:加 8 分;参加 10 次以上:加 10 分。程序运行时输入某人参加活动的次数,则输出其应该加的分数;如果输入为负值,则给出相应提示。C 语言编程题精选(答案 1-45)C 语言学习 2010-11-30 15:49:22 阅读 27 评论 0 字号:大中小 订阅 1、#include #include void main()float x,y;printf(“Please input x:“);scanf(“%f“,y=2*x+1;y=(float)pow(y+1,2);prin
16、tf(“The result is:%fn“,y);2、#include void main()char a,b,c;printf(“Please input 3 characters:“);scanf(“%c%c%c“,printf(“%c%c%c“,c,b,a);printf(“%c%c%c“,a,b,c);printf(“n“);-3、#include void main()int n,r,c;printf(“请输入行数:“);scanf(“%d“,if(nvoid main()int n,r,c;printf(“请输入行数:“);scanf(“%d“,if(nvoid main()-i
17、nt n,r,c;printf(“请输入行数:“);scanf(“%d“,if(nvoid main()int n,r,c;printf(“请输入行数:“);scanf(“%d“,if(nvoid main()int n,r,c;printf(“请输入行数:“);scanf(“%d“,-if(nvoid main()int n,r,c;printf(“请输入行数(必须为单数):“);scanf(“%d“,if(nvoid main()int n,r,c;-printf(“请输入行数:“);scanf(“%d“,if(nvoid main()int n,r,c;printf(“请输入行数(必须为
18、单数):“);scanf(“%d“,if(nvoid main()int n,r,c;printf(“请输入行数:“);scanf(“%d“,if(nvoid main()int n,r,c;char ch=A;printf(“请输入行数:“);scanf(“%d“,if(n#define N 50void main()int n,r,c;printf(“请输入行数:“);scanf(“%d“,if(n#define N 50void main()int n,r,c;printf(“请输入行数:“);scanf(“%d“,if(n#define N 50void main()int n,r,c
19、;printf(“请输入行数:“);scanf(“%d“,if(n=1;r-)for(c=1;c#define N 50void main()int n,r,c,aN+1N+1;printf(“请输入行数:“);scanf(“%d“,if(n#define N 50void main()int n,r,c,aN+1N+1;printf(“请输入行数:“);scanf(“%d“,if(nvoid main()int n,r,c;char ch=A;printf(“请输入行数(必须为单数):“);-scanf(“%d“,if(nvoid main()int n,r,c;printf(“请输入行数:
20、“);scanf(“%d“,if(n#define N 4void main()int r,c,aN+1N+1;for(c=1;cvoid main()int i;double x,oldx,sx=0;printf(“n 请输入 10 个数:“);-for(i=1;isx)oldx=x;sx=x*x;printf(“平方最大的一个数是:%fn“,oldx);22、#include void main()int i,n,signal=1;double s=1;printf(“n 请输入项数:“);scanf(“%d“,if(nvoid main()int i,n,signal=1;printf(
21、“n 请输入一个正整数:“);scanf(“%d“,if(nvoid main()int i,j,signal,count=0;for(j=1;j#define N 20void main()int i,aN+1;printf(“请输入%d 个数:n“,N);for(i=1;i#define N 10void main()int i,aN+1;printf(“请输入%d 个数:n“,N);for(i=1;i#define N 6void main()int i,aN+1;printf(“请输入%d 个数:n“,N);for(i=1;i=2;i-)if(aiai-1)-a0=ai;ai=ai-1
22、;ai-1=a0;printf(“n 按新序输出(最前面的是最大的一个数):n“);for(i=1;i#define N 6void main()int i,t,aN+1;printf(“请输入%d 个数:n“,N);for(i=1;iat)t=i;a0=a1;a1=at;at=a0;printf(“n 按新序输出(最前面的是最大的一个数):n“);for(i=1;i#define N 6void main()int i,aN+1;printf(“请输入%d 个数:n“,N);for(i=1;i=2;i-)if(aiai-1)a0=ai;ai=ai-1;ai-1=a0;for(i=1;i#de
23、fine N 6void main()int i,j,aN+1;printf(“请输入%d 个数:n“,N);for(i=1;i=2;i-)/改成 for(i=N;i=j+1;i-)if(aiai-1)a0=ai;ai=ai-1;ai-1=a0;printf(“n 按新序输出:n“);for(i=1;i#define N 6void main()int i,j,t,aN+1;printf(“请输入%d 个数:n“,N);for(i=1;iat)t=i;a0=aj;aj=at;at=a0;printf(“n 按新序输出:n“);for(i=1;i#include #define N 80void
24、 main()int i,count=0,p=1;char sN+1;printf(“请输一行文字:n“);gets(s);printf(“n 按原序输出:n“);puts(s);for(i=0;i=a int i,n;printf(“请输入项数(不小于 100):“);scanf(“%d“,if(nlong jc(long x)if(x=0)|(x=1)return 1;elsereturn x*jc(x-1);void main()int n;printf(“请输入要计算阶乘的整数(不小于 0):“);scanf(“%d“,if(nat)t=i;a0=aj;aj=at;at=a0;prin
25、tf(“n“);printf(“n 按排好序的结果输出:n“);for(i=1;i-#include void main()int i,dx=0,xx=0,sz=0,kg=0,qt=0;char str80;printf(“请输入一行字符:n“);gets(str);for(i=0;i=a)printf(“请输入一个字母(C 到 X 之间):“);scanf(“%c“,if(chX)printf(“输入错误!n“);elsefor(cha=ch-2;chavoid main()-char ch,cha;printf(“请输入一个小写字母:“);scanf(“%c“,if(chz)printf(
26、“输入错误!n“);elsefor(cha=ch;cha=a;cha-)printf(“%c“,cha);for(cha=z;chach;cha-)printf(“%c“,cha);printf(“n“);40、#include void main()int i,count=0;for(i=1;ivoid main()int i,s2=0,s3=0,s5=0;for(i=1;ivoid main()int i,s2=0,s3=0,s5=0;for(i=1;ivoid main()int n,ge,shi,bai;printf(“请输入一个三位正整数:“);scanf(“%d“,if(n999)
27、printf(“输入数据有误!n“);elsege=n%10;shi=n/10%10;bai=n/100;printf(“此数的逆序输出结果为:%d%d%dn“,ge,shi,bai);44、#include void main()int n,ge,shi,bai;for(n=100;nvoid main()int a23=1,2,3,4,5,6,b32,r,c;for(r=0;r#define JD 0.000001void main()double s=0;int i=1,p=1;while(1.0/i=JD)s+=1.0/i*p;p=-p;i+=2;printf(“结果为:%fn“,s)
28、;47、#include #define JD 0.000001void main()-double s=0,x,fz=1,fm=1;int p=1,i=0;printf(“请输入 x 的值:“);scanf(“%lf“,while(fz/fm=JD)s=s+fz/fm*p;p=-p;fz=fz*x*x;i+=2;fm=fm*(i-1)*i;printf(“结果为:%fn“,s);48、#include #include void main()double x,y;printf(“请输入 x 的值:“);scanf(“%lf“,if(x=9)printf(“输入数据超出范围!n“);elseif(x=1)printf(“n 从低位向高位输出:n“);