您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > 中国石油大学C语言试题及答案
1.1Helloworld.让我们用C语言向世界问好。最早的程序基本是这个样子的:程序一:#includestdio.hvoidmain(){printf(Helloworld.\n);}程序二:#includestdio.hintmain(){printf(Helloworld.\n);return0;}上面的程序你任意模仿一个,看看是否可以通过?如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。输入:无输出:Helloworld.#includestdio.hintmain(){printf(Helloworld.\n);}1.2WelcometoBeijing.让我们来练习如何显示多行文字。输入:无输出:就是下面的那段文字。#includestdio.hvoidmain(){printf(Welcome\n);printf(to\n);printf(Beijing.\n);}1.3练习最简单的printf和scanfprintf函数和scanf函数是C语言中最常用的函数之一,下面让我们练习一下吧。输入:整型变量x的值。输出:输出整型变量x对应的十进制、八进制和十六进制形式。认真观察-1的八进制和十六进制输出,请想想是为什么。#includestdio.hintmain(){intx;scanf(%d,&x);printf(x=%d,,x);printf(x=%o,,x);printf(x=%x\n,x);return0;}1.4练习两个整数之间的运算背景:基本练习。输入:接受两个整数,每个整数之间使用空格分隔。例如输入格式为:123444输出:分别输出进行+、-、*、/、*之后的运行结果。#includestdio.hintmain(){intx,y;scanf(%d%d,&x,&y);printf(%d+%d=%d\n,x,y,x+y);printf(%d-%d=%d\n,x,y,x-y);printf(%d*%d=%d\n,x,y,x*y);printf(%d/%d=%d\n,x,y,x/y);printf(%d%%%d=%d\n,x,y,x%y);return0;}1.5学习打印你的第一个图形背景:我们已经学习了printf函数,这里给出了一个小程序,它运行的结果是输出一个由星号(*)组成的4*4的正方形。程序如下:#includestdio.hintmain(){printf(****\n);printf(****\n);printf(****\n);printf(****\n);return0;}要求:按照上面的程序范例,编写一个小程序,要求输出的是4行由*号组成的等腰三角形。输入:无。输出:指定图形。#includestdio.hintmain(){printf(*\n);printf(***\n);printf(*****\n);printf(*******\n);return0;}2.1整型数的表示范围编写一个循环程序,输入N值,输出N的阶乘。关于循环程序怎么编写,可以参考教材第3章P66页的例题4.2和第5章P82的例题5.1的内容。注意整型数的表示范围,如果当输入的N比较大时,例如N等于20时,输出怎么是负数了?自己想明白吧!#includestdio.hvoidmain(){intN,i;intsum=1;N=2;scanf(%d,&N);if(N=16){for(i=1;i=N;i++)sum=sum*i;printf(%d\n,sum);}if(N=17)printf(Nistoobig!\n);}2.2求正弦函数值已知求正弦sin(x)的近似值的多项式公式为:sin(x)=x-x3/3!+x5/5!-x7/7!+……+(-1)nx2n+1/(2n+1)!+…编写程序,要求输入x(单位是弧度)和ε,按上述公式计算sin(x)的近似值,要求计算的误差小于给定的ε。此题当然要用到循环语句,到第5章去找个猫来照着画吧,循环的终止条件就是本次计算出来的正弦函数值和上次计算的值的差小于给定的ε。求两个值的差时,要求出其绝对值,使用库函数fabs(),头文件在math.h里。友情提示:给定的误差值ε越小,计算的精度越高,但是要注意喽,给的精度太高,你的程序会成为死循环。如果出现死循环的情况,可以用Ctrl+Break键退出程序。#includestdio.h#includemath.hintmain(){floatx,eps,s,y=0,y0,t;intn,j;scanf(%f%f,&x,&eps);n=t=j=1;s=x;do{y0=y;if(n%2==0)y=y-s/t;elsey=y+s/t;s*=x*x;t*=(j+1)*(j+2);j+=2;n++;}while(fabs(y0-y)eps);printf(%f\n,sin(x));system(PAUSE);return0;}2.3判断输入的字符的类型我们将字符分为五类:大写字母、小写字母、数字、控制字符、其他字符。编写程序,从键盘输入一个字符,输出字符所属的类型:大写字母时输出capitalletters,小写字母时输出smallletters,数字是输出figures,其他字符时输出others。#includestdio.hvoidmain(){charc;c=getchar();if(c0x20)printf(Thecharacterisacontrolcharacter\n);elseif(c='0'&&c='9')printf(figures\n);elseif(c='A'&&c='Z')printf(capitalletters\n);elseif(c='a'&&c='z')printf(smallletters\n);elseprintf(others\n);}3.1找零钱假定有5角、1角、5分、2分和1分共5种硬币,在给顾客找硬币时,一般都会尽可能地选用硬币个数最小的方法。例如,当要给某顾客找7角2分钱时,会给他一个5角,2个1角和1个2分的硬币。试编写一个程序,输入的是要找给顾客的零钱(以分为单位),输出的是应该找回的各种硬币数目,并保证找回的硬币数最少。#includestdio.hintmain(){intx1,x2,x3,x4,x5;intx;scanf(%d,&x);x1=x/50;x2=x%50/10;x3=x%50%10/5;x4=x%50%10%5/2;x5=x%50%10%5%2/1;printf(%d\n,x1);printf(%d\n,x2);printf(%d\n,x3);printf(%d\n,x4);printf(%d\n,x5);return0;}3.2计算时钟的夹角背景:钟面上的时针和分针之间的夹角总是在0度~359度之间。举例来说,在十二点的时候两针之间的夹角为0度,而在六点的时候夹角为180度,在三点的时候为90度。本题要解决的是计算0:00到12:00之间任意一个时间的夹角。输入:每组测试数据包含两个数字:第一个数字代表小时(大于等于0小于12),第二个数字代表分(在区间[0,59]上)。输出:对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。友情提示:以表中心到12点的连线为基准,分针每走1分钟是6度,时针与基准的夹角每个小时也是30度,从整点开始,每过1分钟时针再增加0.5度。提示:时钟夹角计算公式|5.5m-30h|,h为时针,m为分针。求浮点型绝对值的函数为fabs,需要包含math.h头文件#includestdio.h#includemath.hintmain(){inth,m;doubleangle;scanf(%d%d,&h,&m);angle=fabs(5.5*m-30*h);if(angle180)angle=360-angle;printf(At%d:%02dtheangleis%.1fdegrees.\n,h,m,angle);}3.3照猫画猫:计算圆柱的侧面积及体积如果已知圆柱的底面半径r,以及高h,则可计算出圆柱的侧面积s=2πrh,体积v=πr2h。其中π=3.1415926输入第一行输入圆柱的底面半径r第二行输入圆柱的高h输出s=圆柱的侧面积,v=圆柱的体积要求1.所有变量都定义为双精度类型2.结果精确到小数点后两位#includestdio.h#definen3.1415926intmain(){floatr,h,s,v;printf;scanf(%f%f,&r,&h);s=2*n*r*h;v=n*r*r*h;printf(s=%6.2f,v=%6.2f\n,s,v);}3.4分离整数任意从键盘上输入一个三位正整数,要求正确地分离出它的个位、十位和百位,并分别在屏幕上输出。比如输入的三位正整数#includestdio.hintmain(){intx,hundreds,tens,units;printf;scanf(%d,&x);hundreds=x/100;tens=x%100/10;units=x%100%10;printf(units=%d,tens=%d,hundreds=%d\n,units,tens,hundreds);}3.5鸡兔同笼已知笼中有头h个,有脚f条,问笼中鸡兔各有多少只?输入:头和脚的数目输出:兔子和鸡的数目(输出语句为:printf(rabbit=%d,chicken=%d,rabbit,chicken);)Sample输入:1020输出:rabbit=0,chicken=10#includestdio.hintmain(){intchicken,rabbit,f,h;scanf(%d%d,&h,&f);rabbit=(f-2*h)/2;chicken=(4*h-f)/2;printf(rabbit=%d,chicken=%d\n,rabbit,chicken);}4.1温度转换背景:经常出国旅行的驴友都知道,需要时时了解当地的气温状况,但不少国家采用了不同的温度计量单位:有些使用华氏温度标准(F),有些使用摄氏温度(C)。现在,请你根据温度转换公式设计一个温度转换程序,可以进行温度转换。如果输入摄氏温度,显示转换的华氏温度;如果输入华氏温度,显示转换的摄氏温度。温度转换的公式为:F=(C×9/5)+32;C=(F-32)×5/9;式中F--华氏温度,C--摄氏温度。输入:第一个数据(1或2)确定转换的类型:华氏转摄氏(1);摄氏转华氏(2);第二个数据是相应需要转换的温度值。输出:相应的转换后的温度值(保留小数点后2位)。#includestdio.hvoidmain(){intlx;doublef,c;scanf(%d,&lx);if(lx==1){scanf(%lf,&f);c=(f-32)*5/9;printf(TheCentigradeis%.2f\n,c);}else{scanf(%lf,&c);f=(c*9/5)+32;printf(TheFahrenheitis%.2f\n,f);}}4.2分段函数有一分段函数,y=f(x)。当x小于6时,y=x-12;当x大于等于6且小于15时,y=3x-1;当x大于等于15时,y=5x+9.从键盘上输入一个整数x,输出对应的y值。#includestdio.hvoidmain(){intx,y;scanf(%d,&x);if(x6)y=x-12;elseif(x15)y=3*x-1;elsey=5*x+9;printf(%d\n,y);return0;}4.3整数位数判断输入一个不多于5位的正整数,要求:(1)求它是几位数;(2)逆序打印出各位数字。#includestdio.h#includestdlib.h#defineSIZE5intmain(void){intbit_count;//位数l
本文标题:中国石油大学C语言试题及答案
链接地址:https://www.777doc.com/doc-4382759 .html