北邮C语言复习题_第1页
北邮C语言复习题_第2页
北邮C语言复习题_第3页
北邮C语言复习题_第4页
北邮C语言复习题_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语句概述,C+程序的编写和实现,源程序 (文本文件) *.C,目标文件 (二进制文件) *.OBJ,可执行文件 (二进制文件) *.EXE,库文件 (各种函数),有些编辑系统,可直接从源程序编译连接至可执行程序,,F7,compile,link,C语言的基本元素,一、符号集(字符集) C语言使用的基本符号共有如下五种: (1)大写字母:A-Z (3)阿拉伯数字0-9 (2)小写字母a-z (4)下划线: (5)标点符号和运算符,C语言的基本元素,二、标识符 用来标记常量、变量、函数及文件名字的字符序列 标识符的构成规则: 以字母(大小写都可以)或下划线开头 随后可跟若干个(包括0个)字母、数

2、字、下划线 标识符的长度各个系统不同,最好不要超过8个字符 注意:区分大小写,如:sum,SUM是两个不同的标识符,C语言的基本元素,三、关键字(p375)也称“保留字” 它是c语言中具有特定含义、专门用作语言特定成分的一类标识符 ANSI推荐的C语言的关键字是32个(Turbo c另扩展了11个) 如:main、int、char、float、define等 注意: 所有的关键字都有特定的含义不能用作它用 所有的关键字都必须小写 如: else 和ELSE 有不同含义 else是关键字,ELSE可是用户定义的标识符,C的数据类型,数据是操作的对象,数据类型是指数据的内在表现形式(代码、存储、运

3、算) C语言提供了以下一些数据类型:,数据类型,构造类型,指针类型,空类型(无值类型) void,4.1 C语句概述,语句: 用来对数据进行加工(完成操作任务),是构成程序的基本单位 通常一个c程序由若干函数(系统,用户)组成 每个函数由若干条语句组成,每条语句总是以“;”结束。 C语句的分类: 简单语句 分三大类 复合语句 空语句,表达式语句 函数调用语句 结构控制语句,结构控制语句,构成循环的语句: while语句实现循环 do-while语句实现循环 for 语句实现循环 break语句continue和语句 条件判定 语句: if语句 switch语句,学过的输入输出函数 getcha

4、r() scanf() putchar(c) printf() Scanf()函数%c格式存在的问题及解决办法,常用 格式输入与输出,(一)格式输出函数 作用:向显示器(或系统隐含指定的输出设备)输出若干个任意类型的数据。 一般格式:printf(格式控制符,输出项列表),双引号括起来的字符串,要输出的内容(常量、变量、表达式等),#includevoid main()int i=5;float f=32.345; printf(“i=%3df=%5.1fn”,i,f);printf(“End.n”);,格式控制字符串: i=%3d f=%5.1f,引导符,宽度,小数位 数精度,类型符,结果:

5、i= 5 f= 32.3 End.,4.5 格式输入与输出,格式控制符完整格式: % 0 m.n l/h 格式字符,4.5 格式输入与输出,%u:以无符号十进制形式输出整数 %c:以字符形式输出,输出一个字符 %s:输出一字符串 %f:以小数形式输出实数,隐含输出六位小数 %e:以指数形式输出实数 %g:自动选用%f或%e格式中输出宽度较短的一种格式,不输 出无意义的0 %:输出%,格式字符:指定输出项的数据类型和输出的格式 %d:以带符号的十进制形式输出整数 %o:以八进制无符号形式输出整数 %x:以十六进制无符号形式输出整数,格式输入与输出,格式输入函数 作用:按照格式控制符的要求将数据从

6、终端传送到变量地址所指的内存空间。 一般格式:scanf(格式控制,变量地址表列) 1.变量地址 变量的地址通过对变量名“求地址”运算得到 形式: printf(”input a,b,c:”); scanf(“%d%f%f”,结果:input a,b,c:12 3 4 a=12,b=3.000000,c=4.000000,输入数据分隔符: 采用隐含的分隔符:空格、回车键、Tab键 根据格式中指定的域宽分隔数据项(不提倡)如“”,只取列; 采用用户指定的分隔符(不提倡),如逗号,scanf(“%3d%2f%2f”,scanf(“%d,%f,%f”, 输入:12,3,4,数组 函数 指针 排序算法

7、,指针,应用题,例6.10 译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。 思路:可以按以下规律将电文变成密码: 将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。,例6.10输入一行字符,要求输出其相应的密码include void main()char c; while(c=getchar()!=n) if(c=a ,运行结果: China! Glmre!,/编写计算器程序, /主要练习多条件分支语句if.else /和switch(又称开关语句) #include #include main() int

8、data1,data2,i; char op,op1=Y; for(i=1;i3;i+) printf( 请输入;); scanf(%d%c%d, ,方法二,/编写计算器程序, /主要练习多条件分支语句if.else /和switch(又称开关语句) #include #include main() int data1,data2; char op,op1=y; do printf( 请输入;); scanf(%d%c%d, ,1.结构体的应用题 有一个结构体变量stu,内含学生学号、姓名和3门课程的成绩。要求在main函数中赋予值,在另一函数print中将它们输出。今用结构体变量作函数参数。

9、,#include #include define FORMAT “%dn%sn%fn%fn%fn” struct student int num; char name20; float score3;void main()void print(struct student); struct student stu; /*声明结构体变量*/ stu.num=12345; strcpy(,LiLin); stu.score0=67.5;stu.score1=89;stu.score2=78.6; print(stu);void print(struct student stu)

10、printf(FORMAT,stu.num,, stu.score0, stu.score1,stu.score2); printf(n);,运行结果: 67.500000 89.000000 78.599998,方法一:用结构体变量作参数,方法2 将上题改用指向结构体变量的指针作实参。 #include define FORMAT “%dn%sn%fn%fn%fn”; struct student int num; char name20; float score3;stu=12345, LiLi,67.5,89,78.6;void main()void print(stru

11、ct student *); print( /*实参改为stu的起始地址*/ void print(struct student *p) /*形参类型修改成指向结构体的指针变量*/ printf(FORMAT,p-num,p-name, p-score0,p-score1,p-score2); /*用指针变量调用各成员的值*/ printf(”n”);,指针数组应用题: 将若干字符串按字母顺序(由小到大)输出。,#include #include void main() void sort(char *name,int n); void printf(char *name,int n); ch

12、ar *name=Follow me,BASIC,Great Wall,FORTRAN,Computer design; int ; sort(name,); print(name,); ,void sort (char *name , int n) char *; int ,; for (;-;) ; for(;) if(strcmp(name,name) 0)=; if (!) temp=namei; namei=namek; namek=temp; void print(char *name ,int ) ; (;) printf(,); ,运行结果为: Computer design

13、FORTRAN Follow me Great Wall,指针函数应用题 有若干个学生的成绩(每个学生有门课程),要求在用户输入学生序号以后,能输出该学生的全部成绩。用指针函数来实现。,#include void main() float score 4=60,70,80,90,56,89,67,88,34,78,90,66; float *search(float (*pointer)4,int n); /*定义指针函数*/ float *p; int i,m; printf(enter the number of student:); scanf(%d, ,运行情况如下: enter th

14、e number of student: The scores of No. are: 56.00 89.00 67.00 88.00,30,数组的应用,:输入10个学生的成绩,求平均成绩,并将低于平均成绩的分数打印出来。 #include #include void readdata(float score10) /输入10个学生的成绩 coutPlease input 10 students score:endl; for(int i=0;i10;i+) sacnf(“%f”, ,31,float aver(float score10) /求平均成绩 float sum=0; int i;

15、 for(i=0;i10;i+) sum+=scorei; return(sum/10); void print(float score10,float ave) /打印低于平均成绩的分数。 int i; coutthe scores which are below the average:; for(i=0;i10;i+) if(scoreiave) printf(“%f”,scorei); return; ,32,void main() void readdata ( float score10); /声明输入10个学生的成绩 float aver(float score10); /声明求

16、平均成绩 void print(float score10,float ave); /声明打印 float ave,score10; readdata(score); ave=aver(score); /返回值给ave /平均值 coutaverage=aveendl; print(score,ave); ,2.枚举类型的应用题 #include enum cityShanghai,Beijing,Nanjing,Tianjin=5,Guangzhou; void ff(enum city x) switch(x) case 0: printf(Shanghain); break; case

17、1: printf(Beijingn); break; case 2: printf(Nanjingn); break; case 5: printf(Tianjinn); break; case 6: printf(Guangzhoun); break; default: printf(非法城市 !n); ,int main() enum city c1,c2,c3,c4; int i=7; c1=(enum city)i; /不能:c1=i; c2=Nanjing; c3=(enum city)5; c4=Shanghai; /枚举变量的赋值:只能为列举元素之一 ff(c1); ff(c2

18、); ff(c3); ff(c4); printf(%d %d %d %d ,c1,c2,c3,c4); i=Shanghai; printf(%d,i); system(pause); /* 执行结果:非法城市 ! Nanjing Tianjing Shanghai 7 2 5 0 */,投骰子游戏,#include #include /投骰子、计算和数、输出和数 int rollDice() int die1 = 1 + rand() % 6; int die2 = 1 + rand() % 6; int sum = die1 + die2; printf(player rolled %d+%d=%dn ,die1,die2,sum); return sum; enum GameStatus WIN, LOSE, PLAYING ;,int main() int sum, myPoint; enum GameStatus status; unsigned

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论