




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
练习题1参考答案一、选择题序号12345678参考答案ACADCCCA二、填空题1.程序设计语言主要分为以下三类:机器语言、 汇编语言 和 高级语言 。2.在C语言中,一个函数一般由两个部分组成,它们是函数首部 和 函数体 。3.C程序开发过程的一般步骤为:源程序的编辑、 编译 、 连接 和运行。4. C程序源文件的扩展名为 .c ,编译成功后产生的文件扩展名为 .obj ,连接成功后产生文件扩展名为 .exe 。三、应用题略练习题2参考答案一、选择题序号12345678910参考答案BACCBABBDC序号1112131415参考答案ABCAC二、填空题1.通常一个字节包含 8 个二进制位。在一个字节中能存放的最大(十进制)整数是 255(无符号),127(带符号) ,最小(十进制)整数是 -128 ,它的二进制数的形式是 10000000 。2.在C语言中,十进制数30的八进制数表示形式是 036 ,十六进制数表示形式是 0x1e ,在内存中它的二进制数表示形式是 0000000000011110 。3.条件“20x30或x20&x30|xb)&(y=cd) 的值为 0 。3.使用强制转换方法将正整数转换成字符。本题程序如下:本程序的执行结果为 输入一个正整数(小于255):97 a的ASCII码为97 。4.下面程序的输出是 -100,50i=-100,j=50i=-100j=50。5.执行以下程序时,若从第一列开始输入数据,为使变量a=2,b=8,x=6.5, y=56.62,el=C,c2=b,正确的数据输入形式是 a=2 b=8x=6.5 y=56.62c1=C c2=b 。三、程序设计题1.编写程序交换两个变量a,b的值,并输出。如输入时a=3,b=5,输出a=5,b=3。#includevoid main() int a,b,c;printf(“输入两个数:a,b”);scanf(“a=%d,b=%d”,&a,&b);c=a;a=b;b=c;printf(“a=%d,b=%d”,a,b);2. 编写程序输入小写字符boy,输出大写字符BOY。#includevoid main()char c;printf(“Input:”);scanf(“%c”,&c);c=c-32;printf(“%c”,c);3.已知华氏温度与摄氏温度的转换公式为:C=(F-32)*5/9。编写程序当输入华氏温度F时,输出对应的摄氏温度。#includevoid main()float F;scanf(“%f”,&F);printf(“%f”,(F-32)*5/9);4.设圆的半径r=1.5,圆柱高h=3,编写程序求圆周长、圆面积、圆球表面积、圆球体积及圆柱体积。用scanf函数输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。#includeint main()float h,r,l,s,sq,vq,vz;float pi=3.141592;printf(“请输入圆半径r,圆柱高h:”);scanf(“%f,%f”,&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=3.0/4.0*pi*r*r*r;vz=pi*r*r*h;printf(“圆周长为: l=%6.2fn”,l);printf(“圆面积为: s=%6.2fn”,s);printf(“圆球表面积为: sq=%6.2fn”,sq);printf(“圆球体积为: vq=%6.2fn”,vq);printf(“圆柱体积为: vz=%6.2fn”,vz);ruturn 0;5.编写程序输入梯形的上底a,下底b和高h,输出该梯形的面积。#includevoid main()float a,b,h,s;printf(“请输入梯形上底,下底和高:n”);scanf(“%f%f%f”,&a,&b,&h);s=(a+b)*h/2;printf(“梯形面积为: %fn”,s);6.编写程序将China译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母A后面第4个字母是E,用E代替A。因此,China应译为Glmre。请编写程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为C,h,i,n,a,经过运算,使c1,c2,c3,c4,c5分别变为G,l,m,r,e。分别用putchar函数和printf函数输出这5个字符。#includeint main()char c1=C,c2=h,c3=i,c4=n,c5=a;c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(“password is %c%c%c%c%cn”,c1,c2,c3,c4,c5);return 0;#includeint main()char c1=C,c2=h,c3=i,c4=n,c5=a;c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;putchar(c1);putchar(c2);putchar(c3);putchar(c4);putchar(c5);return 0;练习题4参考答案一、选择题序号12345678910参考答案CBAACCBAAB二、填空题1表示“整数x的绝对值大于5”时值为“真”的C语言表达式是 abs(x)5 & floor(x)=x 。2以下程序运行后的输出结果是 20,0 。3若从键盘输入58,则以下程序输出的结果是 585858 。4以下程序输出的结果是 0 。5以下程序的输出结果是 2 。6若int i=10; 则行下列程序后,变量i的正确结果是 13 。三、程序设计题1.编写程序输入有3个整数a、b、c,并按照从小到大的顺序输出。#includeint main()int a,b,c,t;printf(“please input a b cn”);scanf(“%d%d%d”,&a,&b,&c);if(ab)t=a;a=b;b=t; if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(“%d,%d,%dn”,a,b,c);return 0;2.有一个函数:编写一个程序,输入x的值,输出y的值。#includeint main()int x,y;printf(“输入x:”);scanf(“%d”,&x);if(x1)y=x;printf(“x=%d, y=x=%dn”,x,y);else if(x10)y=2*x-1;printf(“x=%d, y=2*x-1=%dn”,x,y);elsey=3*x-11;printf(“x=%d, y=3*x-11=%dn”,x,y);return 0;3.输入学生的百分制成绩,要求输出学生的成绩、等级以及相应的评语。设用A、B、C、D、E五个等级,且90分以上为等级A,评语为“成绩优秀”,80-89分为等级B,评语为“成绩良好”,70-79分为等级C,评语为“成绩中等”,60-69分为等级D,评语为“成绩及格”,60分以下为等级E,评语为“成绩不及格”。分别用if条件语句和switch开关语句编写程序。方法一:if条件语句#includevoid main()int score;printf(输入成绩:);scanf(%d,&score);if(score100 | score=90)printf(成绩为%d,等级为A,成绩优秀n,score);else if(score=80)printf(成绩为%d,等级为B,成绩良好n,score);else if(score=70)printf(成绩为%d,等级为C,成绩中等n,score);else if(score=60)printf(成绩为%d,等级为D,成绩及格n,score);elseprintf(成绩为%d,等级为E,成绩不及格n,score);方法二:switch开关语句#includevoid main()int score;printf(输入成绩:);scanf(%d,&score);if(score100 | score0)printf(输入错误!n);elseswitch(score/10) case 10:case 9: printf(成绩为%d,等级为A,成绩优秀n,score);break;case 8: printf(成绩为%d,等级为B,成绩良好n,score);break;case 7: printf(成绩为%d,等级为C,成绩中等n,score);break;case 6: printf(成绩为%d,等级为D,成绩及格n,score);break;default:printf(成绩为%d,等级为E,成绩不及格n,score);4.编写程序输入三个整数,判断它们是否能够构成三角形。若能构成三角形,则输出三角形的类型(等边三角形、等腰三角形、一般三角形),并计算三角形的面积;若不能构成三角形,则输出“不能构成三角形”的信息。#include#includevoid main()float a,b,c,s,t;printf(input a,b,cn);scanf(%f%f%f,&a,&b,&c);if(a+bc)& (a+cb)& (b+ca)t=(a+b+c)/2;s=sqrt(t*(t-a)*(t-b)*(t-c);if(a=b&b=c)printf(这是等边三角形,面积为%fn,s);else if(a=b)&(b!=c)|(b=c)&(a!=c)|(a=c)& (a!=b)printf(这是等腰三角形,面积为%fn,s);else printf(这是一般三角形,面积为%fn,s);else printf(不能构成三角形);5. 编写程序在屏幕上显示一张如下所示的时间表: *Time* 1 morning 2 afternoon 3 night Please enter your choice(1-3):操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息,选择1时显示Good morning, 选择2时显示Good afternoon, 选择3时显示Good night,对于其他选择显示Selection error!。#includevoid main() int n; printf( *Time*n1 morningn); printf(2 afternonnn3 nightn); printf(Please enter your choice(1-3):n); scanf(%d,&n); switch(n) case 1:printf(Good morningn);break; case 2:printf(Good afternoonn);break; case 3:printf(Good nightn);break; default: printf(Selection error!n); 6.设银行整存整取不同期限的月利率分别为:一年定期为0.63%;二年定期为0.66%;三年定期为0.69%;五年定期为0.75%;八年定期为0.84%。要求输入存款的本金和期限,求到期能从银行得到的本金和利息的合计。分别用if语句和switch语句编与程序。#includevoid main()const double rate = 0.0063, 0.0066, 0.0069, 0.0075, 0.0084;int years = 0;float init = 0;double sum = 0; printf(nInput initial amount of money:);scanf(%f, &init);printf(nType in save period in years:);scanf(%d, &years);if( years=1 | years=2 | years = 3 | years = 5 | years = 8)if(years=1)sum = init*(1+rate0*12*years);else if(years=2)sum = init*(1+rate1*12*years);else if(years=3)sum = init*(1+rate2*12*years);else if(years=5)sum = init*(1+rate3*12*years);elsesum = init*(1+rate4*12*years);printf(nTotal amount after %d years: %.2fn, years, sum);elseprintf(nWrong number, Please type in years again: );scanf(%d, &years);7.编写程序计算个人所得税。个人所得税的计算方法:(实发工资-3500)*税率-扣除数,设个人所得税起征点为3500元。共分为7级,具体如下:级数应纳税额 税率(%)扣除数1不超过1500元的302超过1500元至4500元的部分101053超过4500元至9000元的部分205554超过9000元至35000元的部分2510055超过35000元至55000元的部分3027556超过55000元至80000元的部分3555057超过80000元的部分4513505#includevoid main()float a; /实发工资float b; /应纳税部分工资float s; /税率float kouchu;/扣除数float ptax; /个人所得税 printf(输入工资:);scanf(%f,&a);b=a-3500;if(b0&b=1500)s=0.03;kouchu=0;else if(b=4500)s=0.1;kouchu=105;else if(b=9000)s=0.2;kouchu=555;else if(b=35000)s=0.25;kouchu=1005;else if(b=55000)s=0.3;kouchu=2755;else if(b=80000)s=0.35;kouchu=5505;elses=0.45;kouchu=13505;ptax=b*s-kouchu;printf(个人所得税为%fn,ptax);8. 编写程序计算货款。设按购买货物款的多少分别给予不同的优惠折扣,购货不足250元,没有折扣;购货250元(含250元,下同),不足500元,减价5%;购货500元,不足1000元,减价7.5%;购货1000元,不足2000元,减价10%;购货2000元及以上,减价15%。#includevoid main() float m,d,t;printf(请输入购物金额:);scanf(%f,&m);if(m250) d=0;else if(m500) d=0.05;else if(m1000) d=0.075;else if(m2000) d=0.1;else d=0.15;t=m*(1-d);printf(实际应付金额:%f,t);9.给一个不多于5位的正整数,编写程序实现:(1)求出它是几位数;(2)分别输出每一位数字;(3)按逆序输出各位数字。#includeint main() int i,j,a,b,c,d,k=0,n=0,s=100000,t=10,p; scanf(%d,&a); p=a; /保存原始输入值,后面用到 if (p/s!=0) /超过5位数,直接错误提示,程序结束。 printf(输入错误!n); else printf(逆序输出各位数字:); for (i=0;i6;i+) b=a; if (b!=0) k+;b=a%t; /对10求余可得个十百千万位printf(%d ,b );a=a/t; printf(n%d是个%d位数n,p,k ); printf(正序输出各位数字:); for (j=0;j6;j+) c=p; d=c/s%10; / 除以s后对10求余可得万千百十个位 s=s/10; /s要依次/10,求解后面的数值 if (d!=0) printf(%d ,d ); printf(n);return 0;10.编写程序对数据进行加密。设加密方法为:对任意给定的4位整数,每一位数字均加2,若某位数字加2后大于9,则取其除以10的余数,如数据6987加密后的数据为8109。#includevoid main()int a,b,c,d,m;scanf(%d,&m);a=m%10+2;if(a=10) a=a%10;b=m/10%10+2;if(b=10) b=b%10;c=m/100%10+2;if(c=10) c=c%10;d=m/1000+2;if(d=10) d=d%10;m=a+b*10+c*100+d*1000;printf(%dn,m);练习题5参考答案一、选择题序号12345678910参考答案ABBABDCDBD二、填空题1以下程序的输出结果是 52 。2以下程序的输出结果是 17 。3有以下程序:程序运行时,如果从键盘输入:Y? N?,则输出结果为 X 。4下面程序的运行结果 s=254 。5下面程序段中循环体的执行次数是 3 。6下面程序段的运行结果是 * 。7下面程序的运行结果是 1, -2 。8下面程序段的运行结果是 8 。9下面程序的功能是:计算110之间的奇数之和与偶数之和,试完善程序。10下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。三、程序设计题1.编写程序计算1+3+5+7+97+99的值。#includevoid main()int i,sum;sum=0;for(i=1;i=99;i+=2)sum=sum+i; printf(%dn,sum);2.编写程序从键盘输入正整数n,求n!。#includevoid main() int i,n,fact=1;scanf (%d,&n);for(i=1;i=n;i+)fact*=i;printf(n=%d,n!=%dn,n,fact);3.编写程序求一个十进制整数的位数。#includevoid main()int n,m;scanf(%d,&n);if(n0)printf(请输入正整数!谢谢合作!n);if(n=0)m=1;elsem=0; /t=n/10; while(n=1) n=n/10; +m; printf(%dn,m);4.编写程序输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。#includeint main(void) /输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 char ch; int char_num=0,kongge_num=0,int_num=0,other_num=0; while(ch=getchar()!=n)/回车键结束输入,并且回车符不计入 if(ch=a&ch=z|ch=a) char_num+; else if(ch= ) kongge_num+; else if(ch=0&ch=9) int_num+; else other_num+; printf(字母= %d,空格= %d,数字= %d,其它= %dn,char_num,kongge_num,int_num,other_num); return 0; 5.编写程序求一个十进制整数是否为回文数。所谓回文数是指从左向右读或从右向左读都是相同的数,也就左右对称的数,如:232、3553、123321等。#include#includeint main()char digits100, i, n;scanf(%s,digits);n = strlen(digits); for(i=0;in/2;i+) if(digitsi!=digitsn-i-1) printf(不是回文数n);return 0; printf(是回文数n);return 0;6.编写程序用两种方法(一种方法是使用三重循环形成100999之间的所有数,另一种方法是使用单重循环直接形成100999之间的所有数)求100999之间的所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。方法一:三重循环#includeint main()int i,j,k,n;printf(parcissus numbers are:);for(i=1;i=9;i+)for(j=0;j=9;j+)for(k=0;k=9;k+)n=i*100+j*10+k;if(n=i*i*i+j*j*j+k*k*k)printf(%5d,n);printf(n);return 0;方法二:单重循环#includeint main()int i,j,k,n;printf(parcissus numbers are:);for(n=100;n1000;n+)i=n/100;j=n/10-i*10;k=n%10;if(n=i*i*i+j*j*j+k*k*k)printf(%5d,n);printf(n);return 0;7.编写程序找出1000之内的所有“完美数(完全数、完备数)”。“完美数”也称为“完数”,它是指一个数恰好等于它的因子之和。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。#includeint main()int m,s,i;for(m=2;m1000;m+)s=0;for(i=1;im;i+)if(m%i)=0)s=s+i;if(s=m)printf(%d,its factors are 1 ,m);for(i=2;im;i+)if(m%i=0)printf(+%3d,i);printf(n);return 0;8.编写程序用穷举法求解我国古代张丘建算经中一道著名的百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,鸡翁、鸡母、鸡雏各几何?#includevoid main()int cocks=0,hens,chicks;while(cocks=20)hens=0;while(hens=33)chicks=100-cocks-hens;if(5.0*cocks+3.0*hens+chicks/3.0=100.0)printf(公鸡%d只,母鸡%d只,小鸡%d只nn,cocks,hens,chicks);hens+;cocks+;9.已知,编写程序输入x的值,求的近似值(要求被舍去的项小于10-6)。#include #include void main() double temp=1,sum=1,b=1.0; int i=1;double x,a=1.0;scanf(%lf,&x); while(fabs(temp)=1e-6) b=b*i;a=a*x; temp=a/b; /定义每一项的内容 sum=sum+temp; i+; printf(e=%lfn,sum);10. 编写程序利用泰勒级数计算sinx的值,要求最后一项的绝对值小于10-5,并计算共求了多少项。#include #include void main() int n=1,count=0; double x,sum,term; printf(please input a number x:); scanf(%lf,&x); sum=x; term=x; while(fabs(term)=1e-6) term=-term*x*x/(n+1)*(n+2);/定义后一项与前一项的关系 sum=sum+term; n=n+2; count+; printf(sin(x)=%f,count=%dn,sum,count);11.编写程序用牛顿迭代法求方程在1.5附近的根。#include #include double F1(double); /原函数 double F2(double); /原函数的一阶导数函数 double Newton(double,double);void main() double x0 = 1.5; double e = pow(10,-5); printf(the result is %lfn,Newton(x0,e);double F1(double x) return 2 * x * x * x - 4 * x * x + 3 * x - 5 ;double F2(double x) return 6 * x * x - 8 * x + 3 ;double Newton(double x0, double e) double x1; do x1 = x0; x0 = x1 - F1(x1) / F2(x1); while (fabs(x1 - x0) e); return x0;12.编写程序用二分法求方程在(-10,10)之间的根。#include #include double function(double x) double f; f=2*x*x*x-4*x*x+3*x-5; return f;void main()double a=-10,b=10,c,fa,fb,fc;fa=function(a);fb=function(b);do c=(a+b)/2.0; fc=function(c); if(fc*fa=1e-6);printf(The root is%lfn,c);13.编写程序将一张面值为100元的人民币等值换成100张5元、1元和5角的零钞,要求每种零钞不少于1张。#include int main() int n5, n1, n05; int count = 0; for (n5=1; n520; n5+) for (n1=1; n1(100-n5); n1+) n05 = 100 - n5 - n1; if (n5*10 + n1*2 + n05) = 200) count+; printf(第%d种 : %d 张五元, %d 张一元, %d 张五角n, count, n5, n1, n05); return 0;14.编写程序验证哥德巴赫猜想(任何一个大于等于6的偶数都可以分解为两个素数之和),验证范围限定为6到2000。#include int main() int i,j,k,l; int ss(int n); for (i=6;i=2000;i+) if (i%2=0) for (j=2;j=(int)(i/2);j+) k=ss(j); l=ss(i-j); if (k=1&l=1) printf(%d + %d = %dn,j,i-j,i); return 0;int ss(int n) int i; for (i=2;i=n;i+) if (n%i=0&n!=i) return 0; if (n=i) return 1; 15.爱因斯坦数学题。有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。编制程序求这条阶梯共有多少阶?#includevoid main()int n=1;while(1)if(n%2=1)&(n%3=2)&(n%5=4)&(n%6=5)&(n%7=0) /判断printf(%dn,n);break;n+;printf(%d%2=%d%dn,n,n/2,n%2); /验算printf(%d%3=%d%dn,n,n/3,n%3);printf(%d%5=%d%dn,n,n/5,n%5);printf(%d%6=%d%dn,n,n/6,n%6);printf(%d%7=%d%dn,n,n/7,n%7);16.三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,从中任取8个球,编写程序求共有多少种不同的颜色搭配?#include void main() int n=0; int a,b,c; for (a=0;a=3;a+) for (b=0;b=3;b+) for (c=0;c=6;c+) if (a+b+c=8) n+; printf(“%dn”,n);练习题6 参考答案一、选择题序号12345678910参考答案DDDAADACBC序号11121314参考答案CDAA二、填空题1下面程序的运行结果是 1 1 2 35 8 13 21 34 552以下程序的输出结果是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- F4-Trp-4-5-6-7-Tetrafluoro-L-tryptophan-生命科学试剂-MCE
- 农发行楚雄彝族自治州禄丰县2025秋招无领导模拟题角色攻略
- 河南郑州电子信息职业技术学院招聘笔试真题2024
- 平车运送法课件
- 2025年辽宁公务员真题
- 2025年物联网技术在智慧农业中的应用与市场前景报告
- 平衡波倒立入门课件
- 农发行唐山市迁安市2025秋招笔试价值观测评题专练及答案
- 农发行石家庄市行唐县2025秋招面试典型题目及参考答案
- 2025年新能源行业企业数字化转型与行业影响力研究报告
- 2025公司应急预案演练计划(5篇)
- 医疗机构医院全员培训制度
- 2025仓库保管员试题及答案
- 生猪养殖场实施方案
- 矛盾纠纷化解培训课件
- 2025年成人高考语文试题及答案
- DB11-T 2103.14-2025 社会单位和重点场所消防安全管理规范 第14部分:电动汽车充电站
- 病毒感染课件
- 涉案财物处置培训
- 等离子切割机使用培训
- 芳香疗法考试试题及答案
评论
0/150
提交评论