搜档网
当前位置:搜档网 › C语言程序设计上mooc答案

C语言程序设计上mooc答案

第一周作业

【练习1】HelloWorld

“Hello World”示例程序最早出现于1972年,由贝尔实验室成员Brian Kernighan撰写的内部技术文件《Introduction to the Language B》之中。不久同作者于1974年所撰写的《Programming in C: A Tutorial》,也延用这个示例。

一般来说,这是每一种计算机编程语言中最基本、最简单的程序,亦通常是初学者所编写的第一个程序。它还可以用来确定该语言的编译器、程序开发环境,以及运行环境是否已经安装妥当。将“Hello World”作为第一个示范程序,已经成为编程语言学习的传统。

我们在这里继续传统,这也是一种向前辈们致敬的方式之一吧!

最早的程序基本是这个样子的:

#include

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

#define PAI 3.1415926

int 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

#define PAI 3.1415926

int 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 码

我们在计算机基础中已经学过:字母在计算机中采用ASCII码进行存储。下面要从键盘上输入任意一个字符,然后输出该字符对应的ASCII码。

输入:

一个字符

输出:

该字符对应的ASCII码

期待的输出时间限制

期待的输出时间限制

程Code:

#include

int main()

{

char ch;

scanf("%c",&ch);

printf("The ASCII of character '%c' is %d.",ch,ch);

return 0;

}

2、一年级的算术题

背景:

小明上小学一年级了,老师已经教会了他们进行整数的+、-、*、/、% 计算,下面老师开始出题,给出一个简单的算术表达式,请小明给出计算结果。

输入:

接受两个整数,每个整数之间使用空格分隔。例如输入格式为:123 444

输出:

分别输出按照整型数据进行+、-、*、/、* 之后的运行结果。

测试输入期待的输出

#include

int main()

{

int a, b;

char ch = 37;

scanf("%d%d",&a,&b);

printf("%d+%d=%d\n",a,b,a + b);

printf("%d-%d=%d\n",a,b,a - b);

printf("%d*%d=%d\n",a,b,a * b);

printf("%d/%d=%d\n",a,b,a / b);

printf("%d%c%d=%d\n",a,ch,b,a % b);

return 0;

}

3、判断三角形的形状

要求

输入三角型的三条边,判断三角形的形状。假设输入的三边边长均>0。

输入:

三角型的3条边的长度(int 型)。

输出:

等边三角形:equilateral triangle 等腰三角形:isoceles triangle 不构成三角形:non-triangle 一般三角形:triangle

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例 1

以文本方式显示

1.

2 2 2?

以文本方式显示

1.

equilateral triangle.?

1秒

64M

测试用例 2

以文本方式显示 1.

3 2 2?

以文本方式显示 1.

isoceles triangle.?

1秒 64M 0

测试用例 3

以文本方式显示 1.

1 3 1?

以文本方式显示 1.

non-triangle.?

1秒 64M 0

测试用例 4

以文本方式显示 以文本方式显示

1秒 64M 0

测试输入 期待的输出

时间限制

内存限制

额外进程

1. 3 4 5? 1. triangle.?

测试用例 5

以文本方式显示 1.

2 3 2?

以文本方式显示 1.

isoceles triangle.?

1秒 64M 0

测试用例 6

以文本方式显示 1.

2 2 3?

以文本方式显示 1.

isoceles triangle.?

1秒 64M 0

测试用例 7

以文本方式显示 1.

3 1 1?

以文本方式显示 1.

non-triangle.?

1秒 64M 0

测试用例 8

以文本方式显示 1.

1 1 3?

以文本方式显示 1.

non-triangle.?

1秒 64M 0

测试用例 9

以文本方式显示 1.

5 4 3?

以文本方式显示 1.

triangle.?

1秒 64M 0

测试用例 10

以文本方式显示 1.

4 5 3?

以文本方式显示 1.

triangle.?

1秒 64M 0

Code

#include int main() {

int a, b, c;

scanf("%d%d%d",&a,&b,&c); if(a + b > c && a + c > b && b + c >a) { if(a == b && a == c && b == c) {

printf("equilateral triangle.\n");

return 0;

}

if(a == b || a == c || b == c)

{

printf("isoceles triangle.\n");

return 0;

}

printf("triangle.\n");

}

else

{

printf("non-triangle.\n");

}

return 0;

}

第四周作业

1.【中学】计算时钟的夹角

背景:钟面上的时针和分针之间的夹角总是在0 ~180之间( 包括0 和180 ) 。举例来说,在十二点的时候两针之间的夹角为0 ,而在六点的时候夹角为180 ,在三点的时候为90 。本题要解决的是计算12:00 到11:59 之间任意一个时间的夹角。

输入:

每组测试数据包含两个数字:第一个数字代表小时( 大于0 小于等于12) ,第二个数字代表分( 在区间[0, 59] 上) 。

输出:

对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。输出格式如下所示。

再看一看,想一想:是否可以不用if 语句,只使用printf 函数来简化你的程序?

测试输入期待的输出

测试输入期待的输出

Code

#include

int main()

{

int hour, minute, temp;

float angle, h_angle, m_angle;

scanf("%d%d",&hour,&minute);

temp = hour;

if(hour == 12) temp = 0;

h_angle = temp * 30.0 + minute * 0.5;

m_angle = minute * 6.0;

angle = h_angle > m_angle ? h_angle - m_angle : m_angle - h_angle;

if(angle > 180.0) angle = 360.0 - angle;

printf("At %d:%02d the angle is %.1f degrees.\n",hour,minute,angle);

return 0;

}

2.【日期】确定母亲节

输入:

年份

输出:

日期(5月的哪一天)

测试输入期待的输出

Code:

#include

int main()

{

int year, n, week, total, day;

scanf("%d",&year);

if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)

{

week = (year + year / 4 + year / 400 - year / 100 - 1) % 7;

for(n = 0;n < 5; n++)

{

if(n == 0) total = 0;

if(n == 1 || n == 3) total += 31;

if(n == 2) total += 29;

if(n == 4) total += 30;

}

}

else

{

week = (year + year / 4 + year / 400 - year / 100) % 7;

for(n = 0; n < 5; n++)

{

if(n == 0) total = 0;

if(n == 1 || n == 3) total += 31;

if(n == 2) total += 28;

if(n == 4) total += 30;

}

}

week = (week + total) % 7;

if (week == 0) week = 7;

day = 7 - week + 8;

printf("%d\n",day);

return 0;

}

3.【日期】计算星期

是否合法,对于非法的日期要给出错误提示信息,合法的日期要再计算是星期几。输入:

年月日

输出:

0~6。

星期日用0 表示,星期一用1 表示,星期二用2 表示......星期六用6 表示。假设年份大于1900。先想一想:我们现在只会使用if 语句,该如何建立数学模型?

测试输入期待的输出

Code:

#include

int main()

{

int year, month, day, n, week, total;

scanf("%d%d%d",&year, &month, &day);

if(year <= 1900){

printf("year is error.\n");

return 0;

}

if(month >= 13 || month < 1){

printf("month is error.\n");

return 0;

}

if(day < 0){

printf("day is error.\n");

return 0;

}

switch (month){

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

if(day > 31)

{printf("day is error.\n"); return 0;}

break;

case 4:

case 6:

case 9:

case 11:

if(day > 30)

{printf("day is error.\n"); return 0;}

break;

case 2:if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {

if(day > 29) {printf("day is error.\n"); return 0;}

}

else

{

if(day > 28) {printf("day is error.\n"); return 0;}

}

break;

}

if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)

{

week = (year + year / 4 + year / 400 - year / 100 - 1) % 7;

for(n = 0;n < month; n++)

{

if(n == 0) total = 0;

if(n == 1 || n == 3 || n == 5 || n == 7 || n == 8 || n == 10 ) total += 31;

if(n == 2) total += 29;

if(n == 4 || n == 6 || n == 9 || n == 11) total += 30;

}

}

else

{

week = (year + year / 4 + year / 400 - year / 100) % 7;

for(n = 0; n < month; n++)

{

if(n == 0) total = 0;

if(n == 1 || n == 3 || n == 5 || n == 7 || n == 8 || n == 10 ) total += 31;

if(n == 2) total += 28;

if(n == 4 || n == 6 || n == 9 || n == 11) total += 30;

}

}

week = (week + total + day - 1) % 7;

printf("%d\n",week);

return 0;

}

4.【中学】求最后3位数值(选做)

小明在中学会求一个数的 n 次方了,但计算机还不会,请你来编写一个程序吧。由于计算机比较“笨”,所以我们编写程序的功能不用太强,只要能算出 a 的 n 次方的最后 3 位数就可以了。 输入:

a 和 n 的值。假设 a<=150 。 输出:

求 a 的 n 次方的最后 3 位数。

提示:再想一想,你的方法对吗?你用的是什么数据类型?

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例 1 以文本方式显示 1.

10 0?

以文本方式显示 1.

The last 3 numbers is 1.?

1秒

64M

0 测试用例 2 以文本方式显示 1.

2 8?

以文本方式显示 1.

The last 3 numbers is 256.?

1秒

64M

测试用例 3

以文本方式显示 1.

100 10?

以文本方式显示 1.

The last 3 numbers is 000.?

1秒

64M

Code:

#include

int main()

{int a,b,d,c=1;

scanf("%d%d",&a,&b);

if(b==0)

c=1;

for(d=1;d<=b;d++)

{

c*=a;

c=c%1000;}

if(c==0)

printf("The last 3 numbers is 000.\n");

else

{

printf("The last 3 numbers is %d.",c);

return 0;}

}第五周作业

1.锻炼身体吧

题目描述:

沫沫,灰灰和渣渣去锻炼身体,如果对他们跑步的距离分别只计整数a、b、c,由于他们身高的差距,造成了a<=b<=c,并且渣渣跑了N米之后就再也跑不动了。但是,按照他们事先的约定:只有当c*c==a*a+b*b 时,他们的锻炼才有效果。

现在他们三个人想知道,如果渣渣的极限N已知,那么有多少种有锻炼效果的跑步方案(即a, b, c有多少种可能的取值)。

输入:

一个整数N,表示渣渣的体力极限,N <= 5000。

输出:

一个整数,代表他们跑步方案的个数。

Hint:对于输入N=5,有方案a=3, b=4, c=5, 共一种。

测试输入期待的输出时间限制内存限制额外进程

测试输入期待的输出时间限制内存限制额外进程

Code:

#include

int main()

{

int a = 1,b = 1,c = 1,maxnum,count = 0;

scanf("%d",&maxnum);

for(c = 1;c <= maxnum;c++)

{

for(a = 1; a < c; a++ )

{

for(b = 1; b < c; b++)

{

if((c*c == a*a +b*b)&&(a <= b)) count++;

}

}

}

printf("%d\n",count);

return 0;

}

2.寻找特殊偶数

背景

有一种特殊偶数,它每一位上的数字都两两不相同。我们现在需要找出四位数中某一区间内的这类偶数。

输入

所要寻找的四位偶数的范围。每组输入有两个数字:第一个数字是最小范围;第二个数字是最大范围。如果输入遇到0,输入结束。

输出

列出此范围内的所有特殊偶数,并且列出此范围内特殊偶数的个数。

测试输入

期待的输出

时间限制

内存限制

额外进程

试用例 1

以文本方式显示 1. 3000 3020? 2. 6040 6090? 3.

0 0?

以文本方式显示

1. 3012 3014 3016 3018 ?

2. counter=4?

3.

6042 6048 6052 6054 6058 6072 6074 6078 6082 6084 ? 4. counter=10?

1

秒 64M

0 测试用例 2

以文本方式显示 1. 9 101? 2. 87 -1? 3.

0 0?

以文本方式显示 1. Error ? 2.

Error ?

1秒 64M

Code :

#include int main() {

int maxnum, minnum, n, g, s, b, q, count = 0; while(1){

scanf("%d%d",&minnum,&maxnum);

if(minnum == 0 && maxnum == 0) return 0;

if((minnum > 999 && minnum < 10000) && (maxnum > 999 && maxnum < 10000) && (maxnum >= minnum)) { for(n = minnum; n <= maxnum; n++) { if(n % 2 == 0){ q = n / 1000;

b = n % 1000 / 100;

s = n % 100 / 10;

g = n % 10;

if(q != b && q != s && q != g && b != s && b != g && s != g)

{

count++;

printf("%d ",n);

}

}

}

printf("\n");

printf("counter=%d\n",count);

count = 0;

}

else

printf("Error\n");

}

return 0;

}

3.求最小m 值

1 +

2 +

3 +

4 + ...... + m ≥ n

例如:n=100,当m =14 时,满足:1+2+3+4+...+13=91<100,而1

+2+3+4+......+14=105>100。

输入:n

输出:m

测试输入期待的输出时间限制内存限制额外进程

Code:

#include

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

《C语言程序设计》课后习题答案

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.1什么是算法16 2.2简单的算法举例17 2.3算法的特性21 2.4怎样表示一个算法22 2.4.1用自然语言表示算法22 2.4.2用流程图表示算法22 2.4.3三种基本结构和改进的流程图26 2.4.4用N S流程图表示算法28 2.4.5用伪代码表示算法31 2.4.6用计算机语言表示算法32 2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

C语言课后习题答案(最终)

第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答:

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

C语言课后习题答案(完整版)-第四版-_谭浩强

C语言课后习题答案-第四版- 谭浩强(1-7) 第一章 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } #include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } #include #include int main()

{float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和 return 0; } #include #include int main() {double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

最新c语言课后习题答案汇总

c语言课后习题答案

第二章习题 2.什么叫做结构化算法?为什么要提倡结构化算法? 答:结构化算法是由一些基本结构顺序组成的。在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本的结构范围内。一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变。 跟结构化算法比较起来,非结构化算法有以下缺点: 流程不受限制的随意转来转去,使流程图豪无规律使人在阅读的时候难以理解算法的逻辑.难以阅读,也难以修改,从而使算法的可靠性和可维护性难以保证。 4. 第三章习题 1.#include #include void main() { unsigned int n;

float p,p1,r=0.09; scanf("%u",&n); p=pow(1+r,n); p1=(p-1)*100; printf("%5.2f%%\n",p1); } 运行结果:输入,回车,见结果: 2.#include #include int main() { int bj=1000; float r1,r2,r3,r5,r0,lx1,lx2,lx3,lx4,lx5; r1=0.0414; r2=0.0468; r3=0.0540; r5=0.0585; r0=0.0072; lx1=bj*r5; lx2=bj*(1+r2)*r3; lx3=bj*(1+r3)*r2; lx4=bj*pow(1+r1,5); lx5=bj*r0*5; printf("lx1=%f lx2=%f lx3=%f lx4=%f lx=5%f\n",lx1,lx2,lx3,lx4,lx5); return 0; } 运行结果: 3.#include #include int main() { long d,p; d=300000; p=6000; double m,r=0.01; m=log(p/(p-d*r))/log(1+r); printf("%4.2f",m); return 0;

C语言程序设计习题答案

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

C语言课后习题答案

第1章C语言概述 一、选择题 答案: 1.A 2.B 3.C 4.C 5.D 6.B 7.D 8.B 二、填空题 答案: 1.函数2.目标3.编译程序4.分号 第2章数据类型、运算符和表达式 一、选择题 答案: 1.B 2.D 3.D 4.B 5.D 6.C 7.C 8.B 9.A 10.D 11.B 12.B 13.D 14.D 15.A 16.C 17.B 18.D 19.A 20.C 二、填空题 答案: 1.2 2.6,4,2 3.18 4.5 5.double或双精度 6.30 7.4,2 8.4 第3章顺序结构 一、选择题 答案: 1.C 2.C 3.C 4.A 5.A 6.A 7.D 8.D 9.C 10.D 二、填空题 答案: 1.scanf printf 2.顺序、选择、循环3.1 4.3 5.9,10 6.10,20 7.213 8.空格、Tab键、回车键 第4章选择结构 一、选择题 答案: 1.B 2.D 3.D 4.B 5.B 6.C 7.C 8.B 9.B 二、程序改错题 1.输入两个实数,在fun()函数中按数值由小到大输出它们。(保留2位小数)

答案: =======(答案1)======= float t; =======(答案2)======= if(a>b) =======(答案3)======= printf("%5.2f, %5.2f\n",a,b); 2.编写一个程序计算某年某月有几天。(注意要区分闰年) 答案: =======(答案1)======= switch(mm) =======(答案2)======= break; =======(答案3)======= default : 三、程序填空题 1.功能:输出a、b、c三个变量中的最小值。 答案: =======(答案1)======= &c =======(答案2)======= c:t1 四、程序设计题 1.功能:对任意输入的x,用下式计算并输出y 的值。说明:因为关于函数调用的知识在第7章讲解,所以在现阶段本程序的设计可以改用一个主函数来完成。 答案: int m; if(n<10) m=5; else if(n==10) m=0; else m=-5; return m; 或 int m; if(n>=10) if(n>10) m=-5; else m=0; else m=5; return m; 第5章循环结构 一、选择题

c语言程序设计第五版习题答案

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、dowhile语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { inta1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main()

{ inta1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型

C语言课后习题标准答案

C语言课后习题标准答案 第1章C语言概述 一、简答题 1.(1)语言简洁、紧凑,使用方便、灵活;(2)运算符丰富;(3)具有丰富的数据类型;(4)具有结构化的控制语句;(5)语法限制不太严格,程序设计自由度大;(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接访问硬件;(7)生成目标代码质量高,程序执行效率高;(8)用C语言写的程序可移植性好,基本上不作修改就能用于各种型号的计算机和各种操作系统。 2.顺序结构,分支结构,循环结构 3.所谓算法就是为解决一个问题而采取的方法和步骤。 算法的特性:有穷性、确定性、输入、输出、可行性。 表示算法的方式:(1)用自然语言表示;(2)用流程图表示;(3)用N—S流程图表示; (4)用伪代码表示;(5)用计算机语言表示。 二、算法 1.瓶子A里盛有醋 瓶子B里盛有酱油 那一个空瓶C 将A中的醋倒入C 将B中的酱油倒入A

将C中的醋倒入B 2.输入一个数放在a中max=a 以下步骤重复9次: 输入一个数放在a中 如果a>max,max=b 打印max的值 3.如果??a<b temp=a ?a=b ??b=temp 如果c>a ?temp1=a ??temp2=b a=c ?b=temp1 ?c=temp2 否则 ?如果?c>b ?temp=b ?b=c ?c=temp

打印a,b,c的值 4.i=1 sum=0 以下程序循环100遍: sum=sum+i ?i=i+1 打印sum的值 5.如果(n除以3的余数为0并且n除以5的余数为0)n能够同时被3和5整除 否则 ?n不能够同时被3和5整除 6.i=101 以下语句循环50遍: ?j=2 ?flag=1 ?当j<(i除以2的整数部分)时循环以下语句: ??如果i除以j的余数为零 ???flag=0 ???退出该循环 如果flag=1 ???打印i的值 ?i=i+1

《C语言程序设计教程》习题参考答案

《C语言程序设计教程》习题参考答案 祝胜林主编 华南理工大学出版社 【习题1】 (1) 【习题2】 (2) 【习题3】 (3) 【习题4】 (5) 【习题5】 (8) 【习题6】 (11) 【习题7】 (14) 【习题8】 (16) 【习题9】 (16) 【习题10】 (18)

一、简答题(在课本中寻找答案,略) 1.1C程序的基本结构包括哪些内容? 1.2如何定义标识符? 1.3输入格式、输出格式的组成包括哪些内容? 1.4C语言函数分为哪两类? 1.5计算表达式的值应该考虑哪些方面? 1.6上机调试程序的步骤如何? 二、判断并改错 1.7C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 错误:main函数可以放在程序的任何位置。并不限定在程序的开头。 1.8定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 错误:不可以交叉出现,数据说明部分在执行语句部分的前面。 1.9编辑与编译不是一回事。 错误:不是一回事。编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。 1.10scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。 正确 1.11注释内容太多会影响程序的执行效率。 错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。 1.12所有的数学公式可以直接出现在源程序中。 错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。 三、编程题 1.13在屏幕上输出自己名字的拼音。 提示:中文名字叫?张三?,对应的拼音为?Zhang San?,输出用printf()函数。 1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。 提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f 1.15输入两个整数,输出其中最大者。 提示:模仿例1.3 1.16 输入三个整数,输出其中最小者。 提示: min(min(a,b),c);

c语言程序设计题目及答案

一、程序设计共113 题第1 题题 号:319 #include "stdio.h" void wwjt(); int fun(int m) { int i,k=1; if(m<=1) k=0; for(i=2;i #include #define M 3 #define N 4 void wwjt(); void fun(int tt[M][N],int pp[N]) { int i,j; for(j=0;jpp[j]) pp[j]=tt[i][j]; } 第3 题题号:375 功能:从键盘上输入任意实数, 求出其所对应的函数值。 z=e 的x 次幂( x>10) z=log(x+3) (x>-3) z=sin(x)/((cos(x)+4) #include #include void wwjt(); double y(float x) { double z; if(x>10) z=exp(x); else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z); } 第4 题题号:334 功能:求给定正整数n 以内的素数之积。( n<28) #include #include"conio.h" void wwjt(); long fun(int n) { long i,k; long s=1; for(i=2;i<=n;i++) {for(k=2;k #include"conio.h" void wwjt(); long int fun(int n) { long s=1,i; for(i=2;i<=n;i++) if(n%i==0)s=s*i; return s; } 第6 题题号:50 功能:求出菲波那契数列的前一项与后一项之比的极限的 近似值例如:当误差为0.0001 时,函数值为0.618056 。 #include #include "math.h" void wwjt(); float fun() { float f1=1,f2=1,f3; float r1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); return r1; } 第7 题题号:394 功能:产生20个[30,120] 上的随机整数放入二维数组 a[5][4] 中, 求其中的最小值。 #include "stdlib.h" #include void wwjt(); int amin(int a[5][4]) { int i,j,s; s=a[0][0];

《C语言程序设计》课后习题参考答案

高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案 ――武汉大学出版社 习题1参考答案 一、选择题 1. A 2. D 二、填空题 1. BASIC、FORTRAN、AL_GOL60和COBOL 2. 8 3. 关键字 4. 编辑、编译、链接和运行 三、简答题 1.答: (1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。 (2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关的指针类型。此外,用户还可以根据需要自定义数据类型。(3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。 (4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。 (5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。 (6)C语言与汇编语言相比,可移植性好。 (7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。 2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。 3.答: (1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。

相关主题