c复习提纲与参考-2018带答案_第1页
c复习提纲与参考-2018带答案_第2页
c复习提纲与参考-2018带答案_第3页
c复习提纲与参考-2018带答案_第4页
c复习提纲与参考-2018带答案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、C 语言复习一、题型1、单项选择题(10 小题,每小题 2 分,共 20 分)2、判断题(10 小题,对的打“”,错的打“”,每小题 1 分,共 10 分)3、填空题(20 个空,其中普通填空题 10 个空,每空 1 分,共 10 分;程序填空题、运行结果题,每空 2 分,共 30 分)4、程序改错题(3 小题,每小题 6 分,共 18 分)在程序错误处划线并在其后改正。5、编程题(每小题 11 分,共 22 分)二、知识点提纲1C 程序运行步骤过程(编辑、编译、连接、执行)文件扩展名(源程序为 .c,编译后生成文件为 .obj ,连接后生成文件为 .exe)C 语言的三种基本结构(顺序、选择

2、、循环)2.3C 语言程序的书写规范:C 语言区分大小写一条语句可以写成多行每条语句以“;”结束4关于main 函数main 函数是程序的执行,有且仅有一个5变量变量名(标识符)先定义,后使用名规则(以字母或下划线开头,不能以数字开头)局部变量、全局变量定义方式,生存期及作用域6常量字符常量,字符串常量字符常量的转义符表7注释语句两种格式:/*/ 多行注释/单行注释8C 语言中的简单数据类型9.三种基本类型:整型、实型、字符型类型转换字符型以 ASCII数据的输入输出,可以作为整型来处理。例如:a+2 合法。输入输出函数scanf(),prf()中的格式符使用。字符输入、输出函数phar(),

3、getchar()。字符串函数strlen(),strcpy(),。10.11.12.关系运算符和关系表达式条件运算符和条件表达式逻辑运算符和逻辑表达式if 语句、switch 语句正确使用while、do-while、for 循环语句break 和continue 语句16.17.18.数组一维数组、二维数组(定义、初始化、数组元素)字符数组和字符串(字符串冒泡排序、选择排序函数所占字节数、结束标志)函数定义、递归调用和调用数组作为函数参数指针指针和指针变量的含义指针数组、字符串指针作为函数参数指向函数的指针 返回指针值的函数19结构体结构体定义,结构体变量所占字节计算结构体成员的结构体数组

4、。、结构体指针例:p 是结构体指针变量,p-name。该结构体成员 name 的用法有:(*p).name,20. 链表定义:每一个节点都分为两部分,分别为数据域和指针域。三、示例题目(非1. 普通填空题示例原型,只做参考,请细致复习)强制转换: ()(11.3)/2=。(5)自动转换:a; a=11.3/2(5)a10的最小下标和最大下标。(0,9)a10=1,2,3,4,5,6,7,8,9,10,*P=a;那么数值为6 的表达式是(a5如果或* (p+5)) char a=word;char *p; p=a;*(p+1)的值是。(o)*(+p)的值是。(o)数组:a3=1,2,3,4,5,

5、6;第一维大小是几?(3)计算数据类型的字节数:sizeof()1)sizeof()+sizeof(char)*8+sizeof(double)*2=。(28)2)struct teachernum;char name10; char sex;float score;t;则变量t 所占用的内存字节数是。(20) 3)struct studentnum;float score3; wang,zhang;则变量 wang 所占用的内存字节数是。(16)表达式运算x/y, x%yx+, x-, +x, -xx+=a, x-=a, x*=aa=b=c=6;其值是 6。关系、逻辑式:ax=10,x0)

6、y+; else y+=y;y 的值是。(9)6) a 为整型变量,10a15 的 C 语言表达式的写法有:a10 & a15 a=11|a=12|a=13|a=14!(a=15))基本语句嵌套if 语句,else 语句的配对(与前面最近的未配对if 匹配)循环语句的执行次数break 语句continue 语句函数返回值的类型与return 语句中的表达式类型例:1)a=b=c=0; x=35;if(!a) x-; else if(b); if(c) x=3; else x=4;x 的值是。(4)2)i,sum=2;for(i=1;i=2;i+=2)后变量sum 的值是sum+=i; 。(3

7、 )2. 程序填空题示例1)以下程序要实现:输入 5 个数,求和并输出,要求编写求和的函数。请填空完成程序。#include main()b(x,n);sum=0; a5=1,2,3,4,5;sum=b(a,5);prf(sum=%dn,sum);return 0;b(x,n)i,sum=0; for(i=0;i5;i+)sum=sum+xi; return sum;2)输入 3 个学生 4 门课的成绩(60,70,65,75),(75,80,75,90),(95,75,90,65),计算每个学生的总分和平均成绩并输出,结果保留两位小数。填空完成程序。#include main()a34=60

8、,70,65,75,75,80,75,90,95,75,90,65;i,j;float average,sum=0.0;prf(三个学生的总分和平均成绩依次为:n);for(i=0;i3;i+)sum=0.0;for(j=0;j4;j+) sum=sum+aij;average=sum/4;prf(%.2f,%.2fn,sum,average);return 0;3)请根据主程序中函数调用情况,写一个成绩函数 char grade(float x),对于给定的一个百分制成绩x,要求返回其相应等级A、B、C、D、E。90分以上为A,8090 分为B,7079 为C,6069 为D,60 以下为D

9、。填空完成程序。#include main()char grade(float x); float x; char ch; scanf(“%f”,&x); ch=grade(x);prf(“%c”,ch);return 0;char grade(float x)char c;switch(case 10:)x/10)case 9:c=A;break; case 8:c=B;break; case 7:c=C;break; case 6:c=D;break; default:c=E;return c;4) 以下程序的功能是求某整数的各个位数并输出。填空完成程序。#include main()m,

10、num; scanf(%d,&m); while(m)num= m%10;prf(%d, num);m=m/10;return 0;3. 读程序写结果填空题示例1) 下列程序执行后的输出结果是 60*5=300 #include main( )a=5,b=60,c;if (ab)c=a*b;prf(%d*%d=%dn,b,a,c); elsec=b/a;pr return 0;f(%d/%d=%dn,b,a,c);2) 运行下面程序时,若从键盘输入3,5,则程序的输出结果是xy #include main( )x,y; scanf(%d,%d,&x,&y); if (x=y)prf(x=y);

11、else if (xy)prf(xy); elseprf(xy);return 0;3)运行下面程序时,从键盘输入字母H,则输出结果是 o!Good morning! Bye_Bye! #include main( )char ch;ch=getchar( ); switch(ch) case H:pr case G:pr default:prreturn 0;f(o!n);f(Good morning!n); f(Bye_Bye!n);4) 程序输出结果为#include c,a=4;func(a ,b)c=a*b+c; a=b+c; b+;b+;return (a+b+1);main( )

12、b=2,p=1,c=0;p=func(b,a);prf(%d,%d,%d,%dn, a,b,c,p);/局部变量和全局变量/输出:4,2,0,195)程序输出结果为 #include structinfochar a,b;main()structinfo s2=a,b,e,f; t;t=(s0.a-s1.a)+(s1.a-s0.b);prf(%dn,t);return 0;/输出:-16) 程序输出结果为#include main()num9=1,2,3,4,5,6,7,8,9,*p;p=num;prf(%d,%dn,*p, (*p)+);return 0;/2, 1解释:prf 的计算是从右

13、到左,输出是从左向右。7) 程序输出结果为 0100 #includemain()a33=1,3,2,6,3,7;a02=a01+a21;prf(%d%d%dn,a12,a02,a22);return 0;/01008) 程序输出结果为 4,4,0,0 #include main( )a6=3,4,16, 4;b6=27,13,4,25,23,i,j;for(i=0;i6;i+)for(j=0;j6;j+)if(ai=bj)break;if(j6)prf(%d ,ai);prf(n);return 0;/ 分析:按数组 a 中元素顺序输出与数组b 中元素相同的数。输出:4,4,0,04. 改错

14、题示例下列给定程序中,函数 fun 的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多 main 函数,不得增行或删行,也不得更改程序的结构!试题程序#include void fun (char *s)i,j;for (i=0,j=0;si!=0;i+)if (si=0 & si=9)sj=si;j 改为 jsj=0;sj=0main()char item80;prf(nEnter a string:);gets(item); prf(nnThe string is :%sn,item); fun (item);

15、prf(nnThe string of changing is :%sn,item);下列给定程序中,函数 fun 的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串 s 输入:AAaaBBb123CCccccd,则应该输出结果:upper=6,lower=8。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多 main 函数,不得增行或删行,也不得更改程序的结构!试题程序#include b) a 应为*a,b 应为*bvoid fun (char *s,while(*s)a,if (*s=A & *s=a & *s=z)b+;s+;(*b)+;main()char

16、s100;upper=0,lower=0;prf(nPlease a string:);gets(s);fun(s,&upper, &lower);prf(n upper=%d lower=%dn,upper,lower); return 0;假定整数数列中的数不重复,并存放在数组中。下列给定程序中,函数 fun 的功能是:删除数列中值为 x 的元素。n 中存放的是数列中元素的个数。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多 main 函数,不得增行或删行,也不得更改程序的结构!试题程序#include #define N 20fun (*a,n,x)p=0,i;an=x;wh

17、ile (x!=ap) p=p+1;/*found*/if (P=n) return -1;p=nelsefor (i=p;in;i+)ai+1=ai;ai=ai+1;return n-1;main()wN=-3,0,1,5,7,99,10,15,30,90,x,n,i; n=10;prf(The original data:n);for (i=0;in;i+) prf(%5d,wi);prf(nInput x (tete):);scanf(%d,&x);prf(Delete:%dn,x);n=fun(w,n,x);if (n=-1) prf(*Nor be found!*nn); elsep

18、rf(The data after deleted:n);for (i=0,in;i+) prf(%5d,wi);prf(nn);return 0;下列给定程序中,函数 fun 的功能是:根据整型形参 m 的值,计算如下公式的值。t=1-1/22-1/33-1/mm例如,若 m 中的值为 5,则应输出:0.536389。 请改正程序中的错误,使程序能得出正确的结果。注意,不要改多 main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include double fun (m) double y=1.0;i;for (i=2;im;i+) y-=1/(i*i);return(y);

19、 “”改为“=”“1”改为“1.0”main ()n=5;prf(nRhe result is %1fn,fun(n); return 0;下列给定程序中,函数fun 的功能是:从低位开始取出长整型变量 s 中偶数位上的数,一次一个新数放在 t 中。例如,当 s 中的数为 7654321 时,t 是的数为 642。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多 main 函数,不得增行或删行,也不得更改程序的结构!试题程序#include void fun (long s, long t)1long sl=10; s/=10;*t=s%10;while (s0)下列给定程序中,函数 fun 的功能是:按以下递归公式求函数

温馨提示

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

评论

0/150

提交评论