《东北大学c语言题库及答案.doc》由会员分享,可在线阅读,更多相关《东北大学c语言题库及答案.doc(21页珍藏版)》请在金锄头文库上搜索。
1、题号题目第几题0编写一个售货机(POS)计算程序,用于水果店售货员算账。苹果每千克3.2元,梨每千克1.96元,香蕉每千克3元,樱桃每千克24元。某顾客购买1.5斤苹果,2斤梨,3斤香蕉,1.5斤樱桃,付给售货员100元。要求规范输出这位顾客购买各类水果的名称,对应的重量和应付价钱,显示顾客所付款项,输出应找回的款项。#includemain()float a=3.2,b=1.96,c=3.0,d=24.0;float e,h,i,j,sum,x;printf(分别输入苹果梨子香蕉樱桃的斤数);scanf(%f %f %f %f,&e,&h,&i,&j);sum=a*e+b*h+c*i+d*j
2、;printf(应付金额 %.2f,sum);printf(顾客支付n);scanf(%f,&x);printf(找额%.2f,x-sum);11四舍五入#include main()float a=12.36567;int b;b=(int)(a*1000)%10;if(b=5)a=(int)(a+0.01)*100)/100.0;elsea=(int)(a*100)/100.0;printf(a=%.2f,a);12编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数(0作为结束标志)。#includemain()int x=0,y=0,i;printf(请输入);scanf(
3、%d,&i);while(i!=0) if(i0) x+; else y+; scanf(%d,&i);printf(正整数%d ,负整数%d,x,y);13统计100-500之间各个数字之和为9的三位数,输出这些三位数。例如351的各个数字之和为9。#includemain()int a,b,c,d;for(a=100;a500;a+)b=a/100;c=(a%100)/10;d=a%10;if (b+c+d=9)printf(%dn,a);14编程求1-1000之间的所有完数(完数定义:一个数恰好等于它的除自身外的所有因子之和)。#includemain()int a,b,c;for(a=
4、1;a=1000;a+)c=0;for(b=1;ba;b+)if(a%b=0)c=c+b;if(a=c)printf(%dn,a);15已知银行整存整取存款不同期限的利率分别为:3.30%期限半年;3.50%期限一年;4.40%期限二年;5.00%期限三年;5.50%期限五年;到期利息税为5%。要求输入存取的本金和期限,求到期能从银行得到的利息、本金及总和。#includemain()float a,b,c;printf(请输入存款年数);scanf(%f,&a);printf(输入本金n);scanf(%f,&c);if (a=1&a=2&a=3&a5) b=0.05;else b=0.03
5、5;printf(利息为%f,b*c*0.95);printf(总和%f,c*(1+b*0.95);16输入三角形的三边长,判断这个三角形是否是直角三角形。#includemain()int a,b,c,temp;printf(输入三边);scanf(%d%d%d,&a,&b,&c);if(a+bc&a+cb&b+ca)if(ba)temp=b;b=a;a=temp;if(ca)temp=c;c=a;a=temp;if(a*a=b*b+c*c)printf(直角三角形n);elseprintf(一般三角形n);elseprintf(不能组成三角形n);17输入一串字符(以回车键结束),统计其中
6、数字、大写字母、小写字母以及其他字符的个数。#includemain() char str200; char*p; int a=0,b=0,c=0,d=0; p=str; gets(p); while (*p) if (*p=A&*p=a&*p=0&*p=9) c+; else d+; p+; printf(大写字母%dn,小写字母%dn,数字个数%dn,其它字符个数%dn,a,b,c,d);18编写程序:找出不超过1000的十位数字为1,个位数字为3或7的所有数。例如:13、17、113、317等。#includemain() int a,b,c; for(a=1;a=1000;a+) b=
7、(a%1000)%100)/10; c=a%10; if(c=3|c=7)&b=1) printf(%dn,a); 19某企业利润提成的规则如下:1)利润低于或等于10万元的,可提成奖金%10;2)利润高于10万元,低于20万元时,低于10万元的部分按%10提成,另外部分可以提成7.5%;3)利润高于20万低于40万元的,其中20万元按前面的方法发放,另外的部分按5%提成;4)利润高于40万元的,40 万元按前面的方法提成,高于部分按3%提成。从键盘输入利润,输出应发的提成。#includemain()float a;printf(输入利润);scanf(%f,&a);if(a100000&a
8、200000&a=400000) printf(%.2f,10000+7500+(a-200000)*0.05);else printf(%.2f,10000+7500+1000+(a-400000)*0.03);110利用公式e=1/1!+1/2!+1/3!+1/n!计算e的值并输出(要求:误差小于10-5)。#includemain()float e=1,d;int a,b,c=1,n;printf(输入阶数);scanf(%d,&n);for(a=1;a=n;a+)c=c*a;e=e+1.0/c;printf(%f,e);111从键盘输入一个字符串str,统计其中大写英文字母A,B,C,
9、D出现的次数。要求输出原始字符串,以及统计的结果。#includemain()char str10;int i,a=0,b=0,c=0,d=0;gets(str); for(i=0;stri!=0;i+)if(stri=A) a+;else if(stri=B) b+;else if(stri=C) c+;else if(stri=D) d+;printf(A=%d B=%d C=%d D=%d,a,b,c,d);212将字符串a中的每个字符用加3的方法加密并存入数组b中,再对b中的字符串解密存入数组c。要求:初始化字符串a,依次输出字符串a、b、c。#includemain()char a1
10、00=wangshenghao;int i;char b100,c100;puts(a);for(i=0;ai!=0;i+)bi=ai+3;bi=0; puts(b);for(i=0;bi!=0;i+)ci=bi-3;ci=0; puts(c);213输入两个字符串str1和str2,计算并输出str2在str1中出现的位置(提示:从位置0开始计算,例如输入str1为”howareyou”,str2为”are”,则位置结果为3),要求初始化字符串str1和str2,输出原始字符串str1和str2,以及位置结果值。#includeint main() char s1100,s2100; int i,j,ans=-1;/ans=-1意味着没有完成匹配 scanf(%s,s1); scanf(%s,s2); for(i=0;s1i!=0;i+) ans=i;/假设这次比较可以完成匹配 for(j=0;s2j!=0;j+) if(s1i+j=0|s1i+j!=s2j) ans=-1; break; if(ans!=-1) break; printf(%sn,s1); printf(%sn,s2); printf(%dn,ans); return 0;214从键盘输入一个字符串str和一个字符ch,删除字符串str中和输入字符ch相同的所有字符,输出原始字符串str