北邮C语言复习题.ppt

上传人:牧羊曲112 文档编号:6103004 上传时间:2023-09-24 格式:PPT 页数:37 大小:320.99KB
返回 下载 相关 举报
北邮C语言复习题.ppt_第1页
第1页 / 共37页
北邮C语言复习题.ppt_第2页
第2页 / 共37页
北邮C语言复习题.ppt_第3页
第3页 / 共37页
北邮C语言复习题.ppt_第4页
第4页 / 共37页
北邮C语言复习题.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《北邮C语言复习题.ppt》由会员分享,可在线阅读,更多相关《北邮C语言复习题.ppt(37页珍藏版)》请在三一办公上搜索。

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的数据类型,数据是操作的对象,数据类型是指数据的内在表现形式(代码、存储、运算)C语言提供了以下一些数据类型:,数据类型,构造类

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

4、格式存在的问题及解决办法,常用 格式输入与输出,(一)格式输出函数作用:向显示器(或系统隐含指定的输出设备)输出若干个任意类型的数据。一般格式: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,引导符,宽度,小数位数精度,类型符,结果:i=5 f=32.3 End.,4.5 格式输入与输出,格式控制符完整格式:%0 m.n l/h

5、 格式字符,4.5 格式输入与输出,%u:以无符号十进制形式输出整数%c:以字符形式输出,输出一个字符%s:输出一字符串%f:以小数形式输出实数,隐含输出六位小数%e:以指数形式输出实数%g:自动选用%f或%e格式中输出宽度较短的一种格式,不输 出无意义的0%:输出%,格式字符:指定输出项的数据类型和输出的格式%d:以带符号的十进制形式输出整数%o:以八进制无符号形式输出整数%x:以十六进制无符号形式输出整数,格式输入与输出,格式输入函数作用:按照格式控制符的要求将数据从终端传送到变量地址所指的内存空间。一般格式:scanf(格式控制,变量地址表列)1.变量地址变量的地址通过对变量名“求地址”

6、运算得到形式:&变量名,同printf函数,是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址,4.5 格式输入与输出,2.格式控制符:%*m l/h 格式字符,输入的数据类型和格式,长度修正说明符(了解,不要求),域宽说明符(了解,不要求),附加说明符(了解,不要求),格式说明的起始符号,格式输入与输出,例:#includeint main()int a;float b,c;printf(”input a,b,c:”);scanf(“%d%f%f”,结果:input a,b,c:12 3 4a=12,b=3.000000,c=4.000000,输入数据分隔符:采用隐含的分隔符:空格

7、、回车键、Tab键根据格式中指定的域宽分隔数据项(不提倡)如“”,只取列;采用用户指定的分隔符(不提倡),如逗号,scanf(“%3d%2f%2f”,scanf(“%d,%f,%f”,输入:12,3,4,数组函数指针排序算法,指针,应用题,例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()

8、!=n)if(c=a,运行结果:China!Glmre!,/编写计算器程序,/主要练习多条件分支语句if.else/和switch(又称开关语句)#include#include main()int 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;doprintf(请输入;);scanf(%d%c%d,1.结

9、构体的应用题 有一个结构体变量stu,内含学生学号、姓名和3门课程的成绩。要求在main函数中赋予值,在另一函数print中将它们输出。今用结构体变量作函数参数。,#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(stu.name,LiLin);stu.score0=67.5;st

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

11、e3;stu=12345,LiLi,67.5,89,78.6;void main()void print(struct 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*nam

12、e,int n);void printf(char*name,int n);char*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 d

13、esignFORTRANFollow meGreat 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 the number o

14、f 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;for(i=0;i10;i+)sum+=sc

15、orei;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);/声明求平均成绩 void print(float score10,float ave

16、);/声明打印 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 1:printf(Beijingn);break;case 2:printf(Nanjingn);brea

17、k;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);ff(c3);ff(c4);printf(%d%d%d%d,c1,c2,c3,c4);i=Shanghai;printf(%d,i);system(p

18、ause);/*执行结果:非法城市!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

19、;unsigned seed;printf(Please enter an unsigned integer:);scanf(%u,/第一轮投骰子、计算和数,switch(sum)case 7:/如果和数为7或11则为胜,状态为WINcase 11:status=WIN;break;case 2:/和数为2、3或12则为负,状态为LOSEcase 3:case 12:status=LOSE;break;default:/其它情况,游戏尚无结果,状态为PLAYING,记下点数,为下一轮做准备 status=PLAYING;myPoint=sum;printf(point is%dn,myPoint);break;while(status=PLAYING)/只要状态仍为PLAYING,就继续进行下一轮 sum=rollDice();if(sum=myPoint)/某轮的和数等于点数则取胜 status=WIN;else if(sum=7)/出现和数为7则为负 status=LOSE;/当状态不为PLAYING时上面的循环结束,以下程序段输出游戏结果if(status=WIN)printf(player winsn);else printf(player losesn);system(pause);return 0;,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号