moocC语言第七周答案
C语言程序设计中国大学mooc课后章节答案期末考试题库2023年
C语言程序设计中国大学mooc课后章节答案期末考试题库2023年1.关于问题与问题求解,下列说法正确的是()。
答案:人类进行问题求解的一般思维过程可分为问题分析、提出假设和检验假设。
2.关于贪心算法(又称贪婪算法是指,在对问题求解时,总是做出在当前看来是最好的选择。
也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。
贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解),下列叙述中正确的是()。
答案:选择能产生问题最优解的最优量度标准是使用贪婪算法的核心。
3.将多个有序序列合并成一个有序序列,属于()。
答案:归并排序4.关于数学模型(Mathematical Model)和数学建模(MathematicalModeling),下列说法正确的是()。
答案:数学模型是对实际问题的数学抽象,是用数学符号、数学式子等对实际问题本质属性的抽象而又简洁的刻画。
5.在“八皇后问题”的问题求解中,采用“试探-失败返回-再试探”的问题求解方法,该方法属于()。
八皇后问题:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
答案:回溯法6.关于算法(Algorithm),下列叙述正确的是()。
答案:算法可以用自然语言、流程图或伪代码描述,各有其优点。
7.关于抽象(Abstraction),下列说法正确的是()。
答案:抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。
8.关于哥尼斯堡七桥问题,下列叙述不正确的是()。
哥尼斯堡七桥问题:哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥。
如图所示:我们要解决的问题是可否存在一种方案可以走过所有的桥然后回到起点。
答案:欧拉将七桥问题归结为了一个图形形式的“一笔画”问题,从而得到了问题的解。
大学生C语言程序设计(第四版 谭洪强)实验7 答案
实验七 参考答案(参考答案)(1) (sy7-1.c )请编写函数fun ,它的功能是:计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。
例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。
注意:n 的值要求不大于100。
算法分析:使用for 循环i ,遍历n 包含n 以内的所有整数,逐一判断每个i ,是否满足条件(能被5 或9 整除),如果满足,则把它的倒数累加到累加器里。
注意:i 的倒数要表示成:1.0/i;参考子函数如下:double fun(int n){double sum=0;int i;for(i=5;i<=n;i++)if(i%5==0||i%9==0)sum=sum+1.0/i;return sum;}(2) (sy7-2.c ) 请编写函数fun ,其功能是:根据以下公式计算s ,并计算结果作为函数值返回,n 通过形参传入。
n s ⋯++++⋯++++++=321132112111例如:若n 的值为11时,函数的值为1.83333算法分析:等式右边从第二项(i=2)开始,其分母等于前一项的分母加上i ;一共有n 项;求出每项的分母,然后把每项进行累加。
参考子函数如下:float fun(int n){float sum=1; //sum 中已经累加了第一项的值int i,m=1; //m 表示每项的分母;for(i=2;i<=n;i++){ m=m+i;sum=sum+1.0/m;}return sum;}(3) (sy7-3.c)请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。
合并的方式是:将 a 数的十位和个位依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的个位和百位上。
例如,当a=45,b=12,调用该函数后,c=5241。
算法分析:对一个两位数n,它的各位可以通过n%10求的,它的十位数可以通过n/10求的;所以分别用上述方法求的a和b的个位和十位,同时按照要求累加到c里。
c语言教材第七章习题答案
c语言教材第七章习题答案《C语言教材第七章习题答案》在学习C语言的过程中,掌握基本的语法和逻辑结构是非常重要的。
第七章的习题涉及到了一些较为复杂的概念和技巧,需要我们对C语言有更深入的理解和掌握。
1. 题目:编写一个程序,计算并输出1到100之间所有偶数的和。
答案:我们可以使用循环结构和条件判断来解决这个问题。
具体的代码如下: ```#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("1到100之间所有偶数的和为:%d\n", sum);return 0;}```这段代码使用了for循环来遍历1到100之间的所有数字,然后通过条件判断判断是否为偶数,如果是偶数则累加到sum中,最后输出sum的值。
2. 题目:编写一个程序,输出九九乘法表。
答案:九九乘法表是一个经典的练习题,通过嵌套循环可以很容易地实现。
具体的代码如下:```#include <stdio.h>int main() {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {printf("%d*%d=%d\t", j, i, i*j);}printf("\n");}return 0;}```这段代码使用了两层嵌套的for循环,外层循环控制行数,内层循环控制列数,通过printf语句输出乘法表中的每一项。
通过解答以上两道习题,我们不仅复习了C语言中的循环结构和条件判断,还锻炼了我们的编程思维和逻辑能力。
希望大家在学习C语言的过程中能够多多练习,不断提升自己的编程水平。
C语言第七章习题带答案
选择题1.已知:int *p, a;,则语句“p=&a;”中的运算符“&”的含义是( D )。
A.位与运算B.逻辑与运算C.取指针内容D.取变量地址2.已知:int a, x;,则正确的赋值语句是( C )。
A.a=(a[1]+a[2])/2; B.a*=*a+1; C.a=(x=1, x++, x+2); D.a="good"; 3.已知:int a, *p=&a;,则下列函数调用中错误的是( D )。
A.scanf("%d", &a); B.scanf("%d", p); C.printf("%d", a); D.scanf("%d", *p); 4.已知:char *p, *q;,选择正确的语句( C )。
A.p*=3; B.p/=q; C.p+=3; D.p+=q;5.已知:int x;,则下面的说明指针变量pb的语句( C )是正确的。
A.int pb=&x; B.int *pb=x; C.int *pb=&x; D.*pb=*x;一、选择题1.设有说明int (*ptr)[M];,其中的标识符ptr是( C )。
A.M个指向整型变量的指针B.指向M个整型变量的函数指针C.一个指向具有M列的二维数组的一行的指针D.具有M个指针元素的一维数组的指针2.已知:double *p[6];,它的含义是( C )。
A.p是指向double型变量的指针B.p是double型数组C.p是指针数组D.p是数组指针3.已知:char s[10], *p=s,则在下列语句中,错误的语句是( B )。
A.p=s+5; B.s=p+s; C.s[2]=p[4]; D.*p=s[0];4.已知:char s[100]; int i;,则在下列引用数组元素的语句中,错误的表示形式是( D )。
C语言程序设计教程 第七章 课后习题参考答案
for(i=0;i<N;i++)
{
printf("%4d",a[i]);
}
bubble_sort(a,N);
printf("\n");
}
void bubble_sort(int a[],int n)
{
int i,j,tmp;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
for(i=0;i<n/2;i++)
{
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
for(i=0;i<n;i++)
{
printf("%-4d",a[i]);
}
}
P1985对称矩阵
#include<stdio.h>
void print(int a[][3],int rows,int cols);
int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int i,j,m=0,n=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
for(i=0;i<M;i++)
m++;
中国大学mooc《C语言程序设计(郑州轻工业大学) 》满分章节测试答案
titleC语言程序设计(郑州轻工业大学) 中国大学mooc答案100分最新版content点击这里,复制通过码第一章绪论第一章单元测验1、通常把高级语言源程序翻译成目标程序的程序称为( )。
答案: 编译程序2、关于C语言,下面叙述不正确的是()。
答案: 不用编译可以直接运行。
3、程序的开发步骤中不包括()。
答案: 编译链接4、 zzuliOJ的1000:从今天开始入坑C语言通过码答案: ikJ3Wx00syCxTCfJJpvCjVRSePQ5、 zzuliOJ的1001:整数a+b 通过码答案: jkJ2W0pnsnCxTCfJJpvCjVRSePU6、 zzuliOJ1002: 简单多项式求值通过码答案: g0QlCkxntSyxTCfJJpvCjVRSePY第二章简单C程序设计第二单元测验1、关于定点数和浮点数的说法,下列说法错误的是()。
答案: 浮点数表示的数即是数值的精确值2、以下哪种运算能从变量x中取得十进制最低位的数字()。
答案: x % 103、以下哪个数字的值最大()。
答案: 1e24、设有变量定义: float x=2.5; double y=6.0; 则表达式 (int)x / y的值为( )。
(如果结果是浮点类型,用小数点后一位数字表示)答案: 3.05、变量的名字代表内存中的存储单元;变量名和内存中的存储单元相对应,通过变量名来存、取存储单元的内容。
答案: 正确6、变量被定义后没有赋值,其值不可以使用,是内存中残留的垃圾值。
答案: 正确7、变量是在程序执行期间其值可以改变的量,必须先定义后使用。
答案: 正确8、当赋值语句右边表达式类型与左边变量类型不一致时,以右边表达式的值作为赋值表达式的值。
答案: 错误9、 zzuliOJ1003:两个整数的四则运算通过码答案: ikcgXkln5yyxTCfJJpvCjVRSePc10、 zzuliOJ1004:三位数的数位分离通过码答案: iUUkWxg2s3CxTCfJJpvCjVRSePA11、 zzuliOJ1005:整数幂通过码答案: gx5zX082t3SxTCfJJpvCjVRSePE12、 zzuliOJ1006:求等差数列的和通过码答案: 2B8gCk5k5SKxTCfJJpvCjVRSePI13、 zzuliOJ1007:鸡兔同笼通过码答案: iUNzXx015nCxTCfJJpvCjVRSePM14、 zzuliOJ1008:美元和人民币通过码答案: ihJzCkoyvXGxTCfJJpvCjVRSePw15、 zzuliOJ1009:求平均分通过码答案: 2BFyWhs2vHexTCfJJpvCjVRSeP016、 zzuliOJ1010:求圆的周长和面积通过码答案: jBRzD043syWxTCfJJpvCjVRSefQ17、 zzuliOJ1011:圆柱体表面积通过码答案: ixcjXxxnsHaxTCfJJpvCjVRSefU18、 zzuliOJ1012:求绝对值通过码答案: iRV2UR8x5iSxTCfJJpvCjVRSefY19、 zzuliOJ1013:求两点间距离通过码答案: 2hEgXEczsCyxTCfJJpvCjVRSefc20、 zzuliOJ1014:求三角形的面积通过码答案: 2BF1Xkg74iexTCfJJpvCjVRSefA21、 zzuliOJ1015:计算时间间隔通过码答案: 2RMnWUk6sXSxTCfJJpvCjVRSefE22、 zzuliOJ1015:银行利率通过码答案: 3xZxWBswvCSxTCfJJpvCjVRSefI第二章简单C程序设计小练习-不计分1、以下哪种运算能从变量x中取得十进制最低位的数字()。
C语言程序设计第四版第七章答案-谭浩强
C语言程序设计第四版第七章答案-谭浩强第七章函数7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
maxyueshu(m,n)int m,n;{ int i=1,t;for(;i<=m&&i<=n;i++){if(m%i==0&&n%i==0)t=i;}return(t);}minbeishu(m,n)int m,n;{int j;if(m>=n) j=m;else j=n;for(;!(j%m==0&&j%n==0);j++);return j;}main()整数,输出是否是素数的消息。
psushu(m)int m;{int i=2,t;for(;i<=m;i++)if(m%i==0&&i<m) break;if(m-i==0) t=1;else t=0;return m;}main(){int a,s;printf("enter sushu is \n");scanf("%d",&a);s=psushu(a);if(s==1) printf("a is sushu\n");else printf("s is not sushu\n");}7.4写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
int zhuangzhi(b)int b[3][3];{int i,j,t;for(i=0;i<3;i++)for(j=0;j>=i&&j<3-i;j++){t=b[i][j];b[i][j]=b[j][i];b[j][i]=t;}}main(){int a[3][3];int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf(" %d",a[i][j]);printf("\n");}zhuangzhi(a);for(i=0;i<3;i++){for(j=0;j<3;j++)printf(" %d",a[i][j]);printf("\n");}}7.5写一函数,使输入的一个字符串按反序存放,在主函数中输入输出字符串。
c语言程序设计教程慕课版第2版答案
c语言程序设计教程慕课版第2版答案1. 第一章程序设计基础1.C语言程序的组成部分包括:预处理指令、函数、语句和表达式等。
2.C语言程序从哪里开始执行? C语言程序从main 函数开始执行。
3.下面哪个是C语言的关键字? (A) while (B) loop(C) for (D) switch。
答案是 (A) while和 (C) for。
2. 第二章数据类型及运算符1.C语言中的基本数据类型有:整型、字符型、浮点型和枚举类型。
2.在C语言中,判断两个变量是否相等应使用哪个运算符?答案是==。
3.在C语言中,计算一个数的平方可以使用哪个运算符?答案是*。
3. 第三章条件语句和循环语句1.在C语言中,条件语句可以使用以下关键字:if、else if、else。
2.下面哪个循环语句会先执行循环体再判断条件?(A) for (B) while (C) do...while (D) switch。
答案是 (C) do...while。
3.在C语言中,如果要提前结束当前循环并进入下一次循环,应使用哪个关键字?答案是continue。
4. 第四章函数1.在C语言中,函数的返回类型可以是:int、char、float等。
2.以下关于函数的说法正确的是:(A) 函数可以在调用函数中声明 (B) 函数可以返回多个值 (C) 函数可以递归调用 (D) 函数不能调用其他函数。
答案是 (A) 函数可以在调用函数中声明 (B) 函数可以返回多个值 (C) 函数可以递归调用。
3.在C语言中,函数的参数可以是:基本类型和指针类型。
5. 第五章数组和指针1.在C语言中,定义一维数组的方式是:数据类型数组名[大小]。
2.下面哪个操作可以获取数组中指定索引的元素?(A) * (B) & (C) [] (D) .。
答案是 (C) []。
3.在C语言中,指针是什么?答案:指针是一个变量,存储另一个变量的地址。
6. 第六章字符串1.在C语言中,字符串以\\0结尾。
中国大学moocc语言答案
中国大学moocc语言答案1.下列不是C语言特点的是()。
[单选题] *A.C语言简洁、紧凑B.比较难学(正确答案)C可以直接对硬件进行操作D.C语言移植性好2.计算机最基本的操作单元不包括()。
[单选题] *A.位B.字节C.地址D.元组(正确答案)3.计算机唯一能识别的语言是()。
[单选题] *A.机器语言(正确答案)B.汇编语言C高级语言D.面向对象语言4.下列说法错误的是()。
[单选题] *A.C语言程序由若干个函数组成B.C语言是一种结构化程序设计语言C.C语言包含的数据类型不多(正确答案)D.C语言的语法限制不太严格5.下面对C语言特点的描述不正确的是()。
[单选题] *A.C语言兼有高级语言和低级语言的双重特点,执行效率高B.C语言既可以用来编写应用程序,又可以用来编写系统软件C.C语言中的变量可以不定义,直接使用(正确答案)D.C语言是一种结构化设计语言6.下列不是C语言中的关键字的是()。
[单选题] *A.caseB.typedefC.staticD.null(正确答案)7.二进制语言属于()。
[单选题] *A.面向机器语言(正确答案)B.面向过程语言C.面向问题语言D.面向汇编语言8.C语言具有低级语言的功能,主要是指()。
[单选题] *A.程序的可移植性B.程序的使用方便性C.能直接访问物理地址,可进行位操作(正确答案)D.具有现代化语言的各种数据结构9.C语言程序能够在不同的操作系统下运行这说明C语言具有很好的()。
[单选题] *A.适应性B.兼容性C.移植性(正确答案)D.操作性10. ()用符号来替代二进制序列。
[单选题] *A.机器语言B.汇编语言(正确答案)C.高级语言D.自然语言11.1983年,为C语言制定了一套标准,成为现行的C语言标准。
()。
[单选题] *A.ISOB.NSFC.CITTD.ANSI(正确答案)12.C语言一共有个关键字。
中国大学MOOCC语言程序设计考试答案
得分/总分 A. float a[3][4]; float a[3][]; B. float a[3][4]; float a[][4]; float a[3][]={{1},{0}}; C. float a(3,4); float a[3][4]; float a[][]={{0};{0}}; D. float a[3][4]; static float a[][4]={{0},{0}}; 3.00/3.00 正确答案:D 你选对了 21 填空(4 分) 阅读下面的程序,写出程序的运行结果_______ #include<stdio.h> int main() {
if( a = b+c ) printf("***\n"); else printf("$$$\n"); } 以上程序( ) 得分/总分 A. 可以通过编译但不能通过连接 B. 有语法错不能通过编译 C. 输出*** 3.00/3.00 D. 输出$$$ 正确答案:C 你选对了 解析: D、if ( ) 这里是赋值号,不是等号哦 19 单选(3 分) 若有定义: int a[5]={1,2,3,4,5}; char b='c',c; 则下面表达式中数值为 2 的是( )。 得分/总分 A. a[b-'b'] 3.00/3.00 B. a[b] C. a[c-b] D. a[2] 正确答案:A 你选对了 解析: A、数组中表示 数组 2 的 元素为 a[1], 因此答案中能够得到 下标为 1 的数组元 素即为正确答案, 其它 3 个都不可以 20 单选(3 分) 以下各组选项中,均能正确定义二维实型数组 a 的选项是( )。
#include <stdio.h> int main( ) {
2020年秋冬智慧树知道网课《C语言程序设计(海南科技职业大学)》课后章节测试答案
第一章测试1【单选题】(2分)C语言是一种()。
A.汇编语言B.高级语言C.机器语言D.低级语言2【单选题】(2分)C语言程序总是从()。
A.源代码的第一条可执行语句B.源代码的第一个函数C.主函数D.源代码的第一行3【单选题】(2分)C语言程序是由()构成。
A.若干过程B.若干对象C.若干子程序D.一个主函数和若干函数4【单选题】(2分)在C语言程序中,主函数的位置()。
A.一定放在所有代码最后B.一定放在所有代码最前面C.一定放在所有代码中间D.可以放在代码的任何位置5【单选题】(2分)以下叙述正确的是()。
A.C语言程序一行只能写一条语句B.C语言程序不区分大小写C.C语言程序每个语句结束都要写分号D.C语言程序每行结束都要写分号6【单选题】(2分)要把高级语言编写的源程序转换为目标程序,需要使用()。
A.诊断程序B.驱动程序C.编辑程序D.编译程序7【单选题】(2分)若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是()。
A.scanf("%d%d%d",a,b,*c)B.scanf("%d%d%d",&a,&b,&c);C.scanf("%d%d%d",&a,&b,c);D.scanf("%d%d%d",a,b,c);8【单选题】(2分)以下选项中合法的用户标识符是()。
A._2TestB.3DmaxC.longD.9【单选题】(2分)下列说法中正确的是()。
A.C程序书写时,一个语句可分成几行书写B.C程序书写时,一行只能写一个语句C.C程序书写时,不区分大小写字母D.C程序书写时每行必须有行号10【单选题】(2分)英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为()。
A.52B.66C.50D.68第二章测试1【单选题】(2分)C语言中的注释()。
C语言程序设计下mooc答案
2016.03.28—06.30 北京理工大学 MOOCC语言程序设计(下)网上作业答案第一周编程作业1、求最大公约数和最小公倍数(15分)题目内容:编写程序,在主函数中输入两个正整数 a,b,调用两个函数 fun1() 和 fun2(),分别求a 和 b 的最大公约数和最小公倍数,在主函数中输出结果。
输入格式:两个正整数输出格式:最大公约数和最小公倍数输入样例:12,40[回车]输出样例:最大公约数:4[回车]最小公倍数:120[回车]时间限制:500ms内存限制:32000kbCode:#include <stdio.h>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<n){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内存限制:32000kbCode:#include <stdio.h>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,用递归算法实现计算两个数的最大公约数。
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的长方体的体积。
2017 mooc C语言 第七周(2) 答案
递归法计算游戏人员的年龄题目内容:有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第n-1个人,他说比第n-2个人大2岁,…..,问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。
第1个人说自己10岁,问第n个人多大年纪。
递归函数原型:unsigned intComputeAge(unsigned int n);提示:计算年龄的递归公式为:输入格式: “%u”输出格式:“The person’s age is %u\n”输入样例1:5↙输出样例1:The_person’s_age_is_18输入样例2:10↙输出样例2:The_person’s_age_is_28#include <stdio.h>unsignedint ComputeAge(unsignedint n);int main(){unsignedint age;scanf("%u", &age);printf("The person's age is %u\n", ComputeAge(age));return0;}unsignedint ComputeAge(unsignedint n){if(n == 1)return10;else{return ComputeAge(n - 1)+2;}}1递归法计算两个数的最大公约数题目内容:利用最大公约数的性质计算。
对正整数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程序运行结果示例1:Input a,b:16,24↙8程序运行结果示例2:Input a,b:-2,-8↙Input error!输入提示信息:”Input a,b:”输入格式:”%d,%d”输出格式:输出最大公约数:”%d\n”输入错误提示信息:”Input error!\n”#include <stdio.h>int Gcd(int i, int j);int main(){int a, b;int c;printf("Input a,b:");scanf("%d,%d", &a, &b);c = Gcd(a, b);if (c == -1){printf("Input error!\n");}else{printf("%d\n", c);}return0;}int Gcd(int i, int j){if (i<= 0 || j <= 0){return -1;}else{if(i == j){return i;}elseif (i> j){return Gcd(i - j, j);}else{return Gcd(i, j - i);}}寻找中位数v1.0题目内容:编写一个函数返回三个整数中的中间数。
C语言慕课编程题参考答案(4-6周)
3. 程序改错 v1.0 #include <stdio.h>
int main() { int score, n; char grade; printf("Please input score:\n"); n=scanf("%d", &score); if (n!=1) { printf("Input error!\n"); } else { if (score < 0 || score > 100) { printf("Input error!\n");
case 7: d7++; break;
case 8: d8++; break;
case 9: d9++; break;
default: printf("error"); break;
} c=fabs(c)-temp1*(int)pow(10,temp2); }
if (d0!=0) printf("0: %d\n",d0); if (d1!=0) printf("1: %d\n",d1); if (d2!=0) printf("2: %d\n",d2); if (d3!=0) printf("3: %d\n",d3); if (d4!=0) printf("4: %d\n",d4); if (d5!=0) printf("5: %d\n",d5); if (d6!=0) printf("6: %d\n",d6); if (d7!=0) printf("7: %d\n",d7); if (d8!=0) printf("8: %d\n",d8); if (d9!=0) printf("9: %d\n",d9);
c语言程序设计习题与实践慕课版答案
c语言程序设计习题与实践慕课版答案C语言是一种广泛使用的计算机编程语言,对于学习计算机科学和软件开发的人来说是必不可少的。
为了帮助学习者更好地掌握C语言的编程技巧,慕课网推出了《C语言程序设计习题与实践》课程。
本文将提供该课程的一些习题答案和实践内容,旨在帮助读者更好地理解和运用C语言。
第一章:入门篇1. 编写一个C程序,输出"Hello, World!"。
```c#include<stdio.h>int main() {printf("Hello, World!");return 0;}```2. 编写一个C程序,输入两个整数,输出它们的和。
```c#include<stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d%d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```第二章:控制流程1. 编写一个C程序,输入一个整数,判断它是正数、负数还是零,并输出相应的提示信息。
```c#include<stdio.h>int main() {int num;printf("请输入一个整数:\n");scanf("%d", &num);if (num > 0) {printf("它是一个正数。
\n");} else if (num < 0) {printf("它是一个负数。
\n");} else {printf("它是零。
\n");}return 0;}```2. 编写一个C程序,输入一个字符,判断它是大写字母、小写字母还是其他字符,并输出相应的提示信息。
C语言程序设计上mooc答案
第一周作业【练习1】HelloWorld“Hello World”示例程序最早出现于1972年,由贝尔实验室成员Brian Kernighan撰写的内部技术文件《Introduction to the Language B》之中。
不久同作者于1974年所撰写的《Programming in C: A Tutorial》,也延用这个示例。
一般来说,这是每一种计算机编程语言中最基本、最简单的程序,亦通常是初学者所编写的第一个程序。
它还可以用来确定该语言的编译器、程序开发环境,以及运行环境是否已经安装妥当。
将“Hello World”作为第一个示范程序,已经成为编程语言学习的传统。
我们在这里继续传统,这也是一种向前辈们致敬的方式之一吧!最早的程序基本是这个样子的:#include <stdio.h>int main(){printf("Hello world.\n");return 0;}请模仿上面的程序,看看是否可以通过编译?如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。
略第二周作业【练习2】学学scanf和printf的用法吧该如何处理double 型的数据:如何定义变量类型?如何使用scanf 函数?如果已知圆柱的底面半径r ,以及高h ,则可计算出圆柱的侧面积s=2 π r h ,体积v=π r 2 h 。
其中π=3.1415926。
输入:第一行输入圆柱的底面半径r第二行输入圆柱的高h输出:s=< 圆柱的侧面积>,v=< 圆柱的体积>要求1. 所有变量都定义为双精度类型2. 结果精确到小数点后两位。
作为练习题目:我们已经给您编写好了大部分的代码,请您自己修改几个地方,完成程序的剩余部分。
**********************************************分隔线************#include<stdio.h>#define PAI 3.1415926int main(){int r,h;double s,v;scanf("%d %d", );s=2*PAI*r*h;v=PAI*r*r*h;printf("s=%.2f,v=\n",s, );return 0;}**********************************************分隔线************Code:#include<stdio.h>#define PAI 3.1415926int main(){int r,h;double s,v;scanf("%d %d",&r,&h);s=2*PAI*r*h;v=PAI*r*r*h;printf("s=%.2f,v=%.2f\n",s,v);return 0;}第三周作业1、输出字符的ASCII 码成绩10 开启时间2014年10月21日星期二10:00折扣0.8 折扣时间2014年11月5日星期三23:55允许迟交否关闭时间2014年11月12日星期三23:55背景:我们在计算机基础中已经学过:字母在计算机中采用ASCII码进行存储。
C语言程序设计慕课下编译答案 (完美)
C语言程序设计慕课下编译答案 (完美)C语言程序设计慕课下编译答案 (完美)本文将针对C语言程序设计慕课下编译问题进行详细解答,帮助读者掌握编译的相关知识和技能。
以下是我们对不同类型编译问题的解答。
一、语法错误在C语言程序设计中,语法错误是最常见的问题之一。
常见的语法错误包括缺失分号、括号不匹配、变量未声明等。
解决语法错误的方法是仔细检查代码,确保语法的正确性。
可以利用编译器提供的错误提示信息来定位和修复错误。
二、链接错误链接错误通常发生在将多个源文件组合为可执行文件时。
常见的链接错误包括重复定义符号、缺失定义符号等。
解决链接错误的方法是确保每个函数和变量只有一个定义,并检查是否正确引用了所需的库文件。
三、运行时错误运行时错误指的是在程序执行过程中发生的错误。
常见的运行时错误包括数组越界、空指针引用、除零错误等。
解决运行时错误的方法是使用调试工具进行程序运行过程中的调试,找出错误的原因并修复。
四、优化问题编译器优化是提高程序性能的重要手段。
在进行编译时,编译器会对代码进行优化,以减少程序的执行时间和内存占用。
然而,不正确的优化选项可能会导致程序出现错误。
解决优化问题的方法是逐个尝试不同的优化选项,评估程序的性能和正确性,选择合适的优化选项。
五、控制流问题控制流问题指的是程序中的流程不正确或不符合预期。
常见的控制流问题包括死循环、条件判断错误等。
解决控制流问题的方法是仔细检查程序的逻辑,确保程序按照预期的流程执行,并使用调试工具进行调试。
六、性能问题编译器的性能是评估编译器好坏的重要指标之一。
优秀的编译器应该能够在保证正确性的前提下,生成高效的机器代码。
解决性能问题的方法是使用性能分析工具,评估程序的性能瓶颈,并对性能瓶颈进行针对性的优化。
七、平台兼容性问题编译器的兼容性是指在不同的操作系统和硬件平台上,能够正确地编译和执行程序。
解决平台兼容性问题的方法是使用可移植的C语言编码规范,避免使用依赖于特定平台的代码和特性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
m o o c C语言第七周答案集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]
n层嵌套平方根的计算(4分)
题目内容:
编写程序利用递归法实现如下所示n层嵌套平方根的计算:递归函数原型:double Y(double x, int n);
程序运行结果示例1:
Please input x and n:16,1↙
Result=
程序运行结果示例2:
Please input x and n:16,2↙
Result=
程序运行结果示例3:
Please input x and n:16,3↙
Result=
程序运行结果示例4:
Please input x and n:16,0↙
Result=
输入提示信息:"Please input x and n:"输入格式:"%lf,%d"
输出格式:"Result=%.2f\n"
#include <>
#include<>
double Y(double x,int n)
{
if(n == 0)
return 0;
else
return (sqrt(x + Y(x,n-1))); }
int main()
{
double a;
int b;
double result;
printf("Please input x and n:"); scanf("%lf,%d",&a,&b);
result=Y(a,b);
printf("Result=%.2f\n",result); return 0;
}递归法求和(4分)
题目内容:
用递归方法计算如下求和计算
sum = 1 + 2 + 3 + .... + n
递归函数原型:int Sum(int n);
程序运行结果示例1:
Please input n:5↙
sum=15
程序运行结果示例2:
Please input n:0↙
data error!
程序运行结果示例3:
Please input n:-3↙
data error!
输入提示信息:"Please input n:"输入错误提示信息:"data error!\n"输入格式:"%d"
输出格式:"sum=%d\n"
#include ""
int sum(int n)
{
if(n>1)
return n+sum(n-1);
else
return 1;
}
int main()
{
int n;
printf("Please input n:"); scanf("%d",&n);
if(n>0)
{
printf("sum=%d\n",sum(n)); }
else
{
printf("data error!\n"); }
}
猴子吃桃程序_扩展3(4分)
题目内容:
猴子第一天摘了若干个桃子,吃了一半,不过瘾,又多吃了1个。
第二天早上将剩余的桃子又吃掉一半,并且又多吃了1个。
此后每天都是吃掉前一天剩下的一半零一个。
到第n天再想吃时,发现只剩下1个桃子,问第一天它摘了多少桃子为了加强交互性,由用户输入天数n,即假设第n天的桃子数为1。
要求采用递归法求解。
递归函数原型:int Monkey(int n, int x);
函数功能:从第n天只剩下一个桃子反向逆推出第1天的桃子数
程序运行结果示例1:
Input days n:5↙
x=46
程序运行结果示例2:
Input days n:10↙
x=1534
输入提示信息:"Input days n:"
输入格式:"%d"
输出格式:"x=%d\n"
#include<>
main()
{
int sum=1,n,i;
printf("Input days n:");
scanf("%d",&n);
for (i=1;i<n;i++)
{
sum=(sum+1)*2;
}
printf("x=%d\n",sum);
}网购打折商品(5分)
题目内容:
某网上购物网站对用户实行优惠,买家购物货款p越多,则折扣越多。
标准如下:
p<100元没有折扣
100元≤p<200元 5%折扣
200元≤p<500元 8%折扣
500元≤p<1000元 10%折扣
1000元≤p 15%折扣
【提示】:从题意可以看出,折扣的变化是有规律的。
当购物金额达到“100元”的2倍、5倍、10倍时,折扣值就会发生变化。
假如一个变量c代表100的倍数,则当c<1时,无折扣;当1≤c<2时,折扣d=5%;当2≤c<5时,折扣d=8%;当
5≤c<10时,折扣d=10%;当10≤c时,折扣d=15%。
注:程序中与价格相关的数据类型为float
程序运行结果示例1:
Input payment:90↙
price =
程序运行结果示例2:
Input payment:100↙
price =
程序运行结果示例3:
Input payment:300↙
price =
程序运行结果示例4:
Input payment:1000↙
price =
程序运行结果示例5:
Input payment:↙
price =
输入提示:"Input payment:"
输入格式: "%f"
输出格式:"price = %.1f\n" (注:等号左右均有空格) #include<>
int main()
{
int c;
float b;
printf("Input payment:");
scanf("%f",&b);
c=b/100;
if(c<1)
{
printf("price = %.1f\n",b); }
else if(1<=c&&c<2)
{
printf("price = %.1f\n",b*; }
else if(2<=c&&c<5)
{
printf("price = %.1f\n",b*; }
else if(5<=c&&c<10)
{
printf("price = %.1f\n",b*; }
else
{
printf("price = %.1f\n",b*; }
}。