C语言程序设计下mooc答案

合集下载

《C语言程序设计》课后习题参考答案 李勃 邱晓红 主编 清华大学出版社

《C语言程序设计》课后习题参考答案  李勃   邱晓红  主编 清华大学出版社

《C语言程序设计》课后习题参考答案第1章C语言及程序设计概述1.单选题(1)A (2)B (3)A (4)B (5)C2.填空题(1)//,/*…*/(2)scanf()(3)printf()3.判断题(1)对(2)错(3)错(4)对第二章:数据类型运算符与表达式1.单选题(1)C (2)D (3)C (4)B (5)C (6)A (7)B (8)D (9)A(8)D(9)A(10)B(11)C(12)C(13)D(15)B(16)C(17)A(18)A(19)B(20)C(21)C(22)D(23)C(24)A(25)D(26)B(27)C(28)B(29)B(30)A2.填空题(1)sqrt(pow(y,x)+log10(y)) (2)36(3)6(4)3 3(6)36(7)int x=8,y=8;(8)1(9)E(10)6,7,8,9(11)6(12)66,96(13)240(14)1,1,-1,-1(15)5,2,6(16)1(17)!(18)2(19)(a>0&&a<101)&&(a%3==0||a%7==0) (20)A3.程序分析题(1)2 72 74 94 412 12116(3)100 d 68 D97 a 49 1 (4)0 1 0 1 (5)2 4 6 7-0.58 7046.587.5(6)33 12 113 13 082 32(7)618 30181814.改错题(1)①无初始赋值,不能输出②数据精度丢失③少“;”号④单字符变量不能保存字符串常量⑤不能连续初始化⑥非法标识符(2)short i=38000溢出PI=3.1416 常量不能修改值Printf(“%d”,x%y) %必须是整数a*=(b+c)/=d符合赋值左边不能是表达式第三章:算法概念与顺序结构程序设计1.选择题(1)D(2)B、D(3)D(4)B(5)C(6)A(8)C(9)B(10)D2.填空题.(1)一条语句;(2)小于左右(3)%%(4)输出项列表输出控制符(5)取地址取a的地址(6)从盘获取一个字符(7)大括号(8)f=68.00(9)n1=%d\n n2=%d(10)7,5,c=33.程序分析题.(1)i=100,c=a,f=1.234000(2)65535,65536(10)1234,123.5,12345.5第四章:选择结构程序设计(1)C (2)B (3)B (4)B (5)D (6)D (7)D (8)A (9)B (10)A (11)B (12)B (13)D (14)A (15)C (16)A (17)C (18)D (19)B (20)D (21)A(23)A(24)A2.填空题.(1)1(2)5 8 8(3)4 5 99(4)2(5)10 20 0(6)2 1(7)-4(8)3(9)No(10)25(11)45 45(12)0(13)5.5(14)13(15)3第五章:循环结构程序设计(1)C(2)A(3)D(4)B(5)D(6)B(7)A A或B(8)输出4444(9)B(10)A(11)B(12)C(13)A(14)B2.填空题.(1)r=m;m=n;n=rm%n(2)3(3)-5(4)i%3==2&&i%5==3&&i%7==2 j==5j!=k(6)int s=8,j=i+2k+i+j==8(7)8(8)k&&i<=500 k/10 continue第六章:数组1.选择题(1)B(2)C(3)D(4)D(5)B(6)C(7)B(8)A(9)A(10)D2.填空题.(1)按行序优先的原则(2)0 9(4)1 2(5)6(6)前者以回车后者以空格或回车作为间隔符(7)gets()(8)&a[i](9)char k -1(10)9 83.程序分析题.(1)1 3 7 15(2)0 0 0(3)读取输入字符串中数字字符(4)①if(str1==str2) (strcmp(str1,str2)==0)②&c1[0]③m[i][k-1]第七章:函数的调用1.选择题(1)B(2)C(3)C(4)A(6)D(7)D(8)D(9)B(10)D(11)A(12)A(13)B(14)B2.填空题.(1)有参无参(2)顺序类型(3)定义调用(4)①fmax(a,N) ②s[k]=s[p](5)①age(n-1)+2 ②age(5)(6)①prt(c,n-1) ②prt(…‟,n-i) ③prt(…*‟,2*i-1) 3.程序分析题.(1)h l o(2)3(3)2 6(4)5 25。

中国大学mooc陇东学院C语言答案

中国大学mooc陇东学院C语言答案

中国大学mooc陇东学院C语言答案1、以下选项中非法的字符常量是A:’\102′B:’\65′C:’\xff’D:’\019′答案: ‘\019’2、有以下程序#include main(){ int a;scanf(“%d”,&a);if(a++<9) printf((“%d”,a);elseprintf((“%d”,a–);}程序运行时键盘输入9<回车>,则输出的结果是A:10B:11C:9D:8答案: 103、 #include main(){int s=0,n; for (n=0;n<3;n++) {switch(s) { case 0: case 1:s+=1; case 2:s+=2;break; case 3:s+=3; case 4:s+=4; } printf((“%d”,s); }}程序运行后的结果是A:1,2,4B:1,3,6C:3,10,10D:3,6,10答案: 3,10,104、若k是int类型变量,且有以下for语句for(k=-1;k<0;k++)printf(****”);下面关于语句执行情况的叙述中正确的是A:循环体执行一次B:循环体执行两次C:循环体一次也不执行D:构成无限循环答案: 循环体执行一次5、有以下程序#include main(){ char A,B,C; B=‘1’; C=’A’;for(A=0;A<6;A++) { if(A%2) putchar(B+A); else putchar (C+A);}}程序运行后输出的结果是A:1B3D5FB:ABCDFEC:A2C4E6D:123456答案: A2C4E61 C程序设计基础篇—— 1.2 数据类型与运算符数据类型与运算符单元测试1、表达式:(int)((double)9/2)-(9)%2 的值是A:0B:1C:2D:3E:4F:5答案: 32、若有定义语句:int x=10; ,则表达式 x-=x+x 的值为A:-20B:-10C:0D:10E:20答案: -103、以下选项中,不能作为合法常量的是A:1.234e04B:1.234e0.4C:1.234e+4D:1.234e0答案: 1.234e0.44、下列选项中,不能用作标识符的是A: 1234B: 1_2C:int_2D:2_int_E:i_nt123答案: 2_int_5、设有定义:float a=2,b=4,h=3; 以下C语言表达式与代数式(a+b)/2 × h 计算结果不相符的是A:(a+b)h/2B:(1/2)(a+b)hC:(a+b)h1/2D:h/2(a+b)答案: (1/2)(a+b)h6、已定义c为字符型变量,则下列语句中正确的是A:c=‘97’;B:c=”97″;C:c=97;D:c=”a”;答案: c=97;7、若有定义语句:int a=5;,则表达式:a++ 的值是答案: 5分析:相当于 y=a++,求y的值,++在后,先使用a的值赋给y,之后再给a增18、若有语句 double x=17; int y; ,当执行 y=(int)(x/5)%2;之后y 的值为答案: 1分析:%运算要求两数为整数,结果为整数9、设有语句char a=’\072′;则变量a最终获得几个字符?(仅填写具体阿拉伯数字)答案: 1分析:这是一个转义字符10、一个float型变量占几个字节?(仅填写具体阿拉伯数字)答案: 411、 int a=5,b=6,c=7,f; f=c>b>a ;f的最终结果是答案: 0分析:关系运算只能两两判断1 C程序设计基础篇——1.3 顺序结构程序设计顺序结构单元测试1、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。

国家开放大学C语言程序设计章节测试参考答案

国家开放大学C语言程序设计章节测试参考答案

国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。

(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。

(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。

(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。

(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。

(√)3.C语言中使用的字符常量,其起止标记符是()。

a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。

a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。

a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。

a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。

a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。

a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。

a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。

a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。

a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。

a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。

C++程序设计实践_北京科技大学中国大学mooc课后章节答案期末考试题库2023年

C++程序设计实践_北京科技大学中国大学mooc课后章节答案期末考试题库2023年

C++程序设计实践_北京科技大学中国大学mooc课后章节答案期末考试题库2023年1.Raptor流程通过拖动顺序、选择、循环、赋值等流程图框进行算法描述,能够根据输入数据得到运行结果吗?答案:可以,只要raptor流程图正确描述了算法,九能够根据输入执行得到正确结果2.Hanoi塔问题,现要求将塔座A上的所有圆盘移到塔座B上,并仍按同样顺序叠置,移动圆盘时遵守Hanoi塔问题的移动规则,由此设计出解Hanoi塔问题的递归算法正确的是()答案:void Hanoi(int n, int A,int B,int C){ if(n>0){ Hanoi (n-1,A,C,B);Move(n,a,b); Hanoi(n-1,C,B,A);} }3.在寻找n个元素中第k小元素问题中,如快速排序算法思想,运用分治算法对n个元素进行划分,如何选择划分基准?下面()答案解释最合理。

答案:以上皆可行,但不同方法,算法复杂度上界可能不同4.使用分治法求解不需要满足的条件是( )。

答案:子问题必须是一样的5.实现合并排序利用的算法是( )答案:分治策略6.求递归次数,请问当调用f(10)时, f() 被调用()次?int f(int x) { if(x <= 2) return1; returnf(x - 2) + f(x -4) + 1; }答案:157.设计模式一般用来解决什么样的问题( )答案:同一问题的不同表相8.关于继承表述错误的是:()答案:继承本质上是“白盒复用”,对父类的修改,不会影响到子类。

9.应用设计模式的一个优点是【】。

答案:适应需求变化10.某公司欲开发一个软件系统的在线文档帮助系统,用户可以在任何一个查询上下文中输入查询关键字,如果当前查询环境下没有相关内容,则系统会将查询按照一定的顺序转发给其他查询环境。

基于上述需求,采用【】最为合适。

答案:责任链模式11.已知int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, *p = a;,不能表示数组a中元素的式子是()。

46184 C语言程序设计实例教程(慕课版)-单元同步练习答案

46184 C语言程序设计实例教程(慕课版)-单元同步练习答案

第 2 单元
一、选择题 1.C 2.D 3.B 4.D 5.B 6.D 7.C 15.A 16.C 17.A 18.B 19.C 20.A 8.C 9.C 10.C 11.B 12.B 13.B 14.A
二、填空题 1. 字母、数字、下划线 字母、下划线 2. 0 3. ASCII 码 4. 2.5 5. 4 4 6 6. 18 3 3 7. ?: 8. 1 9. 59 83 159 10. 5 11. m/100 (m/10)%10 m%10 12. 1 2 13.sqrt(s*(s-a)*(s-b)*(s-c)) 14.(-b+sqrt(b*b-4*a*c))/(2*a) (-b-sqrt(b*b-4*a*c))/(2*a) 三、写出下列程序的运行结果 1. 62 2. 28 3. 5 4. 8,10 5. 22 6. ch=x,x=-2,y=4,z=0.000000 7.c1=4,c2=3,c3=2,c4=1 8. 1,1,1 2,2,1 2,2,1 四、编程题 1.#include <stdio.h> int main() { float a=2,b=2.3,c=1.5,s,v; s=(a*b+b*c+a*c)*2; v=a*b*c; printf("表面积为%.2f,体积为%.2f\n",s,v); return 0; } 2. #include <stdio.h> int main() { char c; printf("Input a Capital:\n"); scanf("%c",&c); printf("Lowercase:%c\n",c+32); return 0; } 3. #include <stdio.h> int main() { int num1,num2,temp; printf("请输入两个整数:\n"); scanf("%d %d",&num1,&num2);

moocc语言期末考试题及答案

moocc语言期末考试题及答案

moocc语言期末考试题及答案MOOC语言期末考试题及答案一、选择题(每题2分,共20分)1. MOOC的全称是什么?A. Massive Open Online CourseB. Massive Online Open CourseC. Massive Open Online ClassesD. Massive Online Open Courses答案:A2. 在MOOC平台上,以下哪项服务通常是免费的?A. 课程资料B. 课程认证C. 课程辅导D. 课程考试答案:A3. 以下哪个不是MOOC平台常见的课程类型?A. 计算机科学B. 人文学科C. 体育课程D. 社会科学答案:C4. 在MOOC课程中,通常采用哪种方式进行学习?A. 面对面授课B. 视频讲座C. 实地考察D. 现场实验答案:B5. MOOC课程的认证证书通常由谁颁发?A. 教育机构B. 学习者所在单位C. MOOC平台D. 政府机构答案:A6. 以下哪个是MOOC课程的特点?A. 限制性学习B. 灵活性学习C. 强制性学习D. 封闭性学习答案:B7. 以下哪个不是MOOC平台的优势?A. 免费或低成本B. 灵活性和可访问性C. 严格的学习时间表D. 广泛的课程选择答案:C8. 在MOOC课程中,学生通常如何与教师互动?A. 通过电子邮件B. 通过视频会议C. 通过面对面会议D. 通过社交媒体答案:A9. MOOC课程通常采用哪种评估方式?A. 论文B. 考试C. 口头报告D. 项目报告答案:B10. 以下哪个不是MOOC平台常见的课程认证类型?A. 免费证书B. 签名证书C. 学位证书D. 专业证书答案:C二、填空题(每题2分,共20分)1. MOOC平台通常提供______和______两种类型的课程。

答案:免费课程;付费课程2. 在MOOC平台上,学生可以根据自己的______选择合适的课程。

答案:时间安排3. MOOC课程通常包括______、______和______等学习材料。

南京邮电大学MOOC高级程序语言设计(C++)第四章编程题答案

南京邮电⼤学MOOC⾼级程序语⾔设计(C++)第四章编程题答案我⼜回来了,这次发布的是mooc的编程题使⽤对象成员构成新类。

(10分)题⽬内容:注意:程序需要加上#include头⽂件要求先定义⼀个Point类,⽤来产⽣平⾯上的点对象。

两点决定⼀条线段,即线段由点所构成。

因此,Line类使⽤Point类的对象作为数据成员,然后在Line类的构造函数⾥求出线段的长度。

class Point{private:double X, Y;public:Point(double a,double b );Point( Point &p );double GetX();double GetY();};class Line{private:Point A , B ;//定义两个Point类的对象成员double length ;public:Line( Point p1 , Point p2 );//Line类的构造函数原型,函数体类外实现double GetLength()};在main( )中定义线段的两个端点,并输出线段的长度。

输⼊格式:cin>>a>>b>>c>>d;提⽰:a,b,c,d⽤于存储两个端点的坐标。

输出格式:cout<<setprecision(3)<<L.GetLength()<<endl;输⼊样例:0 0 2 2输出样例:2.83参考程序:#include<iostream>#include<iomanip>#include<cmath>using namespace std;class Point{private:double X, Y;public:Point(double a,double b );Point( Point &p );double GetX();double GetY();};class Line{private:Point A , B ;//定义两个Point类的对象成员double length ;public:Line( Point p1 , Point p2 );//Line类的构造函数原型,函数体类外实现double GetLength();};Point::Point(double a,double b){X=a;Y=b;}Point::Point(Point &p){X=p.X;Y=p.Y;}double Point::GetX(){return X;}double Point::GetY(){return Y;}Line::Line(Point p1,Point p2):A(p1),B(p2){length=sqrt((p1.GetX()-p2.GetX())*(p1.GetX()-p2.GetX())+(p1.GetY()-p2.GetY())*(p1.GetY()-p2.GetY())); }double Line::GetLength()double Line::GetLength(){return length;}int main(){int a,b,c,d;cin>>a>>b>>c>>d;Point A(a,b),B(c,d);Line L(A,B);cout<<setprecision(3)<<L.GetLength()<<endl;}第⼆题:定义⼀个学⽣类,有如下基本成员:(1)私有数据成员:年龄 int age;姓名 string name;(2)公有静态数据成员:学⽣⼈数 static int count;公有成员函数:构造函数:带参数的构造函数Student( int m , string n );不带参数的构造函数Student( );析构函数: ~Student( );输出函数: void Print( )const;主函数的定义及程序的运⾏结果如下,请完成类的定义及类中各函数的实现代码,补充成⼀个完整的程序。

c语言习题及答案-爱课程mooc

c语言习题及答案-爱课程mooc1.1题目内容:使用printf()在屏幕上输出hello world!提示:#include int main() { }printf(\ return 0;输入格式:无输出格式:输出提示信息:\输入样例:输出样例:hello world!#include int main() { printf(\ return 0; }1.2在屏幕上输出多行信息(3分)题目内容:使用printf()函数在屏幕上输出以下多行信息:hello world! hello hit!hello everyone! 提示:在printf()函数中转义字符?\\n?表示换行。

输入格式:输出格式:输出提示信息:\\\输入样例:输出样例:hello world! hello hit! hello everyone!#include int main() {printf(\ printf(\printf(\ return 0; }1.3计算半圆弧的周长及半圆面积(3分)题目内容:编程并输出半径r=5.3的半圆弧的周长及该半圆的面积,输入格式: 无输出格式:半圆的面积输出格式:\半圆弧的周长输出格式:\输入样例:输出样例:Area=44.__的取值为3.__。

要求半径r和必须利用宏常量表示。

circumference=16.__#include #define PI 3.__ #define R 5.3 int main() {printf(\printf(\ return 0; }1.4计算长方体体积(3分)题目内容:编程并输出长1.2、宽4.3、高6.4的长方体的体积。

要求长方体的长、宽、高必须利用const常量表示。

输入格式: 无输出格式:长方体的体积输出格式:\输入样例:输出样例:#include int main() {const float l=1.2; const float x=4.3; const float y=6.4;printf(\ return 0; }第三章3.1计算两个数的平方和(3分)题目内容:从键盘读入两个实数,编程计算并输出它们的平方和,要求使用数学函数pow(x,y)计算平方值,输出结果保留2位小数。

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

6.1 下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。

目前程序存在错误,请将其修改正确。

并按照下面给出的运行示例检查程序。

#include<stdio.h>#include <string.h>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的值由键盘输入。

c语言习题及答案 爱课程mooc

第一章1.1题目内容:使用printf()在屏幕上输出hello world!提示:#include <stdio.h>int main(){printf("hello world!\n");return 0;}输入格式:无输出格式:输出提示信息:"hello world!\n"输入样例:输出样例:hello world!#include <stdio.h>int main(){printf("hello world!\n");return 0;}1.2在屏幕上输出多行信息(3分)题目内容:使用printf()函数在屏幕上输出以下多行信息:hello world!hello hit!hello everyone!提示:在printf()函数中转义字符‘\n’表示换行。

输入格式:输出格式:输出提示信息:"hello world!\n""hello hit!\n""hello everyone!\n"输入样例:输出样例:hello world!hello hit!hello everyone!#include <stdio.h>int main(){printf("hello world!\n");printf("hello hit!\n");printf("hello everyone!\n");return 0;}1.3计算半圆弧的周长及半圆面积(3分)题目内容:编程并输出半径r=5.3的半圆弧的周长及该半圆的面积,的取值为3.14159。

要求半径r和必须利用宏常量表示。

输入格式:无输出格式:半圆的面积输出格式: "Area=%f\n"半圆弧的周长输出格式: "circumference=%f\n"输入样例:输出样例:Area=44.123632circumference=16.650427#include<stdio.h>#define PI 3.14159#define R 5.3int main(){printf("Area=%f\n", R*R*PI/2);printf("circumference=%f\n", 2*R*PI/2);return 0;}1.4计算长方体体积(3分)题目内容:编程并输出长1.2、宽4.3、高6.4的长方体的体积。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2016.03.28—06.30 北京理工大学 MOOC C语言程序设计(下)网上作业答案 第一周编程作业 1、求最大公约数和最小公倍数(15分) 题目内容: 编写程序,在主函数中输入两个正整数 a,b,调用两个函数 fun1() 和 fun2(),分别求 a 和 b 的最大公约数和最小公倍数,在主函数中输出结果。

输入格式: 两个正整数 输出格式: 最大公约数和最小公倍数 输入样例: 12,40[回车] 输出样例: 最大公约数:4[回车] 最小公倍数:120[回车] 时间限制:500ms内存限制:32000kb Code: #include int fun1(int m,int n) { int r; r=m%n; return r==0?n:fun1(n,r); } int fun2(int m,int n) { int t; t=m*n/fun1(m,n); return t; } int main() { int t,m,n; scanf("%d,%d",&m,&n); if(m{ t=m;m=n;n=t; } printf("最大公约数:%d\n",fun1(m,n)); printf("最小公倍数:%d\n",fun2(m,n)); return 0; }

2、排序并插入(15分) 题目内容: 编写程序,在主函数中定义一个有10个元素的整型一维数组,用户输入9个数据,调用函数,对数组元素进行从小到大排序后,在函数中输入一个数,插入到数组中正确的位置,并输出。

输入格式: 9个整数和1个整数 输出格式: 10个整数 输入样例: 2,3,1,5,6,76,89,31,90[回车] 7[回车] 输出样例: 1,2,3,5,6,7,31,76,89,90[回车] 时间限制:500ms内存限制:32000kb Code: #include int main() { int t,j,i,n[10]; for(i=0; i<9; i++) { scanf("%d", &n[i]); if(i<8) scanf(","); } scanf("%d",&n[9]) ; for(i=0;i<9;i++) { for(j=0;j<= 8-i;j++) { if(n[j] > n[j+1]) { t = n[j]; n[j] = n[j+1]; n[j+1] = t; } } } for(i=0;i<10;i++) { printf("%d",n[i]); if(i<9) printf(","); } return 0; } 第二周编程作业 1、最大公约数(15分) 题目内容: 输入两个整数m,n,用递归算法实现计算两个数的最大公约数。 输入格式: 输入两个整数m,n 输出格式: 最大公约数 输入样例: 12,40[回车] 输出样例: 4[回车] 时间限制:500ms内存限制:32000kb Code: #include int gcd(int m,int n) { int r; r=m%n; return r==0?n:gcd(n,r); } int main() { int t,m,n; scanf("%d,%d",&m,&n); if(m{ t=m;m=n;n=t; } printf("%d\n",gcd(m,n)); return 0; } 2、奇数求和(15分) 题目内容: 用递归算法实现,输入整数n(n>0), 求1+3+5+7….+(2*n-1) 的和 输入格式: 输入整数n 输出格式: 输出和 输入样例: 5[回车] 输出样例: 25[回车] 时间限制:500ms内存限制:32000kb Code: #include int fun(int n) { int f; if(n==1) f=1; else f=fun(n-1)+2; return f; } int main() { int i,m,t=0; scanf("%d",&m); for(i=0;i{ t=t+fun(i+1); } printf("%d\n",t); return 0; } 第三周编程作业

1、巧算自然数(10分) 题目内容: 编程实现输入一个自然数,若为偶数,则把它除以2;若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。输出经过多少次可以得到自然数1和每次得到的值。

输入格式: 输入一个自然数 输出格式: 输出经过多少次可以得到自然数1和每次得到的值

输入样例: 22[回车] 输出样例: 22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1[回车] step=16[回车] 时间限制:500ms内存限制:32000kb Code: #include int fun(int n) { if(n%2==0) n=n/2; else n=3*n+1; return n; } int main() { int i,m; scanf("%d",&m); for(i=1;;i++) { printf("%d,",m); m=fun(m); if(m==1) break; } printf("1\nstep=%d\n",i+1); return 0; } 2、卖鸭子(10分) 题目内容: 编程调用递归函数。一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了7个村子后还剩2只鸭子,问他出发时共赶多少只鸭子?经过每个村子时依次卖出多少只鸭子?

输入格式: 无 输出格式: 出发时总鸭子数 每个村子卖出鸭子数

输入样例: 无 输出样例:(不是结果,仅表示格式) sum=25[回车] sell=8,sell=4,[回车] 时间限制:500ms内存限制:32000kb Code: #include int fun(int i) { int sum; if(i==7) sum=2; else sum=(fun(i+1)+1)*2; return sum;

} int main() { int i; printf("sum=%d\n",fun(0)); for(i=1;i<=7;i++)printf("sell=%d,",fun(i)+2); printf("\n"); return 0; } 3、输出各位数字之和(10分) 题目内容: 编程调用递归函数,求输入一个数,输出这个数的各位数字之和。 输入格式: 输入一个数 输出格式: 输出这个数的各位数字之和

输入样例: 2354[回车] 输出样例: 14[回车] 时间限制:500ms内存限制:32000kb Code: #include int main() { int num = 0; int s = 0; int i = 0; scanf("%d", &num); while(num) { s += num%10; num = num/10; i++; } printf("%d\n", s ); return 0; }

第四周编程作业 1、对称字符串(15分) 题目内容: 从键盘输入一个字符串,判断是否为对称字符串,若是输出“YES”,若不是输出“NO” 输入格式: 一个字符串 输出格式: YES or NO

输入样例1: abcdedcba[回车] 输出样例1: YES[回车] 输入样例2: 1234432[回车] 输出样例2: NO[回车] 时间限制:500ms内存限制:32000kb Code: #include "stdio.h" #include "string.h" char s[100]; int huiwen(int a,int b) { if(a==b||breturn 1; else if(s[a]==s[b]) return huiwen(a+1,b-1); else return 0; } int main() { int length; int result ; gets(s); length=strlen(s); result=huiwen(0,length-1); if(result==1) printf("YES\n"); else printf("NO\n"); } 2、排序(10分) 题目内容: 用指针方法,将一维数组int a[10] 中元素按从小到大顺序输出。

相关文档
最新文档