考试参考题目3课件例题文档格式.docx

上传人:b****2 文档编号:4857904 上传时间:2023-05-04 格式:DOCX 页数:34 大小:38.96KB
下载 相关 举报
考试参考题目3课件例题文档格式.docx_第1页
第1页 / 共34页
考试参考题目3课件例题文档格式.docx_第2页
第2页 / 共34页
考试参考题目3课件例题文档格式.docx_第3页
第3页 / 共34页
考试参考题目3课件例题文档格式.docx_第4页
第4页 / 共34页
考试参考题目3课件例题文档格式.docx_第5页
第5页 / 共34页
考试参考题目3课件例题文档格式.docx_第6页
第6页 / 共34页
考试参考题目3课件例题文档格式.docx_第7页
第7页 / 共34页
考试参考题目3课件例题文档格式.docx_第8页
第8页 / 共34页
考试参考题目3课件例题文档格式.docx_第9页
第9页 / 共34页
考试参考题目3课件例题文档格式.docx_第10页
第10页 / 共34页
考试参考题目3课件例题文档格式.docx_第11页
第11页 / 共34页
考试参考题目3课件例题文档格式.docx_第12页
第12页 / 共34页
考试参考题目3课件例题文档格式.docx_第13页
第13页 / 共34页
考试参考题目3课件例题文档格式.docx_第14页
第14页 / 共34页
考试参考题目3课件例题文档格式.docx_第15页
第15页 / 共34页
考试参考题目3课件例题文档格式.docx_第16页
第16页 / 共34页
考试参考题目3课件例题文档格式.docx_第17页
第17页 / 共34页
考试参考题目3课件例题文档格式.docx_第18页
第18页 / 共34页
考试参考题目3课件例题文档格式.docx_第19页
第19页 / 共34页
考试参考题目3课件例题文档格式.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

考试参考题目3课件例题文档格式.docx

《考试参考题目3课件例题文档格式.docx》由会员分享,可在线阅读,更多相关《考试参考题目3课件例题文档格式.docx(34页珍藏版)》请在冰点文库上搜索。

考试参考题目3课件例题文档格式.docx

{/*主函数开始*/

}/*主函数结束*/

·

功能:

空操作。

说明:

.必须有且仅有一个main()函数;

.可由一个或多个函数组成;

.程序都从调用main()开始执行;

.花括号(大括号)中,写该函数所要做的事情,可称为函数体。

C语言源程序的基本结构:

函数体

(2)一个简单的C程序

程序:

#include<

main()

{

inta,b,c;

a=1;

b=2;

c=a+b;

/*预处理命令

作用:

.告诉编译器,在编译时需要文件stdio.h;

.stdio.h含有的库函数,称为包含文件。

说明:

.C系统提供了大量包含文件;

.写在程序头部,亦称为头文件;

.以h为扩展名。

.一个源程序,可能需要多个头文件。

*/

main()

/*变量说明语句

.告诉编译器,程序用到三个整型数值的变量;

.变量名分别为a、b、c。

.变量须先说明(定义),后使用;

.说明中包括变量名和它的类型;

.int定义整型变量,int叫做关键字;

.变量名由用户定。

注意:

.变量名中字母的大小写是有区别的,

例:

A和a是不同的变量。

*/

 a=1;

/*赋值语句。

将整数1赋给变量a*/

/*将整数2赋给变量b*/

/*计算a+b并将计算的结果赋给变量c*/

 } 

计算两个整数a与b的和,其结果为c。

.每一语句以分号“;

”结尾;

.运行时,将书写的顺序逐条语句执行;

执行完最后一个语句,运行结束。

(3)有输出功能的程序。

要求:

在显示器上的输出(显示)字符串“I'

m20yearsold.”。

程序:

/*Myfirstprogram*/

intage;

age=20;

printf("

I'

m%dyearsold.\n"

age);

}

/*Myfirstprogram*//*注释语句

对程序的一些说明;

格式:

以/*开始,以*/结束;

 printf("

/*输出的库函数

显示程序的输出信息;

内容:

."

.age*/

(4)有输入数据功能的程序。

通过键盘给程序中变量a和b赋值,并求其和。

/*ThisisaCprogram*/

scanf("

%d%d"

&

a,&

b);

/*输入函数,由键盘输入2个整数*/

(5)例:

编写一程序,具体任务是将输入的英尺数转换为公尺数。

/*Sampleprogram--feettometers*/

floatfeet,meters;

Enterthevalueoffeet:

"

%f"

&

feet);

meters=feet*0.3048;

%ffeetis%fmeters"

feet,meters);

/*Sampleprogram--feettometers*/

/*feet和meters为浮点型变量*/

/*由键盘给float赋值*/

/*英尺转换为公尺*/

.用关键字float定义浮点数型(带小数)的变量;

.scanf()/printf()中的控制码“%f”,用于读入/输出一个浮点数。

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

1.基本数据类型

(1)种类(5种):

字符型、整型、浮点型、长浮点型、无值型。

(2)列表:

类型

宽度(bit)

取值范围

内容

char

8

-128~127

ASCII字符

int

16

-32768~32767

整数

float

32

3.4E-38~3.4E+38(10-38~1038)

含有小数的数

double

64

1.7E-308至1.7E+308

很大/很小的实数

void

无值

 

2.标识符

(1)定义:

变量、函数、标号和用户定义的其它用途的对象的名字的统称。

(2)格式:

字母/下划线字母/数字/下划线(长度任意)。

(3)说明:

.大小写字母意义不同;

变量count、COUNT、Count为三个不同的变量。

.不能用系统的关键字、用户定义的函数名、C语言库函数的名。

3.整型数据

(1)整型变量

①特点:

关键字为int;

内存所占位数为16bit,即2个字节(byte);

取值范围为从-32768到32767(-215~215-1)。

②修饰符:

a.signed带符号的数据;

b.unsigned无符号的数据;

c.long长型数据;

d.short短型数据。

③整型变量的所占位数和取值范围示于表.

类型

所占位数(bit)

数的范围

int

16

-32768~+32767

signedint

unsignedint

0~65535

shortint

longint

32

-2147483648~2147483647

unsignedlongint

0~4294967925

④说明:

例1:

写两个函数,分别求两个整数的最大公约数、最小公倍数,用主函数调用这两个函数,并输出结果。

两个整数由键盘输入。

.解:

设两个整数为u、v,

最小公倍数=u*v/最大公约数。

.程序:

#incloud<

hcf(u,v)/*求最大公约数*/

intu,v;

{

inta,b,t,r;

if(u>

v)

t=u;

u=v;

v=t;

a=u;

b=v;

while((r=b%a)!

=0)

b=a;

a=r;

return(a);

lcd(u,v,h)

intu,v,h;

return(u*v/h);

intu,v,h,l;

scanf(“%d,%d”,&

u,&

v);

h=hcf(u,v);

printf(“H.C.F=%d\n”,h);

l=lcd(u,v,h);

printf(“L.C.D=%d\n”l);

.运行结果:

24,16↙

H.C.F=8

L.C.D=48

例2:

求方程ax2+bx+c=0的根。

用三个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。

从主函数输入a、b、c的值。

.程序:

#include<

math.h>

floatx1,x2,disc,p,q;

greater_than_zero(a,b)

floata,b;

{

x1=(-b+sqrt(disc))/(2*a));

x2=(-b-sqrt(disc))/(2*a));

}

equal_to_zero(a,b)

x1=x2=(-b)/(2*a);

small_than_zero(a,b)

p=-b/(2*a);

q=sqrt(disc)/(2*a);

floata,b,c;

printf(“\n输入方程的系数a,b,c:

\n”);

scanf(“%f,%f,%f”,&

b,&

c);

printf(“\n方程是:

%5.2f*x*x+%5.2f*x+%5.2f=o\n”,a,b,c);

disc=b*b-4*a*c;

printf(“方程的解是:

\

if(disc>

0)

great_than_zero(a,b);

printf(“X1=%5.2f\tX2=%5.2f\n\n”,x1,x2);

elseif(disc==0)

equal_to_zero(a,b);

else

small_than_zero(a,b,c);

printf(“X1=%5.2+%5.2fi\tX2=%5.2f-%5.2fi\n”,p,q,p,q);

例3:

编写函数printd,其功能为:

使用putchar打印数字。

pintd(n)

intn;

inti;

if(n<

0){

putchar(‘-‘);

n=-n;

}

if((i=n/10)!

=0)printd(i);

putchar(n%10+’0’);

当调用参数为-123时,执行过程为:

参数为-123调用函数

printd(-123)

打印符号“-”

参数为12递归调用

printd(12)

参数为1递归调用

printd

(1)

└→

打印字符2←┘

打印字符3←┘

例4:

间接递归调用的例子。

fn1执行中调用函数fn2;

fn2执行中调用函数fn1;

设置外部变量n,以计算递归调用fn1的次数,初值为0;

b为外部变量,由函数main、fn1共用,存放计算的值。

intb

intn=0;

inta;

scanf(“a=%d”,&

a);

fn2(a);

printf(“n=%4db=%4d”,n,b);

fn1(y)

inty;

y=2*y+10;

b=y/30;

fn2(y);

fn2(x)

intx;

if(x<

400)

n++;

fn1(x);

输入 

输出

21 

n=4b=16

152 

n=2b=21

 

七1.例1:

取一个整数a从右端开始的4~7位。

.a右移4位;

a>

>

4

.设置一低4位全1,其余为全0的数;

~(~0<

<

4)

00000…000000

~01111…111111

~0<

41111…110000

4)0000…001111

.将以上两者“&

”运算。

4&

unsigneda,b,c,d;

scanf(“%o”,&

b=a>

4;

c=~(~0<

4);

d=b&

c;

printf(“%o\n%o\n”,a,d);

331↙

331

15

.说明:

a的二进制数为11011001;

结果为00001101,即八进制15。

将a进行右循环移位。

——将a中原来左面(16-n)位右移n位,原来右端n位移到最左面n位。

.方法:

.将a的右端n位放到b中的高n位中;

b=a<

(16-n)

.将a右移n位,其左面高位n位补0;

c=a>

n;

.将c与b进行按位或运算。

c=c|b

unsigneda,b,c;

intn;

scanf(“a=%o,n=%d”,&

n);

(16-n);

c=c|b;

printf(“%o\n%o”,a,c);

a=157653,n=3↙

157653

75765

(157653)8=(110111*********1)2

循环右移3位后,(0111101111110101)2=(75765)8

6.例:

宏定义作成一个用户定义的包含文件my_include.h。

.文件名:

my_include.h

#definePROMPT"

Enter2integers:

#defineMAX(a,b)((a)>

(b))?

(a):

(b)

.主程序文件修改如下:

#include"

my_inlude.h"

inta,b,max;

printf(PROMT);

a,&

max=MAX(a,b);

Themanximum=%d\n"

max);

Enter2integers:

510↙

Themanximum=10

③例

将从键盘输入的一个字符串存入磁盘文件test中。

 

inti;

charstr[80];

FILE*fp;

if((fp=fopen("

test"

"

w"

))==NULL)

cannotopenfile."

exit

(1);

gets(str);

for(i=0;

str[i];

i++)

fputc(str[i],fp);

fclose(fp);

} 

.注意:

⑴首先定义一个文件指针fp;

⑵ 用写模式打开(建立)文件test并检查是否确实打开;

⑶ 将从键盘读入的字符串用fputc()函数写入(输出)到文件test;

⑷关闭文件。

将前例中建立的磁盘文件test读出并显示在屏幕上。

charch;

r"

ch=fgetc(fp);

while(ch!

=EOF)

putchar(ch);

  }

例3:

将前例中建立的文件test复制(拷贝)到另一个文件test1.dat。

#include<

intch;

FILE*fp1,*fp2;

if((fp1=fopen("

"

))==NULL)

Cannotopenfiletest.\n"

exit(0);

if((fp2=fopen("

test1.dat"

Cannotopenfiletest1.dat.\n"

while((ch=fgetc(fp1))!

fputc(ch,fp2);

fclose(fp1);

fclose(fp2);

return;

2.函数feof()、ferror()和rewind()的应用

①函数feof()(定义在头文件stdio.h中)

.功能:

用于读二进制文件时判定文件的结束。

.原型:

intfeof(FILE*fp);

.返回值:

若文件结束,它返回一个真值;

否则返回0。

.例:

将前例中的两个文件用二进制模式打开。

程序:

rb"

wb"

ch=fgetc(fp1);

while(feof(fp1)==0)

②函数ferror()(定义在头文件stdio.h中)

.功能:

用来确定文件操作是否出现了错误。

intferror(FILE*fp);

.返回值:

如果在文件操作过程中发生了错误,它返回真值,否则返回假值。

③函数rewind()(定义在头文件stdio.h中)

用于将其参数所指示的文件指针,定位到文件的开头。

.原型:

viodrewind(FILE*fp);

.例:

应用函数ferror()的例子。

要求:

复制任意类型的文件,即读入一个文件f1,然后将其写入另一个文件f2。

  整个程序分为以下几个部分:

打开文件f1(“rb”模式)

打开文件f2(“wb”模式);

读文件f1;

写文件f2;

关闭两个被打开的文件。

FILE*fin,*fout;

if((fin=fopen("

f1"

cannotopensourcefile"

if((fout=fopen("

f2"

cannotopendestinationfile"

while(!

feof(fin))

ch=fgetc(fin);

if(ferror(fin))

errorr

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2