第二章
2.2(8)C B
2.3
(1) sqrt(a*a+b*b)/(2*c)
或 sqrt(pow(a,2)+pow(b,2))/(2*c)
(2) fabs((a+b)*(c+d)+2)
(3) (log(x)+sin(y))/2 (y 为弧度)
(4) 2*3.1415*r
(5) 1/(1+1.0/x)
(6)
(sin(3.14/180*30)+2*exp(x))/(2*y+pow(y,x))
第三章
3.2 (1)C (2) D
3.3 (1) 改:scanf(“%d,%d”,&a,&b) ;
(2)错误:数据输出
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
与数据类型不匹配
改:printf(“%f”,f);
(3)错误:数据输入格式与数据类型不匹配
改:scanf(“%lf%d”,&var,&a);
(4)错误:在 scanf 函数输入格式控制串多
了’\n’,a 和 b 前面少了&.
改 scanf(“%d,%d”,&a,&b);
(5) 错误:%f 的输入格式不应有精度控制。
改:scanf(“%5f”,&f);
(6) 改:输入为 a=6,b=2
3.4 (1)aabbccabc (3)68 (5) 12 9
13 9
3.5 #include
#include
main( )
{
float a,b,c; /*a,b,c 为三边变量*/
float s,area;
printf(“input a,b,c:”);
scanf(“%f,%f,%f”,&a, &b, &c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“area=%.2f\n”,area);
}
第四章
4.2 (1)D (2)B (3)D (4)D
4.3 (1)over! (2)right
4.4 (1)①(year % 4==0 && year%100 !=0)
|| (year % 400=0)
②flag
(2) ① (ch>=’a’&& ch<=’z’) ||
(ch>=’A’&&ch<=’Z’)
②ch<=’9’&& ch>=’0’
③ch==’ ‘
4.8 #include
main( )
{
char c;
printf(“*******TIME*******”);
printf(“1 morning \n”);
printf(“2 afternoon \n”);
printf(“3 night \n”);
printf(“please enter your choice”);
c=getchar();
switch(c)
{
case ‘1’: printf(“Good morning \n”);break;
case ‘2’: printf(“Good afternoon \n”);break;
case ‘3’: printf(“Good night \n”); break;
default: printf(“selection error! \n”);break;
}
}
4.10
#include
main( )
{
int i, sum=0;
for (i=1;i<=101;i=i+2)
{ sum=sum+i;}
printf(“sum=%d\n”,sum);
}
- 1 - 课后练习
- 2 - 课后练习
4.26 4.11
#include #include
main( ) main( )
{ int m,n,i ; {
.......(省略了表头部分) long i;
for (n=1 ;n<10 ;n++) long term,sum=0;
{ for (i=1;i<=99;i=i+2)
for(i=1 ;i<4*n-4 ;i++) {
printf(“ ”) ; term=i*(i+1)*(i+2);
for(m=n ;m<10 ;m++) sum=sum+term;
printf(“%4d”,m*n); }
printf(“\n”); printf(“sum=%ld”,sum);
} }
} 4.13
#include
第五章 main( )
5.1 (1)ACD (2)BC {
5.2 long term=0,sum=0;
(1)Delay()未先声明或定义就使用 int a,i,n;
(2)没有参数的函数应注明 void printf(“input a,n:”);
(3)变量 times 未赋值就使用 scanf(“%d,%d”,&a,&b);
(4)Delay()函数中没有 return 语句 for(i=1;i<=n;i++)
5.3 {
结果:2,6,42,3 term=term*10+a; /*求出累加项*/
sum=sum+term; /*进行累加*/
第六章 }
6.1 (1)C (2)B (3)B (4)B (5)D (6)A printf(“sum=%ld\n”,sum);
(7)A (8)A (9)B }
6.4 4.18
#include #include
main( ) main( )
{ int i,n,sum=0,counter=0; {
printf(“input 20 numbers:\n”); int i,j,k,n;
for (i=0;i<20;i++) printf(“result is:”);
{ for (n=100;n<1000;n++)
scanf(“%d”,&n); {
if (n>=0) i=n/100; /*分出百位*/
{ j=(n-i*100)/10; /*分出十位*/
sum=sum+n; k=n%10; /*分出个位*/
counter++; if (i*100+j*10+k= =i*i*i+j*j*j+k*k*k)
} printf (“%d\t ”,n);
}
printf(“sum=%d,counter=%d”,sum,counter
}
printf(“\n”) ;
} }
6.5
#include
#define ARR_SIZE 10
/*函数功能:找出 n 个数中的最大数与最小数并将其位置对换
函数参数:整型数组 a,存放待处理数据
整型变量 n, 为数据个数
返回值:无*/
void MaxMinExchang(int a[],int n)
{
int maxValue=a[0],minValue=a[0],maxpos=0,minpos=0; /*maxpos:最大值位置,minpos :最小
值位置*/
int i,temp;
for (i=1;imaxValue)
{ maxValue=a[i];
maxpos=i;
if a[i]
#define ROW 2
#define COL3
main( )
{
int a[ROW][COL]={1,4,6,8,10,12};
int i,j,temp;
for (i=0;i=0;j--)
{a[i][j+1]=a[i][j];} /*将当前行其他列后移*/
a[i][0]=temp; /*将暂存数据赋予当前第一列*/
}
for (i=0;i
本文档为【C语言课后练习答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。