C语言及实验作业参考做法
分支程序设计
上机作业: 标题 描述 输入数据 输出数据 输入示例 输出示例 4.3三角形判断 输入三条边的长,输出这三条边是否构成等边三角形、等腰三角形、直角三角形、普通三角形,还是不能构成三角形 整数a,b,c的值 等边三角形、等腰三角形、直角三角形、普通三角形,或不能构成三角形 5 5 5 等边三角形 #include int main( ) { int a,b,c; scanf(\ if(a==b&&b==c) printf(\else if(a+b>c&&a+c>b&&b+c>a) if(a==b||b==c||a==c) printf(\ else if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b) printf(\ else printf(\ else printf(\ return 0; } 标题 描述 输入数据 输出数据 输入示例 输出示例 4.5计算函数的值 整数x的值 一个整数表示函数的值 5 y=9 当x<1时,y=x 当1≤x<10时,y=2x-1 当x≥10时,y=3x-11 #include int main() { int x,y; scanf(\ if(x<1) y=x; else if(x<10) y=2*x-1; else y=3*x-11; printf(\ return 0; } 标题 描述 输入数据 输出数据 输入示例 输出示例 提示 4.6 数的分离 给一个不多于3位的正整数 (1)计算它是几位数 (2)分别打印出每一位数字 (3)逆序打印出各位数字 一个不多于3位的正整数 位数 从高位到低位的各位数字 从低位到高位的各位数字 456 3 4 5 6 6 5 4 123/100= 23/10= 123= 测试数据1: 678 3 6 7 8 8 7 6 测试数据2: 45 2 4 5 5 4 测试数据3: 8 1 8 8 #include int main( ) {int p,t,s; int i,bit; //printf(\scanf(\ gewei=p; //个位 shiwei=p/10; //十位 baiwei=p/100; //百位 if(baiwei) //如果是3位数 {printf(\ printf(\ } else if(shiwei) //如果是2位数 {printf(\ printf(\ } else printf(\是1位数 return 0; } 标题 描述 4.7输出等级分(用if语言实现) 输入一个百分制成绩,输出对应的等级分 90-100 为 A 80-89 为 B 70-79 为 C 60-69 为 D 0-59 为 E 输入数据 一个整数 输出数据 一个大写字符 输入示例 95 输出示例 A 标题 描述 4.8 计算建筑高度 有4个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1。这4个塔的高度为10m,塔以外无建筑物。 输入任一点的坐标,求该点的建筑高度(塔外高度为0)。 输入数据 以(x,y)形式作为点的坐标输入 输出数据 输出高度 输入示例 (3,1) 输出示例 10 提示 注意输入坐标的格式,括号为半角符号 输入: (0.5,0.7) 输出:0 输入: (2.1,2.3) 输出:10 输入: (-2,-1) 输出:10 输入: (-3,2) 输出:10 #include main( ) {int x1=2,y1=2; float x,y; printf(\ x=fabs(x); y=fabs(y); if((x-x1)*(x-x1)+(y-y1)*(y-y1)<=1) printf(\ else printf(\return 0; } 标题 描述 4.9输出等级分(用switch语言实现) 输入一个百分制成绩,输出对应的等级分 90-100 为 A 80-89 为 B 70-79 为 C 60-69 为 D 0-59 为 E 输入数据 一个整数 输出数据 一个大写字符 输入示例 86 输出示例 B #include int main( ) {int score; char grade; printf(\ switch(score/10) {case 10: case 9: grade='A'; break; case 8: grade='B'; break; case 7: grade='C'; break; case 6: grade='D'; break; case 5: case 4: case 3: case 2: case 1: case 0: grade='E'; break; } printf(\ return 0; } 笔头作业: 1.输入4个整数,按从小到大的顺序输出
2.根据月份判断季节。输入月份,输出春/夏/秋/冬。要求用switch语言实现 3.学生学习两门课:必修课成绩为course1,选修课成绩为course2,若两门都及格,打印pass,必修课不及格,打印fail
4.从键盘输入一个年份,判该年是否是闰年,是闰年就输出yes,否则输出no
5.从键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。 6.商店卖西瓜,10斤以上每斤0.8元, 8斤以上每斤0.6元, 6斤以上每斤0.4元,4斤以上每斤0.3元, 4斤以下每斤0.15元,输入西瓜重量和所付的钱数,输出应付的货款和应找的钱数
循环程序设计
上机作业: 标题 描述 5.2 统计一行字符中各类字符的个数 输入一行字符,统计其中英文字母、空格、数字和其他字符的个数 输入数据 一行以回车结束的字符 输出数据 四个分别表示英文字母、空格、数字和其他字符的个数的整数 输入示例 123 abcd****ABCD 输出示例 8 2 3 4 #include \main() {int num0=0,numa=0,num=0,other=0;char ch; //num0:0-9; numa:alpha; num:space; scanf(\ while (ch!='\\n') { if (ch>='0'&&ch<='9') num0++; else if (ch>='a'&&ch<='z'||ch>='A'&&ch<='Z') numa++; else if (ch==' ') num++; else other++; scanf(\ } printf(\return 0; } 标题 描述 5.3 计算aaaaa 计算S(n)=a+aa+aaa+...... 其中a是一个数字 输入数据 两个分别表示a和n的整数 输出数据 一个表示S(n)的整数 输入示例 3 5 输出示例 37035 提示 2*10+2= 22*10+2= #include int main() {int a,n,i; long all=0,t; scanf(\ t=a; for (i=1; i<=n; i++) {all=all+t; t=t*10+a; } printf(\ return 0; } 标题 描述 5.6 找出1000以内的所有完数 一个数等于它的所有因子之和,这个数就称为\完数\找出1000以内的所有完数 输入数据 无 输出数据 完数及它的所有因子(用逗号格开) 输入示例 无 输出示例 6 its factor are 1,2,3 28 its factor are 1,2,4,7,14 496 its factor are 1,2,4,8,16,31,62,124,248 #include \main() {int a,b,k,s; for (k=2; k<1000; k++) {//判断k是否是完数 s=0; for (a=1; a<=k/2; a++) if (k%a==0) s+=a; //计算k的因子之和 if (s==k) //k是完数 {printf(\ for (a=2; a<=k/2; a++) if (k%a==0) printf(\输出所有因子 printf(\ } } }