C语言程序设计(习题课).ppt_第1页
C语言程序设计(习题课).ppt_第2页
C语言程序设计(习题课).ppt_第3页
C语言程序设计(习题课).ppt_第4页
C语言程序设计(习题课).ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、何平 2020/12/7,1,C语言程序设计,复习、习题课,题型:,读源程序写结果 算法(程序)填空 编程(需要写算法)(可以考虑添加注释),答疑: 1:12月26日(周日) 上午9:00-12:00 下午14:3017:00 2:12月28日 下午14:30-17:00 地点: 逸夫楼111,考核的重点: 1:各语句的语法结构、执行流程、变量的作用域、存储类别; 2:函数、数组、指针在程序设计中的应用; 3:算法。,何平 2020/12/7,3,基础知识,1: C语言中的字符型(char)数据在内存中的形式存储是什么?(ASCII码。注意:大小写英文字符ASCII码的差值) 2:C语言源程序

2、的组成,一个C语言源程序中必须并且只能有一个主函数;运行规则等。 3:C语言中标识符的合法命名及语句的合法构成 4:变量、常量的概念、合法变量、合法常量的选择;如何定义符号常量等等。,何平 2020/12/7,4,数据类型、运算符和表达式,注意优先级、结合性、计算方法(条件表达式、逗号表达式、逻辑表达式、整数与整数相除,结果如何?等等)、类型转换以及如何将数学表达式写成C语言表达式等。 例1:若有说明语句 int a=5; 计算表达式 a+的值,何平 2020/12/7,5,数据类型、运算符和表达式,例2: 已知:int x=1,y=2,z; 则执行:z=xy?+x :+y;则z的值为【 3

3、】。 例3:设int a=12,则执行完语句a+=a-=a*a;后,a的值是 (-264)。,何平 2020/12/7,6,数据类型、运算符和表达式,例3:判断char型变量ch是否为大写字母的正确表达式是【 】。 条件“020”的C语言表达式是【 】。,Ch=Aint a=1,b;执行b=!c 则执行 x=(a=A 后,a的值(32)。,何平 2020/12/7,9,函数、数组及指针的基本概念,1:函数的定义、函数说明、形参、实参、函数的调用与返回、参数的传递等; 【注意】:若用数组名、指向数组的指针变量做函数调用的实参,则传递给形参的是数组的起始地址。(注意:二维数组名做参数,如何进行参数

4、传递?如何表示形参、实参?) 若用普通变量、数组元素、指针变量的指向运算做实参,则传递给形参的是值 。,何平 2020/12/7,10,函数、数组及指针的基本概念,2:变量的作用域、存储类型(省略时为自动 或auto )、类型标识符、初始化等; 3:全局变量与局部变量同名时,应该如何处理? 4:数组的定义、初始化、引用,字符串的处理函数 5:指针的概念、指针变量的定义;,何平 2020/12/7,11,6:如何通过指向变量的指针变量引用变量的值;如何通过指向一维数组的指针变量引用数组元素;如何通过指向字符串的指针变量进行字符串的处理,包括函数的调用等等; 7:指向函数的指针变量的概念、定义,一

5、般的应用;返回指针值的函数的概念、定义。 注意:函数的指针指的的是函数的入口地址 8:等等。,函数、数组及指针的基本概念,何平 2020/12/7,12,例7:若定义数组int a=1,2,3,4,5,6 ; ,则数组元素aa3的值为【 5 】。,函数、数组及指针的基本概念,何平 2020/12/7,13,例8: 已知:char s6,*ps=s;则正确的赋值语句是【 】。 (1) *s=12345; (2) ps=12345; (3) *ps=12345; (4) s=12345;,函数、数组及指针的基本概念,何平 2020/12/7,14,例9:已有定义char x10=“n016019”

6、 ;则strlen(x)的值为【 】。,例10:有说明int s80=1,2,3,4,5,6,7,8,9,10 ; int *p= s; 则:执行printf(“%d”,(p+=5)2);后的结果是【 】,8,函数、数组及指针的基本概念,4,何平 2020/12/7,15,例11:若有以下定义和语句: int a4=1,3,5,7,*p; p= 结果:,函数、数组及指针的基本概念,3,2,3,何平 2020/12/7,16,例12:有说明char s80=“abcd”,*p=s;,执行p+;后,puts(strcat(p, “ABCD”);的结果是【 】,结果:bcdABCD,函数、数组及指针

7、的基本概念,例13: 若有定义: int a=100,*p=后a的值是【 】,110,何平 2020/12/7,17,例14:定义指向“有两个整型形参、返回值为整数”的函数的指针变量p的语句是【 】。 注意: 1)返回值为指针的函数与指向函数的指针变量有什么不同?分别应该如何定义? 2)数组名和指向数组的指针变量都可以引用数组元素,但性质不同,有些操作对数组名是非法的。如a+,何平 2020/12/7,18,例15: 阅读函数,其功能是?,int fun( char *a, char *b) while (*a!=0) ,功能:比较两个字符串的大小,何平 2020/12/7,19,结构化程序设

8、计,注意各语句的语法结构、执行流程、典型的算法(多位数各位的截取等数据的基本处理方法、枚举法、递推法、冒泡、选择等排序算法、顺序查找、折半查找等查找算法、素数判断、完数、完全平方数、最大公约数及最小公倍数的计算、字符串的复制、字符(或字符串)的删除、特定字符或子字符串个数的统计、回文的判断, 数据的逆序转存,转置矩阵、杨辉三角、矩阵求和等距阵类的计算等等)。,何平 2020/12/7,20,结构化程序设计,1:顺序结构,库函数调用(输入输出函数等注意格式),表达式语句等,何平 2020/12/7,21,结构化程序设计,2:分支结构 3:循环结构,条件表达式,if语句,switch语句,whil

9、e语句,dowhile 语句,for语句,break和contonue的使用,注意:根据需要决定是否使用break语句。,何平 2020/12/7,22,结构化程序设计(续),例16:执行下述程序片段时的输出结果。 1) int a=13,b=5; printf(“%d,”,a%=(b/=2); printf(“%dn”,(+b*3/2);,2) int x=0,s=0; while(!x!=0) s=+x; printf(“%d”,s);,结果:1,4,结果:1,何平 2020/12/7,23,结构化程序设计(续),3) int x; for(x=10;x3;x-) if(x%3) x-;-

10、x;-x; printf(“%d ” ,x);,结果:7 4,结果:5,4)执行语句for(i=1;i+4;);后变量i的值,何平 2020/12/7,24,结构化程序设计(续),例17:按要求回答: 1)若输入字符A,在以下while语句执行表达式后ch的值为【1】 while(ch=getchar()=A) ;,何平 2020/12/7,25,结构化程序设计(续),例18:程序填空: 1)以下程序的功能是计算s=1!+2!+3!+n!。 #include long fun(int n) int j ; 【1】; s= 【2】 ; for(j=1;j=n;j+) s= 【3】; return

11、 s; ,long s;,1,s*j,何平 2020/12/7,26,结构化程序设计(续),void main() long s; int k,n; scanf(“%d”, ,0,fun(k),何平 2020/12/7,27,结构化程序设计(续),2)偶数、奇数、符合某个特定条件的偶数或奇数的处理方法; 3)用选择、冒泡法对n个数(包括字符串)中的指定序号范围内的数据完成排序。 4) 查找指定的数据、指定的字符(或字符子串)等。 5)删除特定的字符,统计特定的字符序列,字符的替换等等有关字符的操作。,何平 2020/12/7,28,结构化程序设计(续),6) 杨辉三角,转置距阵, 矩阵求和、求

12、积,对二维数组某些元素进行指定的处理,数据逆序转存,图形,字符串处理、数据的数值处理(如:“水仙花”、“完数”、“完全平方数”、“素数”、各位数字的截取等)等等。,何平 2020/12/7,29,结构化程序设计(续),例19:请读程序片段: char s =”ABCD”,*p=s; printf(“%dn”,*(p+4); 上面程序片段的输出结果是【 】,参考答案: 0,何平 2020/12/7,30,结构化程序设计(续),例20:下面循环语句的运行结果是【 】 x=2; doprintf(*); x-; while(!x=0);,参考答案: *,何平 2020/12/7,31,练习:1.以下

13、程序的输出结果是【 】 #include void main() int a5=2,4,6,8,10,*p=a; p+; printf(“%d”,*p); ,结果:4,结构化程序设计(续),何平 2020/12/7,32,练习:2.以下程序的输出结果是【 】 #include void f(char *a,char *b) while(*a=*) a+; while (*b=*a)b+;a+; ,结果:a*b*,void main() char *s=“*a*b*”; char t80; f(s,t); puts(t); ,结构化程序设计(续),何平 2020/12/7,33,练习:3.以下程

14、序的输出结果是【 】 #include void main() int s12=1,2,3,4,4,3,2,1,1,1,2,3; int c5=0,i; for(i=0;i12;i+) csi+; for(i=1;i5;i+) printf(“%d ”,ci); ,结果:4 3 3 2,结构化程序设计(续),何平 2020/12/7,34,结构化程序设计(续),例21: #include int test (int x) int a=0; static int b=0; b=b+a+x; return b ; void main() int a10 , j; for(j=0;j10;j+) a

15、j=test(j) ; for(j=0;j=9;j+) printf(“%8d”,aj); ,0 1 3 6 10 15 21 28 36 45,何平 2020/12/7,35,结构化程序设计(续),例22:void main() int j; for(j=1;j=4;j+) switch (j) case 1: case 2: printf(“%d ”,j); case 3: printf(“%d ”,j); break ; default : printf(“China”); ,1 1 2 2 3 China,何平 2020/12/7,36,结构化程序设计(续),例23:#include

16、void main() int k=1,n=263; do k*=n%10; n/=10 ; printf( “%d,”,k) ; while(n) ; ,3,18,36,何平 2020/12/7,37,结构化程序设计(续),例24:#include #include void main() char a =“VC+6.0”, b20 ,*p1,*p2; int k,n; n=strlen(a) ; p1=a+n-1 ; p2=b ; for( k=0;kn;k+) *p2=*p1 ; p1-; p2+ ; *p2=0; puts(b); ,结果? 0.6+CV,何平 2020/12/7,38

17、,结构化程序设计(续),例25:#include void main() int j; for(j=3;j=0;j-) if (j%2) printf(“#”); else continue ; printf(“!”); printf(“!n”); ,结果? #!#!,何平 2020/12/7,39,例26:以下程序的运行结果是?,#include void main() int y=10; while(y-); printf(“y=%dn”,y); ,结果: y=-1,何平 2020/12/7,40,例27:以下程序的运行结果是?,#include void main() int i,j,x

18、=0; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2) continue; x+; x+; printf(“x=%dn”,x); ,结果: x=8,何平 2020/12/7,41,#include void test() int a = 0; static int b = 0; printf(“a=%d,b=%dn”,a,b); a+; b+; void main() int k; for(k = 1;k = 3; k+) test(); ,例28:以下程序的运行结果?,结果: a=0,b=0 a=0,b=1 a=0,b=2,何平 2020/12/7,42,例29:设有以下宏定义:#define W 40#define L W+20则执行赋值语句: v=L*20;(v为int型变量)后,v的值是【】。,结果: 440,何平 2020/12/7,43,例30:下列程序的运行结果:#define W (x) x+20void

温馨提示

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

评论

0/150

提交评论