c语言课件第8章
- 格式:ppt
- 大小:147.00 KB
- 文档页数:16


第八章
用一个数组存放图书信息,每本书是一个结构,包括下列几项信息:书名、作者、出版年月、借出否,试写出描述这些信息的说明,并编写一个程序,读入若干本书的信息,然后打印出以上信息。#include <>
typedef struct
{
char Name[20];
char Author[20];
int Date_Year;
int Date_Month;
int loaned;
} BOOK;
#define N 10
void main()
{
BOOK books[N];
int i;
for (i=0;i
{
printf("Input Book's Name:");
gets(books[i].Name);
printf("Input Book's Author:");
gets(books[i].Author);
printf("Input Book's Year of Publishing:");
scanf("%d",&books[i].Date_Year);
printf("Input Book's Month of Publishing:");
scanf("%d",&books[i].Date_Month);
printf("Input Book's Status, 1-Loaned, 2-Keepin:");
scanf("%d",&books[i].loaned);
}
for (i=0;i
{
printf("Book: %s, Author: %s, Publishing:%d-%d, Status:%d\n",
books[i].Name, books[i].Author, books[i].Date_Year, books[i].Date_Month,
books[i].loaned);
第8章 函数习题
A卷
1. 单项选择题
(1)C 语言总是从 函数开始执行。 A
A. main B. 处于最前的 C.处于最后的 D. 随机选一个
(2)函数在定义时,省略函数类型说明符,则该函数值的类型为 。A
A. int B. float C. long D. double
(2)以下 函数,真正地没有返回值。 B
A. int a(){int a=2;return (a);} B. void b(){printf("c");}
C. int a(){int a=2;return a;} D. 以上都是
(3)在 C 语言中,有关函数的说法,以下正确的是 。 A
A. 函数可嵌套定义,也可嵌套调用 B. 函数可嵌套定义,但不可嵌套调用
C. 函数不可嵌套定义,但可嵌套调用 D. 函数不可嵌套定义,也不可嵌套调用
(4)以下函数调用语句中,含有实参的个数为 。C
fun((2,3),(4,5+6,7));
A. 1 B. 2 C. 5 D. 6
(5)函数调用可以在 。 D
A. 函数表达式中 B. 函数语句中 C. 函数参数中 D. 以上都是
(6)被调函数返回给主调函数的值称为 。C
A. 形参 B. 实参 C. 返回值 D. 参数
(7) ,可以不进行函数类型说明。 D
A. 被调函数的返回值是整型或字符型时 B. 被调函数的定义在主调函数定义之前时
C. 在所有函数定义前,已在函数外预先说明了被调函数类型 D. 以上都是
(8)被调函数通过 语句,将值返回给主调函数。 D
A. if B. for C. while D. return
1、有以下程序
int fun1(double a){return a*=a;}
int fun2(double x,double y)
{double a=0,b=0;
a=fun1(x);b=fun1(y);
return(int)(a+b);}
main()
{double w;w=fun2(1.1,2.0);……}
程序执行后变量w中的值是 ( C )
A)5.21 B)5 C)5.0 D)0.0
2、有以下程序:
fun(int x,int y){return(x+y);}
main()
{int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
执行后的输出结果是( C )。
A)6 B)7 C)8 D)9
3、有以下程序
int f1(int x,int y){return x>y?x:y;}
int f2(int x,int y){return x>y?y:x;}
main()
{ int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d%d\n",e,f,g);}
程序运行后的输出结果是( A )
A)4,3,7 B)3,4,7
C)5,2,7 D)2,5,7
4、有以下程序:
fun(int x)
{int p;
if(x==0||x==1) return(3);
p=x-fun(x-2);
return p;}
main()
{ printf("%d\n",fun(7));}
执行后的输出结果是( C )。
A)7 B)3 C)2 D)0
第8章 函数和变量的存储类型
【题8.1】编写一个函数,若参数y为闰年,则返回1,否则返回0。
#include
int leap(int x)
{ if(x%4==0 && x%100!=0 || x%400==0) return(1);
else return(0);
}
void main()
{ int y;
printf("enter Year y:");
scanf("%d",&y);
printf("leap(%d)=%d\n",y,leap(y));
if(leap(y)==1) printf("%d是闰年。\n",y);
else printf("%d不是闰年。\n",y);
}
【题8.2】编写一函数int prime(int m),其功能是判断m值是否是素数,若是素数,则返回1,否则返回0。
#include
#include
int prime(int m)
{ int n;
for(n=2;n
if(m%n==0) return 0;
return 1;
}
void main()
{ int x,y;
printf("enter a number x:"); scanf("%d",&x); y = prime(x);
printf("prime(%d)=%d\n",x,y);
if(y==1) printf("%d是素数。\n",x);
else printf("%d不是素数。\n",x);
}
【题8.3】编写函数,求方程ax2+bx+c=0的解,并作为函数值返回。其中的a、b、c作为函数的形式参数。
#include
#include
int equation(int a,int b, int c,float *p1,float *p2)
{ float d;