中国石油大学华东数学硕士调剂A类B类【一】:中国石油大学(华东)C语言习题答案
C语言复习题
【设计型】5.1 输出一行星号
编写程序在一行中输出 N 个星号。
输入: N值
输出: 一行中N个星号
#include<stdio.h>
int main()
{
int a,i;
scanf("%d",&a);
for(i=1;i<=a;i++)
printf("*");
printf("\n");
return 0;
}
【设计型】5.2 打印平行四边形
输入图形的高 n ,输出如下例( n=5 )所示的图形 .
*****
*****
*****
*****
*****
输入:
整数n例如 5
输出:
由*组成的高为5的平行四边形
#include<stdio.h>
int main()
{
int i,j,num;
scanf("%d",&num);
for(i=0;i<num;i++)
{
for(j=0;j<num;j++)
printf("*");
printf("\n");
}
return 0;
}
【设计型】5.3 编程计算
编写程序,输入n的值,求 :1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n (保留四位小数)
#include<stdio.h>
int main()
{
double n,i,sum,k=1.0;
scanf("%lf",&n);
i=1,sum=0;
while(i<=n)
{
sum=sum+k/i;
i++;
k=-k;(用这个式子实现正负交替)
}
printf("sum=%.4lf\n",sum);
return 0;
}
【设计型】5.4 分数序列 有一个分数序列:
求出其前n项的和。 ...............,输入整数n,
输出语句格式为:printf("sum=%16.10f\n",s);
#include<stdio.h>
int main()
{
int n,a,b,i,temp;
double sum;
scanf("%d",&n);
i=1,sum=0,a=2,b=1;
while(i<=n)
{
sum=sum+a*1.0/b;
temp=a;
a=a+b;
b=temp;(几个式子实现数值的变换)
i++;中国石油大学华东数学硕士调剂A类B类。
}
printf("sum=%16.10f\n",sum);
return 0;
}
【设计型】5.5 求e的值
编写程序,从键盘输入整数 n , 求 e 的值 . e=1+1/1!+1/2!+1/3!+..+1/n! 注意:用 double 型数据计算输出语句:printf("sum=%16.10f\n",sum); #include<stdio.h>
int main()
{
int n,i;
double sum,jc;
scanf("%d",&n);
i=1,sum=1.0 jc=1.0;
while(i<=n)
{
jc=jc*i;
sum=sum+1.0/jc;
i++;
}
printf("sum=%16.10f\n",sum);
return 0;
}
【设计型】5.6 最大公约数
输入两个正整数m和n,求它们的最大公约数和最小公倍数
比如,输入m和n的值分别为14和21,则最大公约数为7,最小公倍数为42。 #include<stdio.h>
int main()
{
int yu,m,n,temp,bei,ji;
scanf("%d%d",&m,&n);
if(m<n)
temp=m,m=n,n=temp;
ji=m*n;
yu=m%n;
while(yu!=0)
{
m=n;
n=yu;
yu=m%n;
} (最小公约数求法)中国石油大学华东数学硕士调剂A类B类。
bei=ji/n;(最小公倍数求法)
printf("the greatest common divisor is %d\n",n);
中国石油大学华东数学硕士调剂A类B类【二】:中国石油大学华东C语言网络作业上机题(含大数相加)
1.1 Hello world.
让我们用C语言向世界问好。 最早的程序基本是这个样子的: 程序一:
#include <stdio.h> void main() {
printf("Hello world.\n"); } 程序二: #include <stdio.h> int main()
{
printf("Hello world.\n"); return 0; }
上面的程序你任意模仿一个,看看是否可以通过?如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。 输入:无
输出:Hello world.
#include<stdio.h> int main() {
printf("Hello world.\n"); }
1.2 Welcome to Beijing.
让我们来练习如何显示多行文字。 输入:无
输出:就是下面的那段文字。 #include<stdio.h> void main()
{printf("Welcome\n"); printf("to\n"); printf("Beijing.\n"); }
1.3 练习最简单的printf和scanf
printf函数和scanf函数是C语言中最常用的函数之一,下面让我们练习一下吧。
输入:整型变量x的值。
输出:输出整型变量x对应的十进制、八进制和十六进制形式。
认真观察-1的八进制和十六进制输出,请想想是为什么。
#include <stdio.h> int main() {int x;
scanf("%d",&x); printf("x=%d,",x); printf("x=%o,",x); printf("x=%x\n",x); return 0; }
1.4 练习两个整数之间的运算 背景:基本练习。
输入:接受两个整数,每个整数之间使用空格分隔。例如输入格式为:123 444
输出:分别输出进行+、-、*、/、*之后的运行结果。 #include<stdio.h> int main()
{int x,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); return 0; }
1.5 学习打印你的第一个图形
背景:我们已经学习了printf函数,这里给出了一个小程序,它运行的结果是输出一个由星号(*)组成的4*4的正方形。 程序如下: #include <stdio.h> int main()
{
printf("****\n"); printf("****\n"); printf("****\n"); printf("****\n"); return 0; }
要求:按照上面的程序范例,编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。 输入:无。
输出:指定图形。 #include <stdio.h>
int main()
{
printf(" *\n"); printf(" ***\n"); printf(" *****\n"); printf("*******\n"); return 0; }
2.1 整型数的表示范围
编写一个循环程序,输入 N 值,输出 N 的阶乘。关于循环程序怎么编写,可以参考教材第3章P66页的例题4.2和第5章P82的例题5.1的内容。注意整型数的表示范围,如果当输入的 N 比较大时,例如 N 等于 20 时,输出怎么是负数了?自己想明白吧!
#include<stdio.h> void main() {int N,i; int sum=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("N is too big!\n"); }
2.2 求正弦函数值
已知求正弦 sin(x) 的近似值的多项式公式为: sin(x) = x - x3/3! + x5/5! - x7/7!+ …… + (-1)n x2n+1/(2n+1)! + …
编写程序,要求输入 x (单位是弧度)和ε,按上述公式计算 sin(x) 的近似值,要求计算的误差小于给定的ε。
此题当然要用到循环语句,到第5章去找个猫来照着画吧,循环的终止条件就是本次计算出来的正弦函数值和上次计算的值的差小于给定的ε。求两个值的差时,要求出其绝对值,使用库函数fabs(),头文件在math.h里。
友情提示:给定的误差值ε越小,计算的精度越高,但是要注意喽,给的精度太高,你的程序会成为死循环。如果出现死循环的情况,可以用
<Ctrl>+<Break>键退出程序。 #include <stdio.h> #include <math.h> int main()
{ float x,eps,s,y=0,y0,t; int n,j;
scanf("%f%f",&x,&eps); n=t=j=1; s=x; do { y0=y;
if (n%2==0) y=y-s/t; else y=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"); return 0;
}
2.3 判断输入的字符的类型
我们将字符分为五类:大写字母、小写字母、数字、控制字符、其他字符。
编写程序,从键盘输入一个字符,输出字符所属的类型:大写字母时输出capital letters, 小写字母时输出small letters,数字是输出figures,其他字符时输出 others。 #include<stdio.h> void main() {
char c;
c = getchar ( );
if (c < 0x20)
printf ("The character is a control character\n");
else if (c >= '0' && c <= '9')
printf ("figures\n"); else if (c >= 'A' && c <= 'Z')
printf ("capital letters\n"); else if (c >= 'a' && c <= 'z')
printf ("small letters\n"); else
printf ("others\n");
}
3.1 找零钱
假定有 5 角、 1 角、 5 分、 2 分和 1 分共 5 种硬币,在 给顾客找硬币时,一般都会尽可能地选用硬币个数最小的方法。 例如,当要给某顾客找 7 角 2 分钱时,会给他一个 5 角, 2 个 1 角 和 1 个 2 分的硬币。试编写一个程序,输入的是要找给顾客的零 钱(以分为单位),输出的是应该找回的各种硬币数目,并保 证找回的硬币数最少。
#include <stdio.h> int main() {
int x1,x2,x3,x4,x5; int x;
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); return 0; }
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头文件 #include "stdio.h" #include "math.h" int main() {
int h,m;
double angle;
scanf("%d%d",&h,&m); angle=fabs(5.5*m-30*h); if(angle>180)
angle=360-angle;
printf("At %d:%02d the angle is
%.1f
degrees.\n",h,m,angle); }
3.3 照猫画猫:计算圆柱的侧面积及体积
如果已知圆柱的底面半径 r ,以及高 h ,则可计算出圆柱的侧面积 s=2πrh ,体积 v=π r 2 h 。其中 π=3.1415926
输入 第一行输入圆柱的底面半径 r
第二行输入圆柱的高 h
输出 s=< 圆柱的侧面积 >,v=< 圆柱的体积 > 要求 1. 所有变量都定义为双精度类型 2. 结果精确到小数点后两位 #include "stdio.h" #define n 3.1415926 int main() {
float r,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 分离整数
任意从键盘上输入一个三位正整数,要求正确地分离出它的个位、十位和百位,并分别在屏幕上输出。
比如输入的三位正整数 #include "stdio.h" int main() {
int x,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",unit
void main() {
int lx;
double f,c;
scanf("%d",&lx); if(lx==1){
scanf("%lf",&f);
c=(f-32)*5/9;
printf("The Centigrade is %.2f\n",c); } else{
scanf("%lf",&c);
f=(c*9/5)+32;
printf("The Fahrenheit is %.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值。 #include <stdio.h> void main() { int x,y;
scanf("%d",&x); if(x<6) y=x-12; else if(x<15) y=3*x-1; else y=5*x+9; printf("%d\n",y); return 0;
s,tens,hundreds); }
3.5 鸡兔同笼
已知笼中有头h个,有脚f条,问笼中鸡兔各有多少只?
输入:头和脚的数目
输出:兔子和鸡的数目(输出语句为:printf("rabbit=%d,chicken=%d",rabbit,chicken);) Sample
输入:10 20
输出:rabbit=0,chicken=10 #include "stdio.h" int main() { );
int chicken,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 温度转换
背景: 经常出国旅行的驴友都知道,需要时时了解当地的气温状况,但不少国家采用了不同的温度计量单位:
http://m.zhuodaoren.com/yuwen585397/
推荐访问:中国石油大学华东主页