1、 北理工 C 语言答案1 Hello world让我们用 C 语言向世界问好。最早的程序基本是这个样子的:程序一:#include void main()printf(“Hello world.n“);程序二:#include int main()printf(“Hello world.n“);return 0;上面的程序你任意模仿一个,看看是否可以通过?如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。 输入:无输出:Hello world.程序实例 1:#include void main() printf(“Hello world.n“); 结果:Hello world.程序实
2、例 2:#include int main()printf(“Hello world.n“);return 0; 结果:Hello world.1. Welcome to Beijing.让我们来练习如何显示多行文字。输入:无输出:就是下面的那段文字。程序实例 1:#include“stdio.h“ int main() printf(“Welcomen“); printf(“ton“); printf(“Beijing.n“); return 0; 结果:WelcometoBeijing.程序实例 2:#include void main() printf(“WelcomentonBeiji
3、ng.n“); 结果:WelcometoBeijing.1 练习最简单的 printf 和 scanfprintf 函数和 scanf 函数是 C 语言中最常用的函数之一,下面让我们练习一下吧。输入:整型变量 x 的值。输出:输出整型变量 x 对应的十进制、八进制和十六进制形式。认真看看-1 的八进制和十六进制输出,请想想是为什么。程序实例 1:#include“stdio.h“ main() int x; scanf(“%d“, printf(“x=%d,x=%o,x=%xn“,x,x,x); 结果:输入:-1输出: x=-1,x=37777777777,x=ffffffff程序实例 2:#
4、include “stdio.h“ void main() long x; scanf(“%d“, printf(“x=%d,x=%o,x=%0xn“,x,x,x); 结果:输入:292输出:x=292,x=444,x=1241 练习两个整数之间的运算背景:基本练习。输入:接受两个整数,每个整数之间使用空格分隔。例如输入格式为:123 444输出:分别输出进行+、-、*、/、*之后的运行结果。程序实例 1:#include void main() int a,b,c,d,e,f,g; scanf(“%d %d“, printf(“%d+%d=%dn“,a,b,c=a+b); printf(“%
5、d-%d=%dn“,a,b,d=a-b); printf(“%d*%d=%dn“,a,b,e=a*b); printf(“%d/%d=%dn“,a,b,f=a/b); printf(“%d%d=%dn“,a,b,g=a%b); 结果:输入:10 3输出:10+3=1310-3=710*3=3010/3=310%3=1程序实例 2:#include void main() int x1,x2,x3,x4,x5,a,b; scanf(“%d %d“, x1=a+b; x2=a-b; x3=a*b; x4=a/b; x5=a%b; printf(“%d+%d=%dn%d-%d=%dn%d*%d=%d
6、n%d/%d=%dn%d%d=%d“,a,b,x1,a,b,x2,a,b,x3,a,b,x4,a,b,x5); 结果:输入:123 444输出:123+444=567123-444=-321123*444=54612123/444=0123%444=1231 学习打印你的第一个图形背景:我们已经学习了 printf 函数,这里给出了一个小程序,它运行的结果是输出一个由星号(*)组成的 4*4 的正方形。程序如下:#include void main()printf(“*n“);printf(“*n“);printf(“*n“);printf(“*n“);要求:按照上面的程序范例,编写一个小程序
7、,要求输出的是 4 行由*号组成的等腰三角形。输入:无。输出:指定图形。程序实例 1:#include int main( void ) printf( “ *n“ ); printf( “ *n“ ); printf( “ *n“ ); printf( “*n“ ); return 0; 结果:输入:无输出:*程序实例 2:#include“stdio.h“ main() printf(“ *n“); printf(“ *n“); printf(“ *n“); printf(“*n“); 结果:输入:无输出:*1 温度转换(06 秋)背景: 经常出国旅行的驴友都知道,需要时时了解当地的气温状
8、况,但不少国家采用了不同的温度计量单位:有些使用华氏温度标准(F) ,有些使用摄氏温度(C) 。现在,请你根据温度转换公式设计一个温度转换程序,可以进行温度转换。如果输入摄氏温度,显示转换的华氏温度;如果输入华氏温度,显示转换的摄氏温度。温度转换的公式为:F(C95)32 ;C(F32) 59 ;式中 F-华氏温度,C-摄氏温度。输入:第一个数据(1 或 2 )确定转换的类型:华氏转摄氏(1) ;摄氏转华氏(2) ;第二个数据是相应需要转换的温度值。 输出:相应的转换后的温度值(保留小数点后 2 位) 。程序实例 1:#include void main() int a; float x,y;
9、 scanf(“%d%f“, if ( a=1 ) y=(x-32)*5.0/9.0; printf(“The Centigrade is %.2fn“,y); else if(a=2) y=(x*9.0/5.0)+32; printf(“The Fahrenheit is %.2fn“,y); 结果:输入:1 100输出:The Centigrade is 37.78输入:2 -6.67输出:The Fahrenheit is 19.99程序实例 2:#include void main() float C;int a; scanf(“%d %f“, switch (a) case 1: p
10、rintf(“The Centigrade is %.2fn“,(C-32)*5/9);break; case 2: printf(“The Fahrenheit is %.2fn“,(C*9/5)+32);break; default: printf(“errorn“); 结果:输入:1 0输出:The Centigrade is -17.78输入:2 88输出:The Fahrenheit is 190.402 计算圆柱的侧面积及体积如果已知圆柱的底面半径 r ,以及高 h ,则可计算出圆柱的侧面积 s=2rh ,体积 v= r 2 h 。其中 =3.1415926 输入:第一行输入圆柱的
11、底面半径 r第二行输入圆柱的高 h 输出:s=,v= 要求 1. 所有变量都定义为双精度类型2. 结果精确到小数点后两位程序实例 1:#include #include void main() double r,h,s,v,PAI=3.1415926; scanf(“%lfn%lf“, s=2*PAI*r*h; v=PAI*r*r*h; printf(“s=%.2f,v=%.2fn“,s,v); 结果:输入:28输出:s=100.53,v=100.53程序实例 2:#includevoid main()double pi=3.1415926; int r,h; scanf(“%d“, scan
12、f(“%d“, printf(“s=%5.2f,v=%5.2fn“,2*pi*r*h,pi*r*r*h); 输入:510输出:s=314.16,v=785.403 计算时钟的夹角背景: 钟面上的时针和分针之间的夹角总是在 之间 ( 包括 和 ) 。举例来说,在十二点的时候两针之间的夹角为 ,而在六点的时候夹角为 ,在三点的时候为 。本题要解决的是计算 12:00 到 11:59 之间任意一个时间的夹角。 输入:每组测试数据包含两个数字:第一个数字代表小时 ( 大于 0 小于等于 12) ,第二个数字代表分 ( 在区间 0, 59 上 ) 。 输出:对应每组测试数据,用常用格式显示时间以及这个时
13、候时针和分针间的最小夹角,精确到小数点后一位。输出格式如下所示。程序实例 1:#include void main() float x,y,z; scanf(“%f %f“, z=6*y-(30*x+y/2); if (z=180) z=360-z; else z=z; if (y #include main() int x,y; float z; scanf(“%d%d“, z=fabs(30*x-(float)y*11/2); z=z180?360-z:z; if(y0。输入:三角型的 3 条边的长度(int 型) 。输出:等边三角形:equilateral triangle等腰三角形:i
14、soceles triangle不构成三角形:non-triangle一般三角形:triangle程序实例 1:#include void main() int a,b,c; scanf(“%d %d %d“, if(a+bvoid main() int a,b,c; scanf(“%d%d%d“, if(a=b elseif(a+bc else printf(“non-triangle.n“); 结果:输入:1 3 1输出:non-triangle.5 求解一元二次方程初中的时候我们就会求解一元二次方程了,下面让我们来教计算机如何求解。输入 a,b,c ,就一元二次方程 ax+bx+c=0
15、的根。 输入:假设 a,b,c 均 int。输出:要求输出的根为 double 型,保留 6 位小数。程序实例 1:#include “stdio.h“ #include “math.h“ void main() int a,b,c,a2; double x1=0,x2=0,q; scanf(“%d%d%d“, q=b*b-4*a*c; a2=2*a; if(a=0) if(b=0) printf(“Input error!n“); else printf(“x=%.6fn“,-c*1.0/b); else if(q0) printf(“x1=%.6fnx2=%.6fn“,(-b+sqrt(q
16、)/a2,(-b-sqrt(q)/a2); else if(q=0) printf(“x1=x2=%.6fn“,-b*1.0/a2); else if(q#include void main() double a,b,c,d; scanf(“%lf%lf%lf“, d=b*b-4*a*c; if(a=0 else if(a=0) printf(“x=%lfn“,c=0?0:-c/b); else if(d=0) printf(“x1=x2=%.6lfn“,b=0?0:-b/(2*a); else if(d0) printf(“x1=%lfnx2=%lfn“,(-b+sqrt(d)/(2*a),
17、(-b-sqrt(d)/(2*a); else if(b=0) printf(“x1=%lfinx2=-%lfin“,sqrt(-d)/(2*a),sqrt(-d)/(2*a); else printf(“x1=%lf+%lfinx2=%lf-%lfin“,-b/(2*a),sqrt(-d)/(2*a),-b/(2*a),sqrt(-d)/(2*a); 结果: 输入:10 0 0输出:x1=x2=0.000000你会输出一行星号吗?(本题不记分噢)我们才开始上机,现在需要我们用最简单得办法,在一行中输出 N 个星号。输入:N 值输出:一行中 N 个星号。程序实例 1:#includevoid main() int n,i;scanf(“%d“, for(i=1;i=n;i+) printf(“*“);printf(“n“);