中国石油大学C语言程序网络作业题(含大数相加)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1 Hello world.
让我们用C语言向世界问好。
最早的程序基本是这个样子的:
程序一:
#include
void main()
{
printf("Hello world.\n");
}
程序二:
#include
int main()
{
printf("Hello world.\n");
return 0;
}
上面的程序你任意模仿一个,看看是否可以通过?如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。输入:无
输出:Hello world.
#include
int main()
{
printf("Hello world.\n");
}
1.2 Welcome to Beijing.
让我们来练习如何显示多行文字。
输入:无
输出:就是下面的那段文字。
#include
void main()
{printf("Welcome\n");
printf("to\n");
printf("Beijing.\n");
}
1.3 练习最简单的printf和scanf
printf函数和scanf函数是C语言中最常用的函数之一,下面让我们练习一下吧。
输入:整型变量x的值。
输出:输出整型变量x对应的十进制、八进制和十六进制形式。
认真观察-1的八进制和十六进制输出,请想想是为什么。
#include
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
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
int main()
{
printf("****\n");
printf("****\n");
printf("****\n");
printf("****\n");
return 0;
}
要求:按照上面的程序范例,编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。
输入:无。
输出:指定图形。
#include
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
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里。
友情提示:给定的误差值ε越小,计算的精度越高,但是要注意喽,给的精度太高,你的程序会成为死循环。如果出现死循环的情况,可以用
#include
#include
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");