




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2011级C语言程序设计复习提纲(提高班)考试试题题型:(1)选择(40分)(2)程序填空(20分)(3)读程序写结果(40分)(4)程序设计填空题(10分)注意:试卷上要填写教师姓名, 答案要写在答题卡上,试卷和答题卡都要写学号、姓名和专业。第1章 程序设计和C语言1、函数与主函数程序由一个或多个函数组成。必须有且只能有一个主函数main()。程序执行从main开始,在main中结束。2、程序语句C程序语句用”;”作为语句终止符。3、注释/* */, / 注释不能嵌套,不产生编译代码。4、VC6.0编程流程 编辑(.c)编译(.obj)连接(.exe)运行。第2章 算法1、计数、求和、求阶乘等简单算法2、最大数、最小数和平均数3、判断某一年是否为闰年4、判断素数5、冒泡、选择、插入排序6、求多项式的值第3章 顺序结构程序设计1、常量:整型、实型、字符(转义字符)、字符串、符号常量2、变量:先定义,再使用。命名规则:由数字、字母、下划线组成,以下划线或字母开头。字符变量:可与整形变量相互运算,可算术运算。例:字母小写大写 c=c-32;或c=c-(a-A)3、数据类型注意:1. 数据占内存字节数2. 数据取值范围4、常见运算符与表达式算术运算符(+ - * / % + -):运算结果为数值。 注意:%(只用于整数),自增、自减运算关系运算符( = b)?a:b;逗号运算符(,):逗号表达式的值为最后一个表达式的值。注意:不同类型数据间的转换(自动转换与强制转换)例:int a=123; 则a/100的值为(1),a/10%10的值为(2),a%10的值为(3)例:int i=5,j; j=i+/2;例:x=0与x=0的区别;int a=23.6;则a的值为23;x=y=0 的值5、数据的输入与输出printf(格式控制,输出表列) 例如:printf(i=%d,ch=%cn,i,ch);(1)“格式控制”是用双撇号括起来的字符串,它包括两种信息: 格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。 普通字符,即需要原样输出的字符。(2)“输出表列”是需要输出的一些数据,可以是变量和表达式。注意:看程序写结果要严格按照输出格式来写scanf(格式控制符,地址列表)例如:scanf(“%d%d”,&a,&b);作用:按格式控制符的要求将数据从终端传送到变量地址所指定 的内存空间“格式控制”的含义同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址或指针变量;如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。例如:scanf(%d,%d, &a, &b);输入时应输入:3,4。当%d和%c格式相连时,不要使用空格字符作为间隔符。scanf(%d%c, &a, &b); 如希望a=56,b=x.输入格式为:56 x字符、字符串数据的输入输出:putchar()、getchar()、puts()、gets()第4章 选择结构程序设计1、if语句注意:if和else的配对原则,else和前面最近的未配对的if配对2、switch语句注意:根据表达式的值进行多分支选择、case只起语句标号的作用,内部语句按顺序执行,应搭配break实现多分支3、选择结构的嵌套注意:同一程序的等价转换if的嵌套if (x0) y=1;if (x=0) y=0;if (x=0) if (x0) y=1; else y=0;else y= -1;例:设有条件表达式:(EXP)?i+;j-,则以下表达式中(EXP)完全等价的是A)(EXP=0) B)(EXP!=0) C)(EXP=1) D)(EXP!=1)例:有以下程序 #includemain()inta=1,b=2,c=3,d=0;if(a=1&b+=2)if(b!=2|c-!=3)printf(%d,%d,%dn,a,b,c);elseprintf(%d,%d,%dn,a,b,c);elseprintf(%d,%d,%dn,a,b,c);程序运行后输出结果是A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1例:有以下程序 #include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(“a=%d,b=%dn”,a,b); 程序的运行结果是 A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1第5章 循环结构程序设计1、while、do while和for三种循环的使用方法循环要素:循环入口、循环条件、循环体和循环条件的改变。2、break和continue的含义3、循环的嵌套(两层)每层循环都应有各自的四要素,注意内层循环变量初始化的位置例1:编写程序打印码值为33127的ASCII值、字符对照表。int num=33; while(num128) printf(n%d: %c, num, num); num+; int num=33; for(num=33; num128;num+) printf(n%d: %c, num, num); int num=33; do printf(n%d: %c, num, num); num+; while(num 128)例2:若变量已正确定义,有以下程序段i=0;do printf(%d,i); while(i+);printf(%dn,i)其输出结果是0 1A)0,0 B)0,1 C)1,1 D)程序进入无限循环例3:一下程序段中的变量已正确定义 for(i=0;i4;i+) for(k=0;k2*i;k+) printf(*); printf(“n”);程序段的输出结果是A)* B)* C)* D)*第6章 利用数组处理批量数据1、一维数组:定义(长度必须是常量)、访问(不要越界)和初始化(各种形式)。2、二维数组:定义(长度必须是常量)、访问(不要越界)和初始化(各种形式)。例:二维数组在定义时,如果有初始化,则可以缺省第一维的长度。例: int a56:a数组中存放5*6个int类型数据;其占据的内存空间是:sizeof(int)*(5*6)=120字节;a23表示a数组中第三行第四个元素;算法: 冒泡、选择排序,查找最大值和最小值。找出二维数组中每一行(列)的最小值。3、字符数组:定义和赋值、字符串结束标志0字符数组的整体输入和整体输出:“%s”格式符字符串处理函数(puts, gets, strcpy, strcat,strcmp,strlen)的用法例:char s180,s280=”abc”; 则strcpy(s1,s2)和strcmp(s1,s2)的作用,strlen(s1)与sizeof(s1)的区别。strlen(“abcx61”)=4例1:以下程序用以删除字符串中的所有的空格,请填空。#includemain() char s100=“I am a student.”; int i,j;for( i=j=0;si!=0;i+) if(si!= ) sj=si;j+; sj= 【 0 】; printf(%sn,s );例2:以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.请填空.#include void f( int x,int n) int *x int max,min,i,t; max=min=0; for(i=1;ixmax) 【max=i】; if(xixmin) 【min=i】; t=xmax; xmax=xn-1; xn-1=t; t=xmin; xmin=x0; x0=t;main() int a10,u; for(u=0;u10;u+) scanf(%d,&au); f(a,10); for(u=0;u10;u+) printf(%d,au);printf(n);例3:一维数组的访问:for(i=0;iN;i+) ai例4:二维数组的访问:for(i=0;iM;i+) for(j=0;jN;j+) aij请编一个函数void fun(int ttMN,int ppN),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。该题用for(i=0;iN;i+)来控制一列一列地找,而内嵌循环for(j=0;jM;j+)用于控制同列内元素的比较。多重循环的嵌套总是最里层循环变化最快,即外层循环改变一个值,内层循环就要循环完一次,对于多重循环一定要好好去体会和理解,在多数题目中都要用到多重循环(一般为二重)。#include conio.h #include stdio.h#define M 3 #define N 4 void fun(int ttMN,int ppN) int i,j; for(i=0;iN;i+) pp=tt0i; for(j=0;jM;j+) if(ttjippi) ppi=ttji; main( ) int tMN=22,45,56,30,19,33,45,38,20,22,66,40; int pN,i,j,k; printf(the original data is:n); for(i=0;iM;i+) for(j=0;jN;j+) printf(%6d,tij); fun(t,p); printf(nthe result is:n); for(k=0;kN;k+) printf(%4d,pk);第7章 用函数实现模块化程序设计1、定义函数:函数类型 函数名(形参类型说明表)注意:函数类型省略时默认为int。 说明部分 语句部分调用:调用形式:函数名(实参表);说明:实参与形参个数相等,类型一致,按顺序一一对应函数返回:n 返回语句: return(表达式);u 功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数u 说明:l 函数中可有多个return语句,也可以没有(void型函数)。l 若无return语句,函数体执行完自动返回调用函数l 若行参与实参类型不一致,函数类型与return语句中表达式值的类型不一致,都按赋值的强制转换向前者类型转换。2、函数参数及其传递方式:(1)值传递方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值特点:形参与实参占用不同的内存单元、单向传递。(2)地址传递方式:函数调用时,将数据的存储地址作为参数传递给形参特点。特点:通过指针的间接访问运算可修改实参地址对应的变量。3、嵌套调用与递归调用函数的嵌套调用函数的递归调用#include void main()int SunFun(int n);printf(sum=%dn,SunFun(5);int SunFun(int n) int x, s=0; int f(int x); for(x=0;x=n;x+) s=s+f(x); return s;int f(int x) return x*x+1;函数功能:求x从0到5,每次加1,f(x)的累加和,其中f(x)=x2+1;double fac(int n) double f; if(n=0|n=1) f=1; else f=fac(n-1)*n; return(f); #include main() int n; double y; scanf(%d,&n); y=fac(n); printf(%d!=%en,n,y);函数功能:从键盘上输入n的值,通过函数求n!.4、局部变量和全局变量、静态局部变量 变量作用域重叠时,内层屏蔽外层。用static声明的局部变量是静态局部变量,当函数返回时,其内的静态局部变量仍旧存在,直到程序结束。例:编写递归函数。填空。 20 (n=1)f(n)= 3f(n-1)+7 (n1)Int f(int n) if(【n=1】) return 1; else return 【3*f(n-1)+7】第八章 指针1、指针变量的定义和运算指针:一个变量的地址指针变量:专门存放变量地址的变量两个运算符:& 取变量的地址运算符* 取指针所指向变量的内容两者互为逆运算指针定义:基类型 *指针变量名例如:int i=10; int *i_pointer; i_poinnter=&i; i_pointer-指针变量,它的内容是地址量*i_pointer-指针的目标变量,它的内容是数据&i_pointer-指针变量占用内存的地址2、指针作函数参数(传地址)3、指针与数组指向一维数组的指针定义,如何访问数组元素例如int a10,*p; 则*p+的作用( ),*(p+5)的意义。指向二维数组的指针定义,如何访问数组元素例如int a55; 则*a, *(a+1) 表示什么。数组指针示例: /将小写字母变成大写字母#includevoid main() void fubs(char *pf); char str80=123abcdef ABCDEF!; fubs(str); printf(*new string*n); puts(str);void fubs(char *pf) int j; j=0 ;while(*(pf+j)if(*(pf+j)=a&*(pf+j)=z) *(pf+j)= *(pf+j)-32 ; j+; else j+ ;4、字符串与指针例:有以下程序 void fun1(char *p) char *q; q=p; while(*q!=0) (*q)+; q+; main() char a=“Program”,*p; p=&a3; fun1(p); printf(“%sn”,a); 程序执行后的输出结果是 A)P rohsbn B)Prphsbn C)Progsbn D)Program5、了解指向指针的指针、指针数组。例如:int a, *p1,*p2; p1=&a; p2=&p1;则p2的内容和含义是( )。例:阅读程序,写出结果#include void main() char str=1aVbsj2DS,*p=str;while(*p) if(*p=A&*p=a&*pscore 或者(*pm).score结构体数组和结构体指针的用法2、用指针和结构体构成链表,单向链表的建立、输出。3、用自定义名字为已有数据类型命名 类型定义简单形式: typedef type name;typedef 没有创造新数据类型例:阅读程序(函数类型为结构体,参数为结构体变量,函数返回值为结构体,传值)typedef struct char name9;char sex; float score2; STU;STU f(STU a) STU b=Zhou,m,80.0,93.0; int i; a=b;return a;main()STU c=Li,f,89.0,90.0,d;d=f(c); printf(%s,%c,%2.0f,%2.0fn,,d.sex,d.score0,d.score1);其中:a=b 相当于:strcpy(,);a. sex=b.sex;for(i=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创客匠人sir叔课件
- 4《珍珠鸟》公开课一等奖创新教学设计
- 书愤-理想与现实的碰撞 公开课一等奖创新教学设计
- 【大单元】二上第六单元 16《朱德的扁担》第1课时 +公开课一等奖创新教学设计
- 10 竹节人+公开课一等奖创新教学设计
- 创业计划书课件
- 继续医学教育工作汇报
- 急救车及急救药品管理制度及流程
- 风坡与背风坡地理特征解析
- 内分泌课件解剖
- 高等数学(上册)
- 平面镜成像-说课
- 通信工程安全员考试题库案例题汇总
- 频谱监测及瞬态信号捕获技术课件
- 宣城万里纸业有限公司年产15万吨高强度瓦楞包装用纸及5万吨纱管纸技改项目环境影响报告书
- 贵州某二级公路施工组织设计KK
- 推广普通话课件
- GB/T 16714-2007连续式粮食干燥机
- 五年级《欧洲民间故事》知识考试题库(含答案)
- 少先队大队委申请表
- 柴油机负荷特性曲线比较课件
评论
0/150
提交评论