电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

中国大学MOOC哈工大C语言程序设计精髓第六十二周编程题答案.doc

44页
  • 卖家[上传人]:枫**
  • 文档编号:553049110
  • 上传时间:2023-01-26
  • 文档格式:DOC
  • 文档大小:105.28KB
  • / 44 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 6.1 下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出目前程序存在错误,请将其修改正确并按照下面给出的运行示例检查程序include#include int main(){ char score[100]; int flag = 0, i, s; char grade; printf("Please input score:\n"); while (1) { flag=0; scanf("%s", score); for (i = 0; i < strlen(score); i++) { if (score[i] >= '0' && score[i] <= '9') { continue; } else { flag = 1; break; } } s = atoi(score); if (s < 0 || s > 100 || flag == 1) { printf("Input error!\n"); printf("Please input score:\n"); continue; } else{ break; } } s = atoi(score); if (s >= 90) { grade = 'A'; } else if (s >= 80) { grade = 'B'; } else if (s >= 70) { grade = 'C'; } else if (s >= 60) { grade = 'D'; } else { grade = 'E'; } printf("grade: %c\n", grade); return 0;}6.2 编程计算a+aa+aaa+…+aa…a(n个a)的值(4分)题目内容:编程计算 a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。

      例如,当n=4,a=2,表示计算2+22+222+2222的值include#includeint main(){ int n,a,i,j; double p=0,q=0; printf("Input a,n:\n"); scanf( "%d,%d",&a,&n); for(i=1;i<=n;i++) { for(j=0,p=0;j

      5分)题目内容:从键盘输入一个年份和月份,输出该月有多少天(考虑闰年),用switch语句编程include int main(){int year,month,day;printf("Input year,month:\n");scanf("%d,%d",&year,&month);switch(month){case 1: day=31;break;case 2: day=28;break;case 3: day=31;break;case 4: day=30;break;case 5: day=31;break;case 6: day=30;break;case 7: day=31;break;case 8: day=31;break;case 9: day=30;break;case 10: day=31;break;case 11: day=30;break;case 12: day=31;break;default:day=-1;printf("Input error!\n");}if((year%4==0&&year%100!=0||year%400==0)&&month==2) day=29;if (day!=-1)printf("%d days\n",day);return 0;}7.1递归法计算游戏人员的年龄(4分)题目内容:有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第n-1个人,他说比第n-2个人大2岁,.....,问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。

      第1个人说自己10岁,问第n个人多大年纪递归函数原型:unsigned int ComputeAge(unsigned int n);提示:计算年龄的递归公式为:#include unsigned int ComputeAge(unsigned int n){}main(){ int i, j, k, s = 23, n, c, age; scanf("%d", &n); printf("The person's age is %u\n",8+2*n);}7.2递归法计算两个数的最大公约数(4分)题目内容:利用最大公约数的性质计算对正整数a和b,当a>b时,若a中含有与b相同的公约数,则a中去掉b后剩余的部分a-b中也应含有与b相同的公约数,对a-b和b计算公约数就相当于对a和b计算公约数反复使用最大公约数的上述性质,直到a和b相等为止,这时,a或b就是它们的最大公约数这三条性质,也可以表示为: 性质1  如果a>b,则a和b与a-b和b的最大公约数相同,即Gcd(a, b) = Gcd(a-b, b)性质2  如果b>a,则a和b与a和b-a的最大公约数相同,即Gcd(a, b) = Gcd(a, b-a)性质3  如果a=b,则a和b的最大公约数与a值和b值相同,即Gcd(a, b) = a = b #include int gys(int a,int b){ int r; r=a%b; if(r==0) return b; else return gys(b,r);}main(){ printf("Input a,b:"); int a,b; scanf("%d,%d", &a,&b); if (a<=0 || b<=0){ printf("Input error!\n"); } else printf("%d\n",gys(a,b));}7.3 寻找中位数v1.0(4分)题目内容:编写一个函数返回三个整数中的中间数。

      函数原型为: int mid(int a, int b, int c); 函数功能是返回a,b,c三数中大小位于中间的那个数输入格式: "%d%d%d"输出格式:"The result is %d\n"输入样例1:12 6 18↙输出样例1:The_result_is_12输入样例2:-9 7 -2↙输出样例2:The_result_is_-2注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!(注意:在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格include int median(int a, int b, int c){ if(aa){return a;}//c>a>b else{return c>b? c: b;}//a>c>b: a>b>c }}main(){ int a,b,c; scanf("%d%d%d", &a,&b,&c); printf("The result is %d\n",median (a,b,c));}7.4还原算术表达式(4分)题目内容:编写程序求以下算式中XYZ的值,其中两数XYZ与YZZ相加的和n(99

      程序运行结果示例1:Input n(n<1000):532↙X=3,Y=2,Z=1程序运行结果示例2:Input n(n<1000):977↙Invalid输入提示:"Input n(n<1000):\n"输入格式: "%d" 输出格式:"X=%d,Y=%d,Z=%d\n"计算不成功(无解)的输出提示:"Invalid\n"注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! #include main(){ printf("Input n(n<1000):\n"); int a,b,c,n,s,x,y,z,flag=0; scanf("%d", &n); for (x=1;x<=9;x++){ for (y=1;y<=9;y++){ for (z=0;z<=9;z++){ if (x*100+y*10+z+y*100+z*11 == n){ flag=1; a=x,b=y,c=z; break; } } } } if (flag) printf("X=%d,Y=%d,Z=%d\n",a,b,c); else printf("Invalid\n");}8.1矩阵转置v1.0(4分)题目内容:用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵。

      其中,n的值不超过10,n的。

      点击阅读更多内容
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.