中国石油大学c语言上机题答案大全(2013版)
最全最详细
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++)
c语言程序分析题及答案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;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论