c语言从txt读取回文诗,C语言编程题及参考答案.pdf

C 语言编程题精选 1.有函数 F(x)=(x+1) 2和 G(x)=2x+1,输入 X 值计算 F(G(x))的值。 2.任意输入三个字符,要求首先按逆序输出,然后同行原序输出。 3.在屏幕上输出如下图案(考虑能否将输出的行数由输入的值来控制) : ****** ****** ****** ****** 4.在屏幕上输出如下图案(考虑将输出的行数由输入的值来控制) : * ** *** **** ***** 5.编程输出如下格式图形(考虑将输出的行数由输入的值来控制) : * *** ***** ******* 6.编程输出如下格式图形(考虑将输出的行数由输入的值来控制) : **** *** ** * 7.编程输出如下格式图形(考虑将输出的行数由输入的值来控制) : ******* ***** *** * 8.编程输出如下格式图形(考虑将输出的行数由输入的值来控制) : * *** ***** ******* ***** *** * 9.编程输出如下格式图形(考虑将输出的行数由输入的值来控制) : * *** ***** ******* 10.编程输出如下格式图形(考虑将输出的行数由输入的值来控制) : * *** ***** ******* ***** *** * 11.编写打印如下图形的程序(考虑将输出的行数由输入的值来控制) : * * * * * * * * * * * * * * * * * * * * 12.编制程序打印如下图形(考虑将输出的行数由输入的值来控制) : A BBB CCCCC DDDDDDD EEEEEEEEE FFFFFFFFFFF GGGGGGGGGGGGG 13.编程打印图形(考虑将输出的行数由输入的值来控制) : 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 1 2 3 4 5 6 5 4 3 2 1 14.编程打印图形(考虑将输出的行数由输入的值来控制) : 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 1 2 3 4 5 6 5 4 3 2 1 15.编程打印图形(考虑将输出的行数由输入的值来控制) : 1 2 3 4 5 6 5 4 3 2 1 1 2 3 4 5 4 3 2 1 1 2 3 4 3 2 1 1 2 3 2 1 1 2 1 1 16.编程打印图形(考虑将输出的行数由输入的值来控制) : 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 1 1 17.编程打印图形(考虑将输出的行数由输入的值来控制) : 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 1 1 18.输入一个大写字母打印菱形。菱形中间一行由该字母组成,相邻的各行由前面的字 母依次组成, 直到字母 A 出现在第一行和最末行为止。 例如输入字母 D, 输出图形如下: A BBB CCCCC DDDDDDD CCCCC BBB A 19.打印如下图形。输出行数由键盘输入。 ** ****** ********** ************** ****************** 20.输出矩阵 A 及其转置矩阵: 1234 A =2341 3412 21.依次输入十个整数,找出其平方最大的一个数并打印出来。 22.输入 n,求下列级数前 n 项的和。 1+1/2-2/3+3/4…… 23.编写程序用于判断一个数是否是素数。 24.编程序输出1--1000内的所有素数。所谓素数是指除了能被1和它本身之外不能被其 它数整除的数。 25.输入20个数,先按原来顺序输出,再将数组中元素逆置后输出,即将第1个数跟 第20个互换、第2个数跟第19个互换。 26.从键盘上输入 10个整数,并放入一个一维数组中,然后将其前5个元素与后5个元素 对换,即:第1个元素与第6个元素互换,第2个元素与第7个元素互换……第5个元素与 第10个元素互换。分别输出数组原来各元素的值和对换后各元素的值。 27.从键盘输入一组数,先按原来顺序输出,再将其中最大的一个找出来与第一个元素 交换(即将最大的一个放到最前面)后将所有数重新输出。 28.输入一组数,先按原来顺序输出,再找其中最大及最小元素,分别与第一个及最后 一个交换后再将这一组数重新输出一遍。注意从一组数中找出最大或者最小数的方法。 29.用冒泡或选择法将一组数按从大到小的降序排序后输出。 30.输入一行文字(英文),统计其中的单词个数。 31.编程计算 的近似值。求近似值公式如下: 32.用递归的方法求 n!。可以用以下数学关系表示: 33.编写程序,要求用随机函数产生 n 个数(n 由键盘输入的值决定),并用选择法排序, 输出排序前后的结果,要求每行打印10个数。 34.求出10至1000之内能同时被2、3、7整除的数,并输出。 35.求出1到100之间的奇数之和及偶数之和,并将二者输出。 36.编一程序用以输出所有各位数码阶乘之和等于其自身的三位数。 如: 145(145=1!+4!+5!)。 37.假设字符数组存放有三行字符,每行的长度最长为80个字符,编程:分别统计出其 中大写字母、小写字母、数字字符、空格字符以及其它字符的个数。 38.编写程序,读一个在字母 C 和 X 之间的字符,打印出该字母在中间的相邻五个字母。 如输入 F,则输出 DEFGH。 39.编程输入一个小写字母,以该字母为第一个字母按字母表逆序输出字母表中所有小 写字母。 (例:输入 m ,则输出:mlkjihgfedcbazyxwvutsrqpon) 40.在1—500中,找出能同时满足用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整除的和能被3整除这两种情况里。 43.编写程序输入三位数 (100—999) , 然后按数字逆序输出。(例: 输入123↙, 输出321) 。 44.编写程序打印所有的“水仙花数”。“水仙花数”指一个三位数,其各位数字立方 和等于该数本身,例如153是一个“水仙花数”,因为 153=1×1×1+3×3×3+ 5×5×5。 45.将一个二维数组 a[2][3]={{1,2,3},{4,5,6}}转置,存到数组 b 中并输出 b。 46.编写程序求1-1/3+1/5-1/7+1/9的值,直到最后一项的绝对值小于10 -6为止。 47.输入 x 值,根据下式计算 ,直到最后一项的绝对值小于10 -6时为止。 48.编程计算下面公式: 49.编一子程序实现十进制数转换为其它进制数。主程序将十进制数43 和17分别转换为 二进制数和八进制数。 50.编一个程序计算一元二次方程的根。 51.编程输入一个整数,若为四位正整数则要求正确分离出其个、十、百、千位及中间 的两位数并分别输出,如输入的是1234,则输出应该为4、3、2、1、23;否则给出一 个出错提示。 52.任意输入三个数,按从大到小的降序输出。 53.编程计算1+2+3+.+10000 54.编程计算1-2+3-4+5-6+……-10000 55.编程计算2+4+6++100的结果 56.编和计算1+3+5+……+99的和 57.编程计算1+4+9+16+25+……+10000之和 58.编程计算下式的值,其中的 n 在程序运行时由用户通过键盘输入: 59.根据数学方面的知识,圆周率的计算可按下式进行,试编程序计算机圆周率,并试 着将 n 取不同的值(至少在100以上) ,看计算出的圆周率结果有何不同。 60.输入两个正整数 m 和 n,求其最大公约数和最小公倍数。 (利用辗转相除法) 61.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10 次落地时,共经过多少米?第10次反弹多高? 62.计算0.0~∏之间各数的正弦及余弦值,各值之间以0.01为间距。 63.利用 C 语言自带的随机函数(rand)产生一组随机数(不要超过10000) ,先将它们 按原序输出,再找出最大一个数的位置(即下标)并输出。 64.利用 C 语言自带的随机函数(rand)产生一组随机数(不要超过10000) ,先将它们 按原序输出,再找出最大及最小两个数的位置(即下标)并输出。 65.按如下公式计算表达式的值(用递归实现) : 66.编一程序,从键盘输入若干个数,降序排序后存入文件 jieguo.txt 中去,同时将结 果在屏幕上显示。 67.百鸡问题:用100元买100只鸡,大公鸡5元1只,母鸡3元1只,小鸡1元3只。问各能 买多少只? 68.今年父亲30岁,儿子6岁,问多少年后父亲的年龄是儿子年龄的2倍? 69.一个四位数,当它逆向排列时得到的4位数是它自身的整数倍,请找出所有符合这一 条件的四位数。 70.某处发生一起案件,侦察得知如下可靠线索: ABCD 四人都有作案可能 AB 中至少一人参与作案 BC 中至少一人参与作案 CD 中至少一人参与作案 AC 中至少一人未参与作案 请分析谁最有可能是案犯。 71.找赛手:2个羽毛球队比赛,各出3人,每个人只比一次。甲队为 A,B,C 三人,乙 队为 X,Y,Z 三人。有人打听比赛名单,A 说他不和 X 比,C 说不和X,Z比。请编程 找出三队赛手的名单。 72.求以下不定方程组的所有正整数解(提示:可以考虑让计算机在一定范围内穷举) : 73.编程从键盘输入20个数,要求输出其中最大的前5个。 74.编程序输出1-1000以内的完全平方数并统计个数。所谓完全平方数是指其算术平方 根为一整数,如4、9、100等。 75. 我国古代有一种回文诗,倒念顺念都有意思,例如“人过大佛寺”,倒读起来便是“寺佛 大过人”。还有经典的对联“客上天然居,居然天上客”。此种例子举不胜举。在自然数 中也有类似情形,比如1991就是一个很特殊的四位数,从左向右读与从右向左读竟是 完全一样的,这样的数称为“回文数”。编程序输出1到10000内的所有回文数并统计个 数。 76. 某班综合考评,根据参加集体活动的次数加分,规则如下: 参加1次及以下:加1分; 参加2至3次:加2分; 参加4至7次:参加几次加几分; 参加8至10次:加8分; 参加10次以上:加10分。 程序运行时输入某人参加活动的次数,则输出其应该加的分数;如果输入为负值,则给 出相应提示。 77. 编程计算如下表达式的值:1/2+1/3+.+1/n,其中的 n 在程序运行时输入。 78. 从键盘输入一元二次方程的三个系数,要求计算出其根:若有不相等的实根则输出两 实根;若有相等的实根则只输出一个;若无实根则给出相应提示;若输入导致一元二次 方程不成立,则给出提示。 79. 求以下不定方程组的所有正整数解: 80. 编程输出如下格式图形(要求将输出的行数由输入的值来控制,否则不得分) : * ** *** **** 81. 编程从键盘输入一行文字,每行的长度最多为80个字符,分别统计出其中大写字母、 小写字母、数字及其它字符的个数并输出。 82. 编程从键盘输入20个数,要求输出其中最小的前5个。 参考答案 1、 #include #include void main() { float x,y; printf(“Please input x:“); scanf(“%f“, y=2*x+1; y=(float)pow(y+1,2); printf(“The result is:%f\n“,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(n void main() { int n,r,c; printf(“请输入行数:“); scanf(“%d“, if(n void main() { int n,r,c; printf(“请输入行数:“); scanf(“%d“, if(n void main() { int n,r,c; printf(“请输入行数:“); scanf(“%d“, if(n void main() { int n,r,c; printf(“请输入行数:“); scanf(“%d“, if(n void main() { int n,r,c; printf(“请输入行数(必须为单数):“); scanf(“%d“, if((n void main() { int n,r,c; printf(“请输入行数:“); scanf(“%d“, if(n void main() { int n,r,c; printf(“请输入行数(必须为单数):“); scanf(“%d“, if((n void main() { int n,r,c; printf(“请输入行数:“); scanf(“%d“, if(n void main() { int n,r,c; char ch='A'; printf(“请输入行数:“); scanf(“%d“, if(n #define N 50 void main() { int n,r,c; printf(“请输入行数:“); scanf(“%d“, if(n #define N 50 void main() { int n,r,c; printf(“请输入行数:“); scanf(“%d“, if(n #define N 50 void main() { int n,r,c; printf(“请输入行数:“); scanf(“%d“, if(n=1;r--) { for(c=1;c #define N 50 void main() { int n,r,c,a[N+1][N+1]; printf(“请输入行数:“); scanf(“%d“, if(n #define N 50 void main() { int n,r,c,a[N+1][N+1]; printf(“请输入行数:“); scanf(“%d“, if(n void main() { int n,r,c; char ch='A'; printf(“请输入行数(必须为单数):“); scanf(“%d“, if((n void main() { int n,r,c; printf(“请输入行数:“); scanf(“%d“, if(n #define N 4 void main() { int r,c,a[N+1][N+1]; for(c=1;c void main() { int i; double x,oldx,sx=0; printf(“\n 请输入10个数:“); for(i=1;isx) { oldx=x; sx=x*x; } } printf(“平方最大的一个数是:%f\n“,oldx); } 22、 #include void main() { int i,n,signal=1; double s=1; printf(“\n 请输入项数:“); scanf(“%d“, if(n void main() { int i,n,signal=1; printf(“\n 请输入一个正整数:“); scanf(“%d“, if(n void main() { int i,j,signal,count=0; for(j=1;j #define N 20 void main() { int i,a[N+1]; printf(“请输入%d 个数:\n“,N); for(i=1;i #define N 10 void main() { int i,a[N+1]; printf(“请输入%d 个数:\n“,N); for(i=1;i #define N 6 void main() { int i,a[N+1]; printf(“请输入%d 个数:\n“,N); for(i=1;i=2;i--) if(a[i]a[i-1]) { a[0]=a[i]; a[i]=a[i-1]; a[i-1]=a[0]; } printf(“\n 按新序输出(最前面的是最大的一个数):\n“); for(i=1;i #define N 6 void main() { int i,t,a[N+1]; printf(“请输入%d 个数:\n“,N); for(i=1;ia[t]) t=i; a[0]=a[1]; a[1]=a[t]; a[t]=a[0]; printf(“\n 按新序输出(最前面的是最大的一个数):\n“); for(i=1;i #define N 6 void main() { int i,a[N+1]; printf(“请输入%d 个数:\n“,N); for(i=1;i=2;i--) if(a[i]a[i-1]) { a[0]=a[i]; a[i]=a[i-1]; a[i-1]=a[0]; } for(i=1;i #define N 6 void main() { int i,j,a[N+1]; printf(“请输入%d 个数:\n“,N); for(i=1;i=2;i--)//改成 for(i=N;i=j+1;i--) if(a[i]a[i-1]) { a[0]=a[i]; a[i]=a[i-1]; a[i-1]=a[0]; } printf(“\n 按新序输出:\n“); for(i=1;i #define N 6 void main() { int i,j,t,a[N+1]; printf(“请输入%d 个数:\n“,N); for(i=1;ia[t]) t=i; a[0]=a[j]; a[j]=a[t]; a[t]=a[0]; } printf(“\n 按新序输出:\n“); for(i=1;i #include #define N 80 void main() { int i,count=0,p=1;; char s[N+1]; printf(“请输一行文字:\n“); gets(s); printf(“\n 按原序输出:\n“); puts(s); for(i=0;i='a' int i,n; printf(“请输入项数(不小于100) :“); scanf(“%d“, if(n long jc(long x) { if((x==0)||(x==1)) return 1; else return x*jc(x-1); } void main() { int n; printf(“请输入要计算阶乘的整数(不小于0) :“); scanf(“%d“, if(na[t]) t=i; a[0]=a[j]; a[j]=a[t]; a[t]=a[0]; } printf(“\n“); printf(“\n 按排好序的结果输出:\n“); for(i=1;i #include void main() { int i,dx=0,xx=0,sz=0,kg=0,qt=0; char str[80]; printf(“请输入一行字符:\n“); gets(str); for(i=0;i='a') printf(“请输入一个字母(C 到 X 之间) :“); scanf(“%c“, if((ch'X')) printf(“输入错误!\n“); else for(cha=ch-2;cha void main() { char ch,cha; printf(“请输入一个小写字母:“); scanf(“%c“, if((ch'z')) printf(“输入错误!\n“); else { for(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;i void main() { int i,s2=0,s3=0,s5=0; for(i=1;i void main() { int i,s2=0,s3=0,s5=0; for(i=1;i void main() { int n,ge,shi,bai; printf(“请输入一个三位正整数:“); scanf(“%d“, if((n999)) printf(“输入数据有误!\n“); else { ge=n%10; shi=n/10%10; bai=n/100; printf(“此数的逆序输出结果为:%d%d%d\n“,ge,shi,bai); } } 44、 #include void main() { int n,ge,shi,bai; for(n=100;n void main() { int a[2][3]={{1,2,3},{4,5,6}},b[3][2],r,c; for(r=0;r #define JD 0.000001 void main() { double s=0; int i=1,p=1; while(1.0/i=JD) { s+=1.0/i*p; p=-p; i+=2; } printf(“结果为:%f\n“,s); } 47、 #include #define JD 0.000001 void 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(“结果为:%f\n“,s); } 48、 #include #include void main() { double x,y; printf(“请输入 x 的值:“); scanf(“%lf“, if((x=9)) printf(“输入数据超出范围!\n“); else { if((x=1) printf(“\n 从低位向高位输出:\n“); while(x0) { t=x%d; if(t #include void main() { double a,b,c,d,x1,x2; printf(“请输入一元二次方程的三个系数:“); scanf(“%lf%lf%lf“, if(a==0) if(b==0) if(c!=0) printf(“方程不成立!\n“); else printf(“方程有无穷多解!\n“); else { x1=--c/b; printf(“方程解为:%f\n“,x1); } else { d=b*b-4*a*c; if(d0) { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf(“方程有两个不相等的实根,分别为:%f,%f\n“,x1,x2); } else if(d==0) { x1=-b/(2*a); printf(“方程有两个相等的实根,为:%f\n“,x1); } else printf(“方程无实根!\n“); } } 51、 #include void main() { int x,ge,shi,bai,qian,zhongjian; printf(“请输入一个四位正整数:“); scanf(“%d“, if((x9999)) printf(“所输入的数据不是四位正整数!\n“); else { ge=x%10; shi=x/10%10; bai=x/100%10; qian=x/1000; zhongjian=bai*10+shi; printf(“个位:%d,十位:%d,百位:%d,千位:%d,中间两位: %d\n“,ge,shi,bai,qian,zhongjian); } } 52、 #include void main() { float a,b,c,t; printf(“请输入三个数:“); scanf(“%f%f%f“, if(a void main() { int s=0,i; for(i=1;i void main() { int s=0,i,p=1; for(i=1;i void main() { int s=0,i; for(i=1;i void main() { int s=0,i; for(i=1;i void main() { int s=0,i; for(i=1;i void main() { double s=0; int i,n; printf(“请输入要计算的项数:“); scanf(“%d“, if(n void main() { double s=0; int i,n,p=1; printf(“请输入要计算的项数:“); scanf(“%d“, if(n #include #define Pi 3.1415926 void main() { double x,sinx,cosx; for(x=0.00;x #include #include #define N 100 void main() { int a[N+1],i,m; srand(time(NULL));//利用时间对随机函数进行初始化 for(i=1;ia[m]) m=i; printf(“最大的一个数的位置为:%d,其值为:%d\n“,m,a[m]); } 64、 #include #include #include #define N 100 void main() { int a[N+1],i,max,min; srand(time(NULL));//利用时间对随机函数进行初始化 for(i=1;ia[max]) max=i; //查找最大数位置 min=1; for(i=1;i int f(int n) { if(n==1) return 1; else if(n==2) return 2; else return f(n-1)+f(n-2); } void main() { int n; printf(“请输入要计算的项数(不小于1) :“); scanf(“%d“, if(n #define N 10 void main() { int i,j,a[N+1]; FILE *fp; printf(“请输入原始数据(%d 个) :“,N); for(i=1;ia[j]) { a[0]=a[i]; a[i]=a[j]; a[j]=a[0]; } printf(“降序输出结果如下:\n“); for(i=1;i void main() { int cock,hen,chick; for(cock=1;cock void main() { int father=30,son=6,year=0; while((father+year)!=(son+year)*2) year++; printf(“经过%d 年后父亲年龄为儿子的两倍!\n“,year); } 69、 #include void main() { int i,ge,shi,bai,qian,newi; for(i=1000;i void main() { int a[5],c[5]={0,0,0,0,0},i,m; printf(“可能的情况如下:\n“); for(a[1]=0;a[1]=1)ic[m]) m=i; printf(“最有可能的嫌犯为:%c\n“,'A'-1+m); } 71、 #include void main() { char a,b,c; for(a='X';a void main() { int x,y,z; for(x=1;x #define N 20 void main() { int i,j,a[N+1]; printf(“请输入%d 个数:“,N); for(i=1;ia[j]) { a[0]=a[i]; a[i]=a[j]; a[j]=a[0]; } printf(“最大的前五个数为:“); for(i=1;i #include void main() { int i,newi; for(i=1;i #include void main() { int i,oldi,newi,t,count=0; for(i=1;i #include void main() { int cs,jf; printf(“请输入参加活动次数:“); scanf(“%d“, if(cs void main() { double s=0; int n,i; printf(“请输入要计算的项数:“); scanf(“%d“, for(i=2;i #include void main() { double a,b,c,d,x1,x2; printf(“请输入三个系数:“); scanf(“%lf%lf%lf“, if(a==0) printf(“不是一元二次方程!\n“); else { d=b*b-4*a*c; if(d0) { x1=(-b+sqrt(d))/2/a; x2=(-b-sqrt(d))/2/a; printf(“X1=%f,X2=%f\n“,x1,x2); } else if(d==0) { x1=-b/2/a; printf(“X1=X2=%f\n“,x1); } else printf(“无实根!\n“); } } 79、 #include void main() { int a,b,c,d; for(a=1;a void main() { int r,c,n; printf(“请输入行数:“); scanf(“%d“, for(r=1;r #include #define N 80 void main() { char str[N+1]; int i,dx,xx,sz,qt; dx=xx=sz=qt=0; printf(“请输入一行文字(不超过80个字符) :“); scanf(“%s“,str); for(i=0;i='A') int i,j; printf(“请输入%d 个数:“,N); for(i=1;ii;j--) if(a[j]a[j-1]) { a[0]=a[j]; a[j]=a[j-1]; a[j-1]=a[0]; } printf(“最小的前五个数为:\n“); for(i=1;i=5;i++) printf(“%6d“,a[i]); printf(“\n“); }

展开阅读全文

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值