《c語(yǔ)言程序設(shè)計(jì)(科學(xué)出版社)課后習(xí)題解答.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《c語(yǔ)言程序設(shè)計(jì)(科學(xué)出版社)課后習(xí)題解答.doc(16頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
______________________________________________________________________________________________________________
第3章 習(xí)題解答
第1章
1.C 語(yǔ)言程序主要由預(yù)處理命令、函數(shù)、注釋等組成。
2.填空
(1)分號(hào)
(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); /* 輸入第一個(gè)整數(shù) */
scanf(“%d”, &b); /* 輸入第二個(gè)整數(shù) */
c=a-b; /* 計(jì)算差 */
printf(“%d-%d=%d”,a,b,c); /* 輸出結(jié)果 */
}
5.
(1)
(2)x=10;
(3)printf(“s=%d\n”,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=%.2f\n”,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=%.2f\n",sum,average);
}
5.
#include
main()
{
int hour,minute,second,total; /* 定義變量代表時(shí)、分、秒和總秒數(shù) */
scanf("%d",&total);
hour=total/3600;
minute=total%3600/60;
second=total%3600%60;
printf("%dhours:%dminutes:%dseconds\n",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<0)
y=5*x;
if (x == 0)
y=-1;
if (x>0 && x<10)
y=2*x+1;
printf("x=%d,y=%d\n",x,y);
}
5.
#include
main( )
{
int score,rank; /* score 表示成績(jī),rank 表示級(jí)別 */
printf("Please input score:");
scanf("%d",&score);
rank=score/10;
switch(rank)
{
case 10:
case 9: printf("成績(jī)等級(jí)為:A\n"); break;
case 8: printf("成績(jī)等級(jí)為:B\n"); break;
case 7: printf("成績(jī)等級(jí)為:C\n"); break;
case 6: printf("成績(jī)等級(jí)為:D\n"); break;
default:printf("成績(jī)等級(jí)為:E\n"); 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<=200;i+=2)
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("%d\n", 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
main( )
{
float a[10];
int i;
float sum=0,average;
for (i=0;i<10;i++)
{
printf("a[%d]=?",i);
scanf("%f",&a[i]);
sum+=a[i];
}
average=sum/10;
printf("average is %.2f\n",average);
}
9.
#include
#define N 10
main( )
{
int a[N],i,target,found;
for (i=0;i
#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
#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 (說(shuō)明:變量 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:%d\n",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 address[31];/*旅館地址*/
int grade; /*旅館級(jí)別*/
float average_charge; /*平均房?jī)r(jià)*/
int number; /*房間數(shù)量*/
}h[N]={
{"h1","上海路",5,500.00,80},
{"h2","北京大街",5,480.00,70},
{"h3","南京大街",3,300.50,100}
};
main( )
{
int grade,i;
printf("請(qǐng)輸入級(jí)別(3-5)?");
scanf("%d",&grade);
for (i=0;i
#include
#include
typedef struct Employee
{
int id;
char name[20];
char gender[20];
int age;
char address[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.address);
fwrite(&emp,recsize,1,fp);
printf("是否繼續(xù) (Y/N): ");
fflush(stdin);
another=getchar();
}
break;
case '2':
printf("學(xué)號(hào)\t 姓名\t性別\t 年齡\t住址\n");
rewind(fp);
while(fread(&emp,recsize,1,fp)==1)
if (strcmp(emp.gender,"男")==0)
printf("%d\t%s\t%s\t%d\t%s\n",
emp.id,emp.name,emp.gender,emp.age,emp.address);
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("請(qǐng)輸入 5 名同學(xué)生的成績(jī),按照學(xué)號(hào),姓名,成績(jī) 1,成績(jī)2,成績(jī) 3 的順序,中間用空格隔
開:\n");
for(i=0;i
void main()
{
int x,y;
scanf("%d",&x);
y=x>>4; y=y&0x000f;
printf("4~7位的十六進(jìn)制數(shù):y=%#x\n",y);
}
3. d
4. (1) p!=NULL (2)p=p->next 5. p=p->next
6. 略
THANKS !!!
致力為企業(yè)和個(gè)人提供合同協(xié)議,策劃案計(jì)劃書,學(xué)習(xí)課件等等
打造全網(wǎng)一站式需求
歡迎您的下載,資料僅供參考
-可編輯修改-
鏈接地址:http://m.appdesigncorp.com/p-1546546.html