第5章C语言程序设计(张曙光)教材各章习题解答
(1)int
(2)fun(n,x)
(3)函数类型
(4)3
(5)3
(6)单向值传递
(7)
double fun(double x);
void two_beeps();
(8)1+2+…+n 递归算法
(9)auto register static extern
(10)编译
2.
(1)函数定义和函数原型不一致。
函数定义的头部改为:double f1(float num)
(2)num为形参。
删除float num;
(3)缺少函数原型的声明。
在#include <stdio.h>命令行下增加函数原型声明float ftoc(float temperature);
3.
(1)C)
(2)C)
(3)A)
(4)B)
(5)D)
(6)D)
(7)D)
(8)C)
4.
(1)①float fs( float x, float y) ②float z ③z;
(2)④double max
(3)⑤k+1;i++ ⑥n%10
(4)⑦3+DIF(n-1)
(5)⑧i<=y
⑨s=s*x
5.
(1)6
(2)3.00
(3)7
(4)1
2
6
24
120
(5)The number of taozi is 31
6.
#include <stdio.h>
int fun(int m)
{
int i=1,s=0;
while(i<=1000)
{
if(i%m==0)
s+=i;
i++;
}
return(s);
}
int main(void)
{
int m,sum=0;
scanf("%d",&m);
sum=fun(m);
printf("%d",sum);
return 0;
}
7.
#include <stdio.h>
double fun(int n)
{
int i=1;
double s=0;
while(i<=n)
{
if(i%3==0|| i%5==0)
s+=1.0/i;
i++;
}
return(s);
}
int main(void)
{
int n;
double sum=0;
scanf("%d",&n);
sum=fun(n);
printf("%f",sum);
return 0;
}
8.
#include <stdio.h>
int hef(int u,int v)
{
int t,r,m=u,n=v;
if (v>u)
{
t=u;
u=v;
v=t;
}
while((r=u%v)!=0)
{
u=v;
v=r;
}
return(m*n/v);
}
int main(void)
{
int b[5],i,f[5];
for(i=0;i<5;i++)
scanf("%d",&b[i]);
f[4]=b[4];
for(i=4;i>=0;i--)
f[i-1]=hef(f[i],b[i-1]);
printf("%d",f[0]);
return 0;
}
9.
#include <stdio.h>
#include <math.h>
int num_of_primes(int x, int y)
{
int n,i,num=0,flag;
for (n=x;n<=y;n++)
{ flag=0;
for (i=2;i<=sqrt((double)n);i++)
if (n%i==0)
{
flag=1;
break;
}
if (!flag)
num++;
}
return(num);
}
int main(void)
{
int a,b,t;
int countnum;
scanf("%d%d",&a,&b);
if(a>b)
{
t=a; a=b;b=t;
}
countnum=num_of_primes(a,b);
printf("%d",countnum);
return 0;
}。
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=502.输入下面程序并运行。
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=20x=2003.输入下面程序并运行。
#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。
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=502.输入下面程序并运行。
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=20x=2003.输入下面程序并运行。
#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。
c语言程序设计课后习题及答案
c语言程序设计课后习题及答案C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授了编程语言的基本知识,还培养了学生的逻辑思维能力和问题解决能力。
课后习题是巩固课堂学习内容的重要手段,以下是一些C语言程序设计的典型课后习题及答案。
习题1:基本数据类型编写一个程序,输入一个整数和一个浮点数,然后输出它们的和。
```c#include <stdio.h>int main() {int a;float b, sum;printf("请输入一个整数:");scanf("%d", &a);printf("请输入一个浮点数:");scanf("%f", &b);sum = a + b;printf("它们的和是:%f\n", sum);return 0;}```习题2:条件语句编写一个程序,根据输入的成绩判断学生的等级。
```c#include <stdio.h>int main() {float score;printf("请输入学生的成绩:");scanf("%f", &score);if (score >= 90) {printf("等级:A\n");} else if (score >= 80) {printf("等级:B\n");} else if (score >= 70) {printf("等级:C\n");} else if (score >= 60) {printf("等级:D\n");} else {printf("等级:F\n");}return 0;}```习题3:循环结构编写一个程序,计算1到100的整数之和。
C语言程序设计教程 第五章 课后习题参考答案
k++;
if(k%5==0)
printf("\n");
f1=f2;
f2=f;
}
printf("\n");
return 0;
}
P124 3统计一个整数的位数
#include<stdio.h>
int main()
{
int n,k=0;
printf("请输入n的值:");
int main()
{
int x,y,z,i=0;
for(x=1;x<=20;x++)
{
for(y=1;y<=33;y++)
{
for(z=3;z<=99;z=z+3)
{
if((5*x+3*y+z/3==100)&&(x+y+z==100))
i++;
}
}
}
printf("共有%d种买法:\n",i);
c语言程序设计教程第五章课后习题参考答案
P1242古典问题:兔子总数(斐波那契数列)
#include<stdio.h>
int main()
{
int f1=1,f2=1,f,i,k=0;
printf("%d\t %d\t",f1,f2);
k=k+2;
for(i=3;i<=20;i++)
{
f=f1+f2;
do
{
printf("请输入第%d个整数x=",i);
C++程序设计(张树粹)1-6章习题解答
第一章概述一、选择题1. A2. A3. D4. A (选项中逗号不会输出)5. C6. B7.A(逗号需要原样输入)二、填空题1. .C.CPP.OBJ .EXE2. 主函数或main函数3. #include <iostream>#include <stdio.h>4. 顺序、选择、循环5. {}函数声明函数执行不能void三、分析理解题1. 答:C语言程序主要由函数组成,一般包括预处理命令、函数、全局变量声明等等。
2. 答:函数由函数首部和函数体组成。
函数首部规定函数的返回值类型、函数名、函数的形参及类型;函数体包括用于实现功能的可执行语句,由{}括起。
3. 答:基本的C语言语句由简单语句、复合语句、赋值语句、流程控制语句、非限定性转向语句等。
4. 答:合法的一般标识符有:name,Int,File_name, DATA5. 答:源程序需要经过编译程序编译转换成二进制程序,即:目标代码文件,再通过连接程序将目标文件盒其他目标文件及系统所提供的库函数等进行连接生成可执行程序。
6. 答:两种:单行注释用//. 多行注释采用/* 和*/。
7. 答:(此题注释和程序效果不一致需修改)。
源程序如图1-1所示:图1-1 ex1-7源程序运行结果如下图1-2所示:图1-2 ex1-7 运行结果分析:setprecison单独使用时用来输出实数的有效数字,若和fixed联用,则用来输出实数小数点后的数字位数。
(2)-33.7801 //setprecision(0)表示根据当前默认输出精度输出实数。
默认精度:实数输出6位有效数字。
(4) 122.1 //为num1输出4位有效数字(当实际数据位数大于所设置精度,则四舍五入)8. 答:源程序如下图1-3所示:图1-3 ex1-8源程序运行结果如下图所示:图1-4 ex1-8 运行结果第二章基本数据类型及运算符一、选择题1、B2、B3、A4、B5、C6、A7、B8、C9、D 10、D二、填空题1、 x>20 && x<30 ||x<-1002、 x>y 或者a>b3、 14、 auto、extern、static、register5、函数内部6、 int、float、double7、 2,18、为最右边表达式的值9、 710、前缀:先自增(自减)后使用;后缀:先使用后自增(自减)11、右结合性(自右向左)12、变量的数据类型、存储类型、变量名称13、是否整除14、全局变量,静态局部变量,静态局部变量15、 const,初始值和数据类型三、阅读程序题1、答:输出结果是2,12、答:输出结果是6,8,6,73、答:输出结果是n=14、答:输出结果是x=7,a=3,b=75、答:输出结果是n=-46、答:输出结果是07、答:输出结果是2147483647,-21474836488、答:输出结果是 2 3 1 2 (各数据均占8列)四、编程题1、“china”译成密码问题。
第5章C语言程序设计(张曙光)教材各章习题解答
(1)int(2)fun(n,x)(3)函数类型(4)3(5)3(6)单向值传递(7)double fun(double x);void two_beeps();(8)1+2+…+n 递归算法(9)auto register static extern(10)编译2.(1)函数定义和函数原型不一致。
函数定义的头部改为:double f1(float num)(2)num为形参。
删除float num;(3)缺少函数原型的声明。
在#include <stdio.h>命令行下增加函数原型声明float ftoc(float temperature);3.(1)C)(2)C)(3)A)(4)B)(5)D)(6)D)(7)D)(8)C)4.(1)①float fs( float x, float y) ②float z ③z;(2)④double max(3)⑤k+1;i++ ⑥n%10(4)⑦3+DIF(n-1)(5)⑧i<=y⑨s=s*x5.(1)6(2)3.00(3)7(4)12624120(5)The number of taozi is 316.#include <stdio.h>int fun(int m){int i=1,s=0;while(i<=1000){if(i%m==0)s+=i;i++;}return(s);}int main(void){int m,sum=0;scanf("%d",&m);sum=fun(m);printf("%d",sum);return 0;}7.#include <stdio.h>double fun(int n){int i=1;double s=0;while(i<=n){if(i%3==0|| i%5==0)s+=1.0/i;i++;}return(s);}int main(void){int n;double sum=0;scanf("%d",&n);sum=fun(n);printf("%f",sum);return 0;}8.#include <stdio.h>int hef(int u,int v){int t,r,m=u,n=v;if (v>u){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}return(m*n/v);}int main(void){int b[5],i,f[5];for(i=0;i<5;i++)scanf("%d",&b[i]);f[4]=b[4];for(i=4;i>=0;i--)f[i-1]=hef(f[i],b[i-1]);printf("%d",f[0]);return 0;}9.#include <stdio.h>#include <math.h>int num_of_primes(int x, int y){int n,i,num=0,flag;for (n=x;n<=y;n++){ flag=0;for (i=2;i<=sqrt((double)n);i++)if (n%i==0){flag=1;break;}if (!flag)num++;}return(num);}int main(void){int a,b,t;int countnum;scanf("%d%d",&a,&b);if(a>b){t=a; a=b;b=t;}countnum=num_of_primes(a,b);printf("%d",countnum);return 0;}。
C语言程序设计(张淑华、朱丽莉版)课后习题参考答案
C语言程序设计(张淑华、朱丽莉主编)课后习题解答(仅供参考)习题一一、选择题1.B 2.D 3.B 4.A 5.B6.C 7.C二、填空题1..obj 2.函数3./* */ 4.#include <stdio.h> int a,b; a,b三、简答题(略)习题二一、选择题1.B 2.B 3.A 4.D 5.A6.C 7.C 8.A 9.C 10.B11.A 12.A 13.C 14.A 15.C二、填空题1.变量2.存储数据的单元3.非0、0 4.(1)a>=0 (2)0 5.1 6.1 7.-30 8.38 9.4 , 7 10.-6 177772 11.9.9 12.7三、写出下列程序的运行结果1.0,0,5 2.18 3.64 512 8 4.55.d4,c四、编程题1.#include <stdio.h>#define PI 3.1415926void main(){ float r,s;printf(“Please input circinal radii\n”);scanf(“%f”,&r);s=PI*r*r;printf(“r=%.2f,s=%.2f\n”,r,s);}2.#include <stdio.h>void main(){ char c1,c2;printf(“Please input a majuscule\n”);scanf(“%c”,&c1);c2=c1>’A’&&c1<’Z’?c1+32:c1;printf(“%c\n”,c2);}3.#include <stdio.h>void main(){ int a=0,b;scanf(“%c”,&b);b=b&a;printf(“b=%d\n”,b);}习题三一、选择题1.C 2.C 3.A 4.C 5.D6.原题第2行应为c=(c-=a-5),(a=b,b+3); 答案为B 否则输出结果为5,0,57.D 8.C 9.A 10.B二、填空题1.-50 300、a=-50,b=300a=-50 b=3002.10 20 30、10,20,30、a=10,b=20,c=303.15、0、0三、写出下列程序的运行结果1.a=789.654321,a= 789.65,a= 789.65432100,a=789.6543212.b=15,b=17,b=f 3.c=1,x=0,y=0,z=1 4.2120,205.在TC环境下为216,125 在VC环境下为216,1806.a=A,b=d,c=F7.9,4,12,12 8.x=4.500000,y=4,x+y=8.500000四、编程题1.#include <stdio.h>void main(){ printf("**********************************\n");printf(" HAPPY NEW YEAR! \n");printf("**********************************\n");}2.(1) #include <stdio.h>void main(){ int a=5,b=8,c=10,m,max;m= a>b?a:b;max=c>m?c:m;printf(“max=%d\n”,max);}(2)#include <stdio.h>void main(){ int a,b,c,m,max;scanf("%d,%d,%d",&a,&b,&c);max=a>b?a:(b>c?b:c);printf(“max=%d\n”,max);}习题四一、选择题1.D 2.D 3.C 4.A 5.D 6.A 7.C 8.C 9.D 10.B二、填空题1.6、5、5 2.(a%3==0||a%7==0) 3.(1) a>b (2) a=c; (3) a,b,c三、写出下列程序的运行结果1.4 2.64 3.a=7,b=4 4.46 46 5.*#46四、编程题1.另见填空题3#include <stdio.h>void main(){ float a,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if (a>b){ t=a;a=b;b=t;}if (a>c){t=a;a=c;c=t;}if (b>c){t=b;b=c;c=t;}printf(“%.2f,%.2f,%.2f\n”,a,b,c);}2.#include <stdio.h>void main(){ int a,b;scanf("%d,%d",&a,&b);if(a%b==0)printf(“%d is divisible by %d\n”,a,b);elseprintf(“%d is not divisible by %d\n”,a,b);}3.(1) #include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);if (x>-5&&x<0)y=x;printf("y=%d\n",y);else if (x==0)y=x-1;printf("y=%d\n",y);else if(x>0&&x<10)y=x+1;printf("y=%d\n",y);elseprintf("Data out of range\n");}(2) #include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);switch(x){ case -1:case -2:case -3:case -4:y=x; printf("y=%d\n",y);break;case 0:y=x-1; printf("y=%d\n",y);break;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:y=x+1; printf("y=%d\n",y);break;default: printf("Data out of range\n");}4.#include <stdio.h>void main(){long num;int indiv,ten,hundred,thousand,tenthousand,place; /*分别代表个位、十位、百位、千位、万位和位数*/printf(“Please Input a integer(0~99999):”);scanf(“%ld”,&num);if (num>9999)place=5;else if (num>999)place=4;else if (num>99)place=3;else if (num>9)place=2;elseplace=1;printf(“place=%d\n”,place);printf(“For each digit:”);tenthousand=num/10000;thousand=(int)(num-tenthousand*10000)/1000;hundred=(int)(num-tenthousand*10000-thousand*1000)/100;ten=(int)(num-tenthousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-tenthousand*10000-thousand*1000-hundred*100-ten*10);switch(place){case 1:printf(“%d”,indiv);break;case 2:printf(“%d,%d”,ten,indiv);break;case 3:printf(“%d,%d,%d”,hundred,ten,indiv);break;case 4:printf(“%d,%d,%d,%d”,thousand,hundred,ten,indiv);break;case 5:printf(“%d,%d,%d,%d,%d”,tenthousand,thousand,hundred,ten,indiv);}}习题五一、选择题1.D 2.C 3.D 4.B 5.C6.B 7.C 8.B 9.B 10.B二、填空题1.(1) x>=0 或!(x<0) (2) x<amin2.(1) i<10 或i<=9 (2)j%3 或j%3!=03.(1) pi (2) fabs(t) (3)4三、写出下列程序的运行结果1.1 2.y=-1 3.4 4.a=2,b=8 5.*7 6.45 7.1 8.s=03423四、编程题1.#include <stdio.h>void main(){int i,j,k;for (i=1;i<=4;i++) /*输出上面4行*号*/{ for (j=1;j<=5-i;j++)printf(““); /*输出*号前面的空格*/for (k=1;k<=2*i-1;k++)printf(“*”); /*输出*号*/printf(“\n”); /*输出完一行*号后换行*/}}2.#include "stdio.h"void main(){ int num,n1,n2,p=1;scanf("%d",&num);while (num){ n1=num/10;n2=num%10;p*=n2;num=n1;}printf("num=%d,p=%d\n",num,p);}3.#include "stdio.h"void main(){ int i;float s1,s2,s3,s4,s5,sum,avg;for(i=1;i<=6;i++){ printf("Please enter a five subjects score\n");scanf("%f,%f,%f,%f,%f",&s1,&s2,&s3,&s4,&s5);sum=0;sum+=s1+s2+s3+s4+s5;avg=sum/5;printf("%d individuals,the average score is %.2f\n",i,avg);}}习题六一、选择题1.D 2.C 3.D 4.D 5.B6.A 7.C 8.D 9.A二、填空题1.地址常量2.非0 3.3.(1) j=9 (2) j>=0 4.(1) 0 (2) 6 5.(1) gets(temp); (2) strcpy(temp,str); 6.(1) i<3 (2) a[i][i] 7.(1) &a[i] (2) i%4==0 (3)printf("\n:\");8.(1) s[i]>=48 && s[i]<=57 或s[i]>='0' && s[i]<='9' (2) d[j]=0; 或d[j]='\0';三、写出下列程序的运行结果1.13715 2.s=15 3.58 4.11 5.7 0 6.how 7.max=9,row=1,col=0 8.6,4,3,2, are you? I am fine四、编程题1.#include <stdio.h>#define N 10void main(){ int a[32],x,k,r,i;printf(“Please input an integer:\");k=-1;do{ r=x%2;a[++k]=r;x/=2;}while(x>=1);for(i=k;i>=0;i--)printf(“%1d”,a[i]);printf(“\n”);}2.#include <stdio.h>#define N 10void main(){ int a[N+1]={10,20,30,40,50,60,70,80,90,100};int t1,t2,num,i,j;printf(“array a:\n”);for (i=0;i<N;i++)printf(“%d”,a[i]);printf(“\n”);printf(“Insert data:”);scanf(“%d”,&num);if (num>a[N-1])a[N]=num;else{ for (i=0;i<N;i++){ if (a[i]>num){ t1=a[i];a[i]=num;for (j=i+1;j<N+1;j++){ t2=a[j];a[j]=t1;t1=t2;}break;}}}printf("Current array a:\n”);for (i=0;i<N+1;i++)printf(“%5d\n”,a[i]);}3.#include <stdio.h>#define N 6void main(){ int i,j,a[N][N];for (i=1;i<N;i++){ a[i][i]=1;a[i][1]=1;}for (i=3;i<N;i++)for (j=2;j<i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for (i=1;i<N;i++){ for (j=1;j<=i;j++)printf(“%5d ”,a[i][j]);printf(”\n”);}}4.#include "stdio.h"void main(){ char s[80],t[80],d;int i,j;printf("Please enter a string:\n");gets(s);printf("delete?\n");d=getchar();for(i=j=0;s[i]!='\0';i++)if(s[i]!=d){ t[j]=s[i];j++;}t[j]='\0';printf("%s\n",t);}5.#include "stdio.h"#define N 8void main(){ int s[N][3],i,j,k,m,t1;float a[N],sum,t2;for(i=0;i<N;i++){ printf("Please enter the %d-th three subjects score\n",i);sum=0;for(j=0;j<3;j++){ scanf("%d",&s[i][j]);sum+=s[i][j];}a[i]=sum/3;}for(i=0;i<N-1;i++){ k=i;for(j=i+1;j<N;j++)if(a[k]<a[j]) k=j;if(k!=i){ for(m=0;m<3;m++){ t1=s[i][m];s[i][m]=s[k][m];s[k][m]=t1;} /*交换整行的值*/t2=a[i];a[i]=a[k];a[k]=t2;}}for(i=0;i<N;i++){ printf("%d-th ",i);for(j=0;j<N;j++)printf("%d ",s[i][j]);printf("%.2f\n",a[i]);}}习题七一、选择题1.C 2.A 3.B 4.B 5.A 6.D 7.C 8.D 9.C 10.C二、填空题1.struct STRU t[20]; 2.x.x、x.y、x.z.y、x.z.z3.4,8 三、写出下列程序的运行结果1.6 2.0 3.4E5S 4.21 5.Zhao,m,85,90 四、编程题1.#include "stdio.h"#define N 45struct student{ char name[20];char sex[7];int age;int score;}std[N];void main(){ int i,max=0,rowi;for(i=0;i<N;i++){ printf("Please enter the data of the %d-th student:\n",i);printf("name:");scanf("%s",std[i].name);printf("sex:");scanf("%s",std[i].sex);printf("age:");scanf("%d",&std[i].age);printf("score:");scanf("%d",&std[i].score);if(max<std[i].score){ max=std[i].score;rowi=i;}}printf("name:%s ",std[rowi].name);printf("sex:%s ",std[rowi].sex);printf("age:%d ",std[rowi].age);printf("score:%d\n",std[rowi].score);}2.#include "stdio.h"#define N 5struct student{ char name[20];char sex[7];int score;}std[N];void main(){ int i,ml=0,fml=0;float sum=0,avg;for(i=0;i<N;i++){ printf("Please enter the data of the %d-th student:\n",i);printf("name:");scanf("%s",std[i].name);printf("sex:");scanf("%s",std[i].sex);if(std[i].sex[0]=='m'||std[i].sex[0]=='M')ml+=1;elsefml+=1;printf("score:");scanf("%d",&std[i].score);sum+=std[i].score;}avg=sum/N;printf("The number of male students:%d\n",ml);printf("The number of female students are:%d\n",fml);printf("The average scores are:%.2f\n",avg);}习题八一、选择题1.A 2.C 3.D 4.A 5.C6.A 7.D二、填空题1.(1) high=mid-1 (2) low=mid+1 2.(1) int m (2) m%i==0 (3) return s 3.(1) max=x[i][j] (2) max三、写出下列程序的运行结果1.625 2.Qian,p,95,92 3.2 4.12 5.h=8四、编程题1.#include "stdio.h"void main(){ int prime(int);int x;printf("\nPlease input an integer:");scanf("%d",&x);if(prime(x))printf("\n%d is prime.\n",x);elseprintf("\n%d is not prime.\n",x);}int prime(int n){ int flag=1,i;for(i=2;i<=n-1 && flag==1;i++)if(n%i==0)flag=0;return(flag);}2.#include "stdio.h"void delask(char a[]){ int i,j;char b[80];for(i=j=0;a[i]!='\0';i++)if(a[i]!='*'){ while(a[i]!='\0'){ b[j]=a[i];j++;i++;}break;}b[j]='\0';for(i=0;b[i]!='\0';i++)a[i]=b[i];a[i]='\0';}void main(){ char s[80];printf("Please enter a string:\n");scanf("%s",s);delask(s);printf("%s\n",s);}3.#include "stdio.h"struct date{ int day;int month;int year;};int days(struct date dt){ int y,m,d,ds[12]={31,28,31,30,31,30,31,31,30,31,30,31},i,s=0;y=dt.year;d=dt.day;if(y%4==0 && y%100!=0||y%400==0) ds[1]=29;/* 计算每月的天数是本年第几天*/ switch(m){ case 1:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 2:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 3:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 4:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 5:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 6:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 7:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 8:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 9:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 10:for(i=0;i<m-1;i++)s+=ds[i];break;case 11:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 12:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;}return (s);}void main(){ struct date ymd;int dys;printf("Input year month and day\n");scanf("%d,%d,%d",&ymd.year,&ymd.month,&ymd.day);dys=days(ymd);printf("Today is the first %d days in the middle of this year.\n",dys);}习题九一、选择题1.A 2.D 3.A 4.D 5.B 6.A 二、写出下列程序的运行结果1.10 2.9 11 11 3.*** 4.12 5.8 6.1 11 21 3三、编程题1.#include "stdio.h"#define N 10float fmax=0,fmin=0;float average(float fscore[],int n){ int i;float faver,fsum=fscore[0];fmax=fmin=fscore[0];for(i=1;i<n;i++){if(fscore[i]>fmax)fmax=fscore[i];else if(fscore[i]<fmin)fmin=fscore[i];fsum+=fscore[i];}faver=fsum/n;return (faver);}void main(){ float fave,fnumb[N];int i;for(i=0;i<N;i++)scanf("%f",&fnumb[i]);fave=average(fnumb,N);printf("max=%.2f min=%.2f average=%.2f\n",fmax,fmin, fave);}2.此题有误,用宏定义较难实现。
《C语言程序设计》 课后习题答案 高等教育出版社
《C语言程序设计》课后习题答案高等教育出版社《C语言程序设计》课后习题答案高等教育出版社第一章:C语言概述1. C语言的特点C语言是一种以处理底层任务和系统编程为目标的高级编程语言。
其特点包括语法简洁、执行效率高、可移植性强等。
第二章:C语言基本数据类型1. C语言中的基本数据类型C语言中的基本数据类型包括整型、字符型、浮点型等。
整型可以进一步细分为有符号整型和无符号整型。
第三章:C语言运算符1. C语言中的运算符C语言中常见的运算符包括算术运算符、赋值运算符、关系运算符、逻辑运算符等。
这些运算符用于执行各种数学和逻辑操作。
第四章:C语言控制语句1. C语言中的条件语句C语言提供了if语句和switch语句来实现条件判断。
if语句用于执行基于布尔表达式的条件分支,而switch语句用于根据不同的值执行不同的代码块。
第五章:C语言函数1. C语言中的函数定义和调用函数是C语言中的基本模块,用于封装可重用的代码。
函数定义包括函数返回类型、函数名、参数列表和函数体等部分。
第六章:C语言数组1. C语言中的数组定义和使用数组是一组相同类型的数据元素的集合。
C语言中可以使用数组来存储和操作大量数据。
第七章:C语言指针1. C语言中的指针概念指针是一种变量,它存储了内存地址。
通过指针,可以直接访问和修改对应内存地址中的数据。
第八章:C语言字符串1. C语言中的字符串操作字符串是由一系列字符组成的数据类型。
C语言通过字符数组来表示和操作字符串。
第九章:C语言结构体1. C语言中的结构体定义和使用结构体是一种自定义的复合数据类型,它可以包含多个不同类型的成员变量。
第十章:C语言文件操作1. C语言中的文件读写操作文件操作是一种重要的数据输入和输出方式。
C语言提供了一系列函数来实现文件的读写操作。
总结:通过解答以上习题,我们可以更好地掌握C语言的各个方面,提升我们的编程能力和解决问题的能力。
希望本文对读者有所帮助。
c语言程序设计第五版习题答案解析
c语言程序设计第五版习题答案解析首先,值得指出的是,《C语言程序设计》是一本经典的编程教材,它通过系统性的介绍和练习,帮助读者掌握C语言编程的基本原理和技巧。
而针对这本书中的习题,我们将逐一进行解答和解析,以便读者更好地理解和掌握其中的知识。
1. 第一章:C语言概述在第一章中,主要介绍了C语言的历史背景、特点和发展。
对于习题的解答,我们可以通过提问的方式帮助读者思考和回顾所学内容,例如:“C语言为什么被广泛应用于系统软件开发?”、“C语言的起源是什么?”2. 第二章:数据类型、运算符和表达式在第二章中,主要介绍C语言中的数据类型、运算符和表达式。
习题部分则涵盖了类型转换、算术运算、逻辑运算等内容。
针对这些习题,我们可以给出详细的解答步骤和原理解析,让读者了解C语言中各种运算符的优先级和使用规则。
3. 第三章:控制结构第三章主要介绍了C语言中的分支结构和循环结构。
针对习题部分,我们可以详细解答条件语句、循环语句的使用和注意事项,同时提供一些实际例子和应用场景,让读者更好地理解和掌握这些知识点。
4. 第四章:函数与程序结构在第四章中,重点介绍了函数的定义、调用和参数传递等。
针对习题,我们可以通过编写代码的方式,给出函数的实际应用案例,并解释其中的关键代码部分,帮助读者理解函数的作用和使用方法。
5. 第五章:指针与数组第五章主要介绍了C语言中指针和数组的概念和用法。
对于习题解答,我们可以给出指针和数组的定义、操作方法,并通过实例演示指针和数组在实际编程中的应用。
6. 第六章:字符输入输出第六章主要讲解了C语言中字符输入输出的函数和特点。
在解答习题时,我们可以提供一些常见的字符输入输出问题,并给出详细的解决思路和代码示例。
7. 第七章:类型第七章主要介绍了C语言中的类型定义和使用。
对于习题解答,我们可以通过解析代码和理论知识的结合,帮助读者理解类型的定义和使用场景。
8. 第八章:运算符和表达式在第八章中,主要介绍了C语言中的运算符和表达式。
《C语言程序设计》课后习题参考答案
{
t=t+i;
s=s+t;
}
printf("s=%d\n",s);
}
习题
一、选择题
1.B 2.A 3.A 4.D 5.C 6.B 7.A 8.A
二、填空题
1.按行的顺序依次存放的
2.0
3.4
4.6
三、编程题
1.有一个多项式:Pn(x)=a0xn+a1xn-1+…+an
2.0 1
3.1
4.4
5.-1
三、编程题
1.给出等级成绩′A′、′B′、′C′、′D′、′E′,假设,90分以上为′A′,80~89分为′B′,70~79分为′C′,60~69分为′D′,60分以下为′E′,输入一个等级成绩,问属于哪一个分数段。
参考代码如下:
main()
{
int score,m,n;
scanf("%d",&n);
for(i=0;i<5;i++)
if(n>a[i])
continue;
else
break;
for(j=4;j>=i;j--)
a[j+1]=a[j];
a[i]=n;
for(i=0;i<6;i++)
printf("%d,",a[i]);
printf("\n");
}
4.编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found。
二、填空题
1. BASIC、FORTRAN、AL_GOL60和COBOL
