丛铭俣 160809324 (作业6)
A组第一题:
#include<stdio.h> int OddSum(int a) { int sum=0; if(a%2) sum=sum+a; return sum; } int main() { int a,b,c,i; printf("请输入数字的总数:"); scanf("%d",&a); printf("请分别输入这些整数\n"); for(i=0;i<a;i++) { scanf("%d",&b); c=OddSum(b); } printf("这些整数中奇数的和为%d\n",c); return 0; }
A组第2题:
#include<stdio.h> double mypow(double x,int n) { double c=1; int i; for(i=1;i<=n;i++) c=c*x; return c; } int main() { double x; int n; printf("请输入x和n的值:"); scanf("%lf %d",&x,&n); mypow(x,n); printf("结果为%.3f\n",mypow(x,n)); return 0; }
A组第三题:
#include<stdio.h> double result; void cylinder(double r,double height) { result=3.14*r*r*height; } int main(void) { double r,height; printf("请输入圆柱体的半径和高度:"); scanf("%lf %lf",&r,&height); cylinder(r,height); printf("%.3f\n",result); return 0; }
#include<stdio.h> double cylinder(double r,double height); int main(void) { double height,r; printf("请输入圆柱体的半径和高度:"); scanf("%lf %lf",&r,&height); printf("体积为%.3f\n",cylinder(r,height)); return 0; } double cylinder(double r,double height) { double result; result=3.14*r*r*height; return result; }
B组:
#include<stdio.h> void jobone() { int a; printf("第一次作业\n"); printf("1.实验1-1:求最大值:\n"); printf("2.实验1-2:求m到n之和:\n"); printf("3.实验1-3:求平均数:\n"); printf("请选择作业:"); scanf("%d",&a); switch(a) { case 1: printf("要求由键盘输入两个整数a和b,程序输出其中较大的数。\n"); break; case 2: printf("要求程序计算并输出m~n(m< n)之间所有整数的和,其中m和n由用户从键盘上输入。\n"); break; case 3: printf("要求从键盘上依次读入5个整数,计算并输出他们的平均数。/n"); break; } } void jobtwo() { int b; printf("第二次作业\n"); printf("1.C语言基本数据类型及其占用的内存空间大小分别是:\n"); printf("2.算数运算符有:\n"); printf("3.关系运算符有:\n"); printf("4.逻辑运算符的优先顺序是:\n"); printf("5.赋值运算符有:\n"); printf("6.char c=132; printf(“%d”,c);\n"); printf("7.int a=-7; printf(“%d”,a>>1);\n"); printf("8.int a=7;int b=8; printf(“%d”,a&b);\n"); printf("9.int a=7;int b=8; printf(“%d”,a^b);\n"); printf("请选择作业:"); scanf("%d",&b); switch(b) { case 1: printf("有符号整形int:4字节;有符号短整形short int:2字节;有符号长整形long int :4字节;无符号整形unsigned int:4字节;无符号短整型unsigned short int :2字节;无符号长整形unsigned long int:4字节;字符型char :1字节;单精度浮点型float:4字节;双精度浮点型double:8字节。\n"); break; case 2: printf("+-*/% ++ --\n"); break; case 4: printf("! && ||/n"); break; case 5: printf("= += -= *= /= %= /n"); break; case 6: printf("这个代码的结果是-124,原因是 char的范围是-128~127,而输入的是132,132是由128和4组成,所以应该是1000 0100,第一位是1,所以计算机识别出来的是负数,1000 0100取反对应的是0111 1011,然后再进一位,为0111,1100。所以最后的结果为-124./n"); break; case 7: printf("11111111 11111111 11111111 11111001/n"); break; case 8: printf("00000000 00000000 00000000 00000000/n"); break; case 9: printf("00000000 00000000 00000000 00001111 /n"); break; } } void jobthree() { int c; printf("第三次作业\n"); printf("1.编程打印10行的三角形,要求每行显示的*号个数等于行数;\n"); printf("2.编程打印10行*号,每行打印10个*号\n"); printf("3.编程打印10行的倒三角形,第一行打印10个*,……第10行打印1个*\n"); printf("4.输入五级制成绩(A~E),输出相应的百分制成绩(0~100)区间,要求使用switch语句。例如,输入A,输出90~100。五级制成绩对应的百分制成绩区间为:A(90~100),B(80~89),C(70~79),D(60~69)和E(0~59)。\n"); printf("5.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。计算公式:C=5×(F?32)/9C = 5\times (F-32)/9C=5×(F?32)/9,式中:CCC表示摄氏温度,FFF表示华氏温度,输出数据要求为整型。\n"); printf("6. 一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒.\n"); printf("7. 本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。\n"); printf("请选择作业:"); scanf("%d",&c); switch(c) { case 1: printf("略\n"); break; case 2: printf("略\n"); break; case 4: printf("略"); break; case 5: printf("略/n"); break; case 6: printf("略/n"); break; case 7: printf("略/n"); break; } } void jobfour() { int d; printf("第四次作业\n"); printf("1.猜数字游戏\n"); printf("2.从键盘上输入2个正整数,输出这两个数的最大公约数和最小公倍数。\n"); printf("请选择作业:"); scanf("%d",&d); switch(d) { case 1: printf("略\n"); break; case 2: printf("略\n"); break; } } void jobfive() { int e; printf("第五次作业\n"); printf("1.书上第3章课后题中的5道编程题。\n"); printf("2.利用双重循环打印三角形\n"); switch(e) { case 1: printf("略\n"); break; case 2: printf("略\n"); break; } } void start() { int i; printf("欢迎进入作业管理系统\n"); printf("可以查询以下作业内容:\n"); printf("1.第一次作业\n"); printf("2.第二次作业\n"); printf("3.第三次作业\n"); printf("4.第四次作业\n"); printf("5.第五次作业\n"); printf("请选择:"); scanf("%d",&i); switch(i) { case 1: jobone(); break; case 2: jobtwo(); break; case 3: jobthree(); break; case 4: jobfour(); break; case 5: jobfive(); break; default: printf("输入有误!"); } } int main() { start(); return 0; }
总结:这次作业用的方法好像就是把int main 函数置后了,我也不知道这是什么意思,而且做完这些题,还是没有完全掌握这种方法,另外,B组作业管理这道题,每道题额答案没办法打进去,全是代码,难道要把代码打进代码里吗,太乱了我觉得,主要是这种方法的框架学会了,所以一些答案我写的略,实在是不可能打进去,至少对我们现在来说非常困难和复杂。C语言还需要学的东西很多,时不时多多复习之前做的题目加深印象,还是加油!