c语言程序设计(科学出版社)课后习题解答_c语言课后习题及答案

其他范文 时间:2020-02-27 23:03:42 收藏本文下载本文
【www.daodoc.com - 其他范文】

c语言程序设计(科学出版社)课后习题解答由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言课后习题及答案”。

第3章 习题解答

第1章

1.C 语言程序主要由预处理命令、函数、注释等组成。

2.填空

(1)分号

(2)main(3)stdio.h 3.源程序:

#include main(){

printf(“*************************n”);printf(“Hello World!n”);

printf(“*************************”);} 4.源程序:

#include main(){

int a, b, c;/* 定义变量 */

scanf(“%d”, &a);/* 输入第一个整数 */ scanf(“%d”, &b);/* 输入第二个整数 */ c=a-b;/*

计算差 */

printf(“%d-%d=%d”,a,b,c);/* 输出结果 */ } 5.(1)(2)x=10;

(3)printf(“s=%dn”,s);

第2章

1.(1)c(2)a(3)b g(4)a d e(5)d

2.a.5 b.295

c.4 d.29 e.9 3.a.x=4,y=6

b.x=4,y=3 f.x=3,y=6 4.16 5.#include main(){

int a,b,c;

scanf(“%d%d”,&a,&b);c=a*b;

printf(“%d*%d=%d”,a,b,c);}

第3章

1.(1)b(2)b(3)d(4)a(5)b 2.(1)&a,&b(2)l,s

3.printf(“x=%.2f,y=%.2fn”,x,y);

4.#include main(){

int num1,num2,num3,sum;

float average;

scanf(“%d%d%d”,&num1,&num2,&num3);

sum=num1+num2+num3;

average=sum/3.0;

printf(“sum=%d,average=%.2fn”,sum,average);} 5.#include main(){

int hour,minute,second,total;/* 定义变量代表时、分、秒和总秒数 */

scanf(“%d”,&total);

hour=total/3600;

minute=total%3600/60;

second=total%3600%60;

printf(“%dhours:%dminutes:%dsecondsn”,hour,minute,second);}

第4章

1.(1)a(2)b(3)b(4)b

(5)b 2.0 3.(1)6(2)4(3)1(4)1 4.#include main(){

int x,y;

scanf(“%d”,&x);

if(x>-5 && x

y=5*x;

if(x == 0)

y=-1;

if(x>0 && x

y=2*x+1;

printf(“x=%d,y=%dn”,x,y);} 5.#include main(){

int score,rank;/* score 表示成绩,rank 表示级别 */

printf(“Please input score:”);

scanf(“%d”,&score);

rank=score/10;

switch(rank)

{

case 10:

case 9: printf(“成绩等级为:An”);break;

case 8: printf(“成绩等级为:Bn”);break;

case 7: printf(“成绩等级为:Cn”);break;

case 6: printf(“成绩等级为:Dn”);break;

default:printf(“成绩等级为:En”);break;

} } 6.#include void main(){

int n;

printf(“Please input the digit:”);

scanf(“%d”,&n);

switch(n)

{

case 1:printf(“Jan n”);break;

case 2:printf(“Feb n”);break;

case 3:printf(“Mar n”);break;

case 4:printf(“Apr n”);break;

case 5:printf(“May n”);break;

case 6:printf(“Jun n”);break;

case 7:printf(“Jul n”);break;

case 8:printf(“Agu n”);break;

case 9:printf(“Sep n”);break;

case 10:printf(“Oct n”);break;

case 11:printf(“Nov n”);break;

case 12:printf(“Dec n”);break;

} }

第5章

1.(1)b(2)a(3)b(4)d(5)d 2.7,1 3.y=-1 4.m=6 5.10,14 6.3 7.5

8.ABABCDCD 9.# include main(){

int i;

long int sum=0;

for(i=2;i

sum+=i;

printf(“2+4+6+...+200=%ld”,sum);} 10.#include main(){

long int n;

int sum = 0;

printf(“Please input the nber:”);

scanf(“%ld”,&n);

while(n!= 0)

{

sum += n % 10;

n /= 10;

}

printf(“%dn”, sum);}

第6章

1.(1)d(2)b(3)d(4)c

(5)a 2.11 3.3 4.5689 5.12,6

6.(1)i--(2)n

7.(1)char k;

(2)i

#include main(){

float a[10];

int i;

float sum=0,average;

for(i=0;i

{

printf(“a[%d]=?”,i);

scanf(“%f”,&a[i]);

sum+=a[i];

}

average=sum/10;

printf(“average is %.2fn”,average);} 9.#include #define N 10 main(){

int a[N],i,target,found;

for(i=0;i

scanf(“%d”,&a[i]);

printf(“Please input a number:”);

scanf(“%d”,&target);

i=0;

while(i

i++;

found = i

printf(“%dn”,found);} 10.#include #define N 80 main(){

char str[N];

int len=0,i=0;

printf(“Please input a string:”);

gets(str);

while(str[i++]!= 0)len++;

printf(“the length of string is %d.n”,len);}

第7章

1.21

2.136 3.16

4.(1)func

(2)m++

5.9

6.1,6,3,2,3 7.2,5,1,2,3,-2 8.#include int fun(int a,int b,int c);main(){

int a,b,c,max;

printf(“Please input three numbers:”);

scanf(“%d%d%d”,&a,&b,&c);

max=fun(a,b,c);

printf(“Max is %d.n”,max);}

int fun(int a,int b,int c){

int max;

max= a>b?(a>c?a:c):(b>c?b:c);

return max;} 9.#include long int sum(int n);main(){

int n;

printf(“n=?”);

scanf(“%d”,&n);

printf(“Sum=%ld.n”,sum(n));}

long int sum(int n){

if(n = = 1)return 1;

else return sum(n-1)+n;} 10.#include void fun(n);main(){

int n;

printf(“n=?”);

scanf(“%d”,&n);

fun(n);

}

void fun(n){

if(n = = 0)return;

else

{

fun(n/2);

printf(“%-2d”,n%2);

} }

第8章

1.(1)b(2)d(3)b(4)c(5)c 2.8

3.123456789 4.2 3 4 5 6 5.345

6.1 2 3 4 5 6 7.b[i]

8.bcdefgha 9.p=sum 10.#include #include main()

{

char str[80];

char *p1, *p2;gets(str);p1=str;

p2=str+strlen(str)-1;

while(p1

puts(p1

}

第9章

1.a.#define F(x)(x)*(x)*(x)b.#define F(x)(x)%4

c.#define F(x,y)(x)*(y)

c.#define DOUBLE(x)2*(x)3.d 4.-20

5.N is undefined 6.7.5 7.y=6 8.#include

#define SWAP(a,b){int temp;temp=a;a=b;b=temp;} main(){

int x,y;

printf(“x=?”);

scanf(“%d”,&x);

printf(“y=?”);

scanf(“%d”,&y);

SWAP(x,y)

printf(“x=%d,y=%d.n”,x,y);}

第10章

1.struct student{

int sno;

char sname[10];

char sex;}stu1,stu2;2.12

3.合法的有a,b,d

c.改成 s.u.rectangle.length=25;

e.改成 s.u.circle.radius=5;

f.改成 s.u.circle.radius=5;

4.a,b,c,d(说明:变量 b 有确定的值之后,b++是合法的。)5.改为

typedef struct product {

char name[10];float price;}PRODUCT;

PRODUCT products[10];

6.(1)struct employee(2)printemp(emp)7.2 4 3 9 8 8.#include struct time_struct {

int hour;

int minute;

int second;};

main(){

struct time_struct time;

printf(“Input time?n(Example 18:28:38)n”);

scanf(“%d:%d:%d”,&time.hour,&time.minute,&time.second);

printf(“Time is %d:%d:%dn”,time.hour,time.minute,time.second);} 9.#include struct time_struct {

int hour;

int minute;

int second;}time;

void enter_time();void display_time();main(){

enter_time();

display_time();}

void enter_time(){

printf(“Enter the time(example 18:28:38)?”);

scanf(“%d:%d:%d”,&time.hour,&time.minute,&time.second);}

void display_time(){

printf(“Time is %d:%d:%d.n”,time.hour,time.minute,time.second);} 10.#include #define N 3 struct hotel {

char name[31];/*旅馆名称*/

char addre[31];/*旅馆地址*/

int grade;/*旅馆级别*/

float average_charge;/*平均房价*/

int number;/*房间数量*/ }h[N]={

{“h1”,“上海路”,5,500.00,80}, {“h2”,“北京大街”,5,480.00,70}, {“h3”,“南京大街”,3,300.50,100} };

main(){

int grade,i;

printf(“请输入级别(3-5)?”);

scanf(“%d”,&grade);

for(i=0;i

if(h[i].grade==grade)

printf(“名称:%sn 地址:%sn 级别:%dn平均房价%.2fn 房间数量:%dn”,h[i].name,h[i].addre,h[i].grade,h[i].average_charge,h[i].number);}

第11章

1.(1)c

(2)d(3)b(4)b(5)b

2.Basican 3.fgetc(fp)

4.“record.dat”, “w” 5.#include #include #include

typedef struct Employee {

int id;

char name[20];

char gender[20];

int age;

char addre[20];}Employee;

int main(void){

FILE *fp;

char another,choice;

Employee emp;

long int recsize;

fp=fopen(“employee.dat”,“rb+”);

if(fp==NULL)

{

fp=fopen(“employee.dat”,“wb+”);

if(fp==NULL)

{

printf(“Can't Open File”);

exit(0);

}

}

recsize=sizeof(emp);

while(1)

{

printf(“1.添加记录 2.显示男员工 3.退出n”);

printf(“Enter your choice(1-3):”);

fflush(stdin);

scanf(“%c”,&choice);

switch(choice)

{

case'1':

fseek(fp,0,SEEK_END);

another='Y';

while(another=='Y'|| another=='y')

{

printf(“输入信息(id 姓名

性别

年龄 住址):n”);

scanf(“%d %s %s %d

%s”,&emp.id,&emp.name,&emp.gender,&emp.age,&emp.addre);

fwrite(&emp,recsize,1,fp);

printf(“是否继续(Y/N): ”);

fflush(stdin);

another=getchar();

}

break;

case '2':

printf(“学号t 姓名t性别t 年龄t住址n”);

rewind(fp);

while(fread(&emp,recsize,1,fp)==1)

if(strcmp(emp.gender,“男”)==0)

printf(“%dt%st%st%dt%sn”,emp.id,emp.name,emp.gender,emp.age,emp.addre);

break;

case '3':

fclose(fp);

exit(0);

}

} } 6.#include“stdio.h” #include“stdlib.h” #define M 2

#define stu struct student stu {

int num;

char name[20];

float s1;

float s2;

float s3;

float avg;};main(){

stu st[M];

FILE *fp;

int i;

printf(“请输入 5 名同学生的成绩,按照学号,姓名,成绩 1,成绩2,成绩 3 的顺序,中间用空格隔

开:n”);

for(i=0;i

{

scanf(“%d%s%f%f%f”,&st[i].num,st[i].name,&st[i].s1,&st[i].s2,&st[i].s3);

st[i].avg=(st[i].s1+st[i].s2+st[i].s3)/3;

} if((fp=fopen(“stud.rec”,“wb”))==NULL)

{

printf(“cannot open filen”);

}

for(i=0;i

{

if(fwrite(&st[i],sizeof(stu),1,fp)!=1)

printf(“file write errorn”);

}

fclose(fp);

fp=fopen(“stud.rec”,“rb”);

printf(“numtnametscore1tscore2tscore3taveragen”);

for(i=0;i

{

fread(&st[i],sizeof(stu),1,fp);

printf(“%dt%st%.2ft%.2ft%.2ft%.2fn”,st[i].num,st[i].name,st[i].s1,st[i].s2,st[i].s3,st[i].avg);

}

fclose(fp);}

第12章

1.a.2 b.4 c.11 d.4 e.-15 f.28 g.-36 2.程序设计分析:先将整数x 右移4 位,将该整数机内码的第4 到7 位移至第0 到3 位,然后与0x000f(***1)进行位与运算,所保留的低4 位就是所要的结果

#include void main(){

int x,y;

scanf(“%d”,&x);

y=x>>4;y=y&0x000f;

printf(“4~7位的十六进制数:y=%#xn”,y);} 3.d

4.(1)p!=NULL

(2)p=p->next 5.p=p->next

6.略

C语言课后习题解答

第七章 函数调用 7-1 写两个函数,分别求两个整数的最大公约数和最小公倍数, #include void main() { int hcf(int,int); int lcd(int,int,int);int u,v,h,l; scanf("%d,%......

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

高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案――武汉大学出版社习题1参考答案一、选择题 1.A 2.D二、填空题1.BASIC、FORTRAN、AL_GOL60和COBOL 2.8 3......

JSP程序设计习题解答[1]

习题一1.运行startup.bat启动Tomcat服务器的好处是什么?答:确保Tomcat服务器使用的是Java_home环境变量设置的JDK。2.请在C:\下建立一个名字为book的目录,并将该目录设置成一个We......

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

C语言程序设计教程课后习题答案第一章 C语言程序设计概述 -习题答案1 算法的描述有哪些基本方法?答1、自然语言2、专用工具2 C语言程序的基本结构是怎样的?举一个例子说明。答1......

c语言程序设计课后习题答案 第五章

/*练习5-3*/ #include int prime(int m) {int i;for(i=2;iif(m%i==0)break;if(i==m)return 1;elsereturn 2; } main() {int i,m,n,sum=0,a=0;printf("enter m and n:(1scan......

下载c语言程序设计(科学出版社)课后习题解答word格式文档
下载c语言程序设计(科学出版社)课后习题解答.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文