习题参考答案63422
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章习题参考答案
1.对C语言来说,下列标识符中哪些是合法的,哪些是不合法的total, _debug, Large&Tall, Counter1, begin_
解答:Large&Tall不合法,其余都合法。
2.改写本章节中的流程图,求1~100中能被6整除的所有整数的和。解答:
sum = 0
i = 1
真i <= 100
真
能被整除
假
假
sum = sum + i
i = i + 1
打印sum
图“求1~100中能被6整除的所有整数的和”的流程图
11
3.改写本章节中的程序,求1~100中能被6整除的所有整数的和,并在编程环境中验证
该程序的运行结果。
解答:
#include <>
int main(void)
{
int i, sum = 0;
for(i = 1; i <= 100; i++)
if (i%6 == 0)sum = sum + i;
printf("%d", sum);
return 0;
}
运行结果:816
4.对于给定的整数n(n>1),请设计一个流程图判别n是否为一个素数(只能被1和自己整除的整数),并分析该流程图中哪些是顺序结构、哪些是分支结构与循环结构。
解答:在流程图中,分支结构和循环结构如图所示,自上而下的2个实线框和2个虚线组
成了顺序结构。
输入n
i = 2
i<=n/2
假
真
真
能被整除
假
循环结构
i = i + 1
真
打印n是素数i>n/2
假
打印n不是素数
分支结构
第2章习题参考答案
(i)
4.编写程序,输入两个正整数m和n,求
解答:
#include <>
int main(void)
{
int i, m, n;
double sum;
scanf("%d%d", &m, &n);
sum = 0;
for(i = m; i <= n; i++)
sum = sum + i * i + / i;
printf("sum = %.6f\n", sum);
return 0;
}
23i。
456
5.编写程序,输入一个正整数n,计算解答:
#include <>
int main(void)
{
int flag, i, n;
double item, sum;
scanf("%d", &n);
sum = 0;
flag = 1;
for(i = 1; i <= n; i++){
item = flag * * i / (2 * i - 1);
sum = sum + item;
flag = -flag;
} 1
357911
.....
的前n 项之和。
26
1
} printf("sum = %.3f\n", sum); return 0;
8.编写程序,输入一个正整数n,求
型是double。
解答:
#include <>
int main(void)
{
int i, n;
double sum;
double fact(int n);
scanf("%d", &n);
sum = 0;
for(i = 0; i <= n; i++){
sum = sum + fact(i);
}
printf("sum = %.0f\n", sum);
return 0;
}
double fact(int n)
{
int i;
double product;
product=1;
for(i = 1; i <= n; i++)
product = product * i;
return product;
} e i!
。要求定义和调用函数fact(n)计算n!,函数类
第3章习题参考答案
程序设计题
1.输入三角形的3条边a, b, c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出"These sides do not correspond to a valid triangle"。
在一个三角形中,任意两边之和大于第三边。三角形面积计算公式:
解答:
areas(sa)(sb)(sc),其中s = (a+b+c)/2
#include <>
#include <>
int main(void)
{
int a,b,c;
double area,s,perimeter;
scanf("%d%d%d",&a,&b,&c);
if((a+b>c)&&(b+c>a)&&(a+c>b)){
perimeter=a+b+c;
s=(a+b+c)*2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%.2f,perimeter=%.2f\n",area,perimeter);
}
else
printf("These sides do not correspond to a valid triangle\n");
return 0;
}
4.输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计各等级成绩的个数。成绩分为5个等级,分别为A(90~100)、B(80~89)、C(70~79)、D(60~69)、E(0~59)。
#include <>
int main(void)
{
int mark, n, i, sum;
double average;
int counta, countb, countc, countd, counte;
printf("Enter n: ");
scanf("%d",&n);
counta= countb = countc = countd = counte =sum=0;