资源预览内容
第1页 / 共113页
第2页 / 共113页
第3页 / 共113页
第4页 / 共113页
第5页 / 共113页
第6页 / 共113页
第7页 / 共113页
第8页 / 共113页
第9页 / 共113页
第10页 / 共113页
亲,该文档总共113页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C程序设计复习,(一)要点 (二)概念 50% -疑难举例 (三)编程 50% -部分编程题解,衷心祝愿各位取得好成绩!,学好C程序设计关键 在于用好“两脑两手”: 两脑-大脑和电脑 两手-左手和右手 除了多编程多上机外 别无选择!,C程序设计复习,阅读讲义(含例题) 复习习题(55道) (一)要点,C语言基础,1 C 语言基础 基本数据类型(int, float, double, char) 变量(命名规则,类型,值,占用内存大小,地址) 变量(作用域,存储类,生存期,可见性) 表达式 表达式的种类 表达式的计算规则 逗号表达式 赋值语句 C程序的基本结构-顺序结构,选择结构,循环结构 运算符的优先级和结合性 一维数组和二维数组,2 函数-C程序的基本积木块,如何编写(定义)函数? 如何使用(调用)函数? 函数的类型和返回值 函数的形式参数和实在参数 函数的参数传递(单向传值) 哪些类型的变量可以作函数的参数? 如何编写递归函数?,3 指针-C语言的一大特色,指针与指针变量的概念 运算符则 *(p+i)与si等价, p+i与 则*(p+i),*(a+i),pi,ai同值; *(*(p+i)+j),*(*(a+i)+j),*(pi+j),pij,aij同值。 指向函数的指针变量,4 结构体-有广泛的应用背景,结构体类型与结构体变量的定义 结构体类型与结构体变量的区别 如何引用结构体变量(即存取数据)? 如何计算结构体变量的大小? 单向链表的建立,插入,删除与排序,5 文件-有广泛的应用背景,文本文件与二进制文件 文本文件的打开与关闭(fopen , fclose) 文本文件的读与写操作(fgetc,fputc,fgets,fputs,fscanf,fprintf) 二进制文件的读与写操作(fread,fwrite) 其它的文件操作(fseek),C程序设计复习,(二)基本知识疑难举例 做完习题集中的选择题部分对掌握C语言的基本知识大有助益。若能加做其中的填空题更有好处。,标识符大小区分 Sum=i=j=5; sum=(j-,i+,i+); printf(“%d”,Sum); 关键字不能作为标识符(用户标识符) 指出不合法的标识符: A)nameB)_oldC)charD)turbo_c,赋值号不能与等号相混淆 下述循环的循环次数是 int k=2; while(k=0) printf(%d,k), k-; printf(n); A) 无限次B) 0 次C)1 次D)2 次 数学中的不等式不能与C语言中关系表达式相混淆 00.51 00.5 i=10;j=15; k=10*MIN(i,j); printf(%dn,k); A)15B)100C)10D)150,(2)执行下列语句后a,b,c的值分别为 a=1;b=2;c=3; a=(a+)+(b+)+(c+); 1)2 3 4 2)7 3 4 3)6 3 44)10 3 4 (3)设a,b,c为整型变量,且a=2,b=3,c=4,则执行完以下语句: a*=16+(b+)-(+c);后,a的值是 28,如何计算字符串常量的长度? main() char m =ABC,x7a107A,%m659; clrscr(); printf(%d,%d,%dn,strlen(m0),strlen(m1),strlen(m2); printf(%s,%s,%sn,m0,m1,m2); ,7,5,5 ABC ,zGA ,%m59,有符号整数与无符号整数,指出下列程序的输出 main() int i=65536,j=65535,k=-1; clrscr(); printf(%dn,i);/* 0 */ printf(signed j=%d,unsigned j=%un,j,j); printf(signed k=%d,unsigned k=%un,k,k); ,switch 语句的执行规则 (1) main() int c; while(c=getchar()!=n) switch(c-2) case 0: case 1: putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); default:putchar(c+2);break; 若执行时从键盘上输入2473,则程序的输出结果_。 /*668977*/,(2)有以下程序: main() int i; scanf(%d, 输入数据1,则执行以上程序输出结果是 1234,for循环(continue语句的作用) (1) main() int y=9; for(;y0;y-) if(y%3=0) printf(%d,-y);continue; A)741B)852C)963D)875421,(2) void main( ) (break语句的作用) int s=0,k; for(k=7;k 4;k-) switch(k) case 1: case 4: case 7: s+; break; case 2: case 3: case 6: break; case 0: case 5: s+=2;break; printf(s=%d,s);/*s=3*/ ,(3)执行语句for(i=0;i+10;);后变量 i 的值是 (表达式中自加) A)9B) 10 C) 11D) 不变 若有以下定义语句,则sizeof(x) 和sizeof(y)的值是 struct int hour; int minute;int second x, *y ; y= A) 6,2B)6,6 C)3,2D)3,3,函数的定义与调用,内部静态变量 运行以下程序,输出的结果是 #include main() int a=1,b=2; printf(%d,func(a,b); printf(%d,func(a,b); func(int x,int y) static int a=0,b=1; a=b*2;,b=a+x+y; return(b); A)5,5B)4,7 C)5,13D)5,7 变量的作用域 下面程序的输出是 #inckude int a5,k; main() fun1(); fun3(); fun2(); fun3();,fun1() for(k=0;k5;k+) ak=0; fun2() int a5; for(k=0;k5;k+) ak=k; fun3() for(k=0;k5;k+) printf(%d,*(a+k); A)0000000000B)0000001234 C)0000012345D)0123400000,用下列语句定义a,b,c,然后执行b=a,c=b+b,则b,c的值为 (宽度不同的整数之间相互赋值) long a=0 xffffff; int b; char c; A) 0 xffffff 和 ox61B) -1 和 98 C)-1 和 97 D)指向同一地址 执行下面程序片段后的输出结果是 float f1=111.111; printf(%f f1=%8.3fn,f1); A)%f f1= 111.111 B)%f f1=111.111 C)f1=111.111 D)f1= 111.111,设x,y为int型变量,z为float型变量,有以下语句: scanf(%2d%*2d%2d%f, A) 100 B) 200 C) 100,200D) 编译出错,下列程序输出结果是 (阅读程序的方法) #include main() int n2,i,j,k; for(i=0;i2;i+) ni=0; k=2; for(i=0; ik ; i+) for(j=0; jk; j+) nj=ni+1; printf(%dn,nk); 上面程序的 )不确定的值),下列程序运行结果为 。 #define P 3 #define S(a) P*a*a main() int ar; ar=S(3+5); printf(n%d,ar); A) 192B) 29 C) 27D) 25,设有以下程序: #include main() int a9=1,2,3,4,5,6,7,8,9, *p; p=a; printf(%d,p); printf(%x,p+5); 执行此程序,如果第一个printf语句输出的值是200,则第二个printf语句的输出是 A)210 B)205 C)D2D)195,若有以下说明和语句,则对a数组元素的正确引用的选项是 int a45, (*p)5; p=a; A) p+1B) *(p+3) C) *(p+1)+3D) *(*p+2) 执行下面语句后,表达式*(p0+1)+*(q+2)的值为 。 int a=5,4,3,2,1,*p4=a+3,a+2,a+1,a,*q=p; /*p0=a+3;p1=a+2;p2=a+1;p3=a;*/ /* p01+q20=1+4=5 */ A) 8B) 7 C) 6D) 5,若有以下程序片段: int a12=0,*p3, *pp,i; for(i=0;i3;i+) pi= 则对数组的错误引用是 A) pp01B) a10 C) p31D) *(*(p+2)+2),以下程序执行结果是 。 point(cahr *pt); main() char b4=a,c,s,h, *pt=b; point(pt); printf(%cn,*pt); point(char *p) p+=3; A) sB) c C) hD) a,下面程序的输出是 main() struct cmplx int x; int y; cnum2=1,3,2,7; printf(%dn,cunm0.y/cnum0.x*cnum1.x); A) 0B) 1 C) 3 D) 6,下列语句中可以完成建立n个结点的单向链表的功能的选项是 。 (其中,head 指向链表的第一个结点,new指向新结点) A) head-next=new; new-next=head; B) new-next=head; head=new; C) new-next=head; head=new; new-next=NULL; D) head-next=NULL; head-next=new; new-next=head;,若有运算符,sizeof, x=xy; y=yx; x=xy; 则执行完以上语句后x和y 的值分别是 A) x=1,y=2B) x=2,y=2 C) x=2,y=1D) x=1,y=1,C程序设计复习 (三)编程重点,选择语句,循环语句 数组 函数 结构体 文件,复习上机题(55题),需要掌握的上机题(谭浩强著,C程序设计): P65: 6, 8, 9, 10, 12 P85: 9, 10 P104: 3, 5, 7, 9 P120: 1, 2, 3, 4, 6, 7, 8, 14 P141: 2, 4, 5, 6, 8, 11, 13, 14, 15 P186: 1, 3, 5, 6, 9, 10, 16, 17 P199 1, 2 P258: 3, 4, 5, 7, 8, 14, 17, 20 P296: 3, 5, 8, 12 P327: 5, 6, 7, 10, 12,main() /*讲解p105习题5.7(用循环结构更简单)*/ int a,b,c,d,e,count=0; long m; clrscr(); printf(Input m:); scanf(%ld,pri
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号