《C语言分章节知识点及典型试题 .docx》由会员分享,可在线阅读,更多相关《C语言分章节知识点及典型试题 .docx(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结第一章数据类型与表达式一学问点1. C 语言的特点:语言简洁、紧凑,使用便利、灵敏。运算符丰富。数据结构丰富。具有结构化把握语句。语法限制不太严格,程序设计自由度大。可以进行位操作,能实现汇编语言的大部分功能,能直接对硬件进行操作。生成的目标代码质量高,程序执行效率高。程序的移植性好。2. C 程序的组成:C 程序是由函数构成的。一个函数包括函数的首部即函数的第一行和函数体即花括号部分。函数体一般包括声明部分和执行部分。一个 C 程序总是从 main 函数开头执行,从main 函数终止。C 程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。每个语句和数据定义的最
2、终必需有一个分号。C 语言本身没有输入输出语句,是通过函数实现输入输出的。可以用 /* */对 C 程序的任何部分作注释。3. C 语言程序的运行:源程序文件的扩展名为.c,目标程序文件的扩展名为.obj ,可执行程序文件的扩展名为 .exe 。4 C 的数据类型:基本、构造、指针和空类型,char 、int 、short 、long 、unsigned 、float 、double 、 enum 、struct 、 union 、 typedef 。5. 常量与变量的概念,留意符号常量的定义与使用。6. 整型、实型、字符型常量的表示,留意整型常量的十进制、八进制、十六进制的书写。7. 变量的
3、定义, C 的标识符包括关键字、预定义标识符、用户定义标识符。用户定义标识符的可用字符为字母、数字、下划线,第一个字符为字母或下划线。8. 常见数据类型的取值范畴,int 为-32768 +32767 , unsigned int为 065535 。9. 转义字符: n、t、b、r、f、 、 、 ”、 ddd 、 xhh 10 不同数值型数据的混合运算,低级类型转换为高级类型运算11 C 的运算符:留意结合方向和运算的优先级12 算术运算符: +、-、*、/、%、+、-,留意自加、减运算符分前缀和后缀两种方式。其中前缀方式为先自加、减,后引用。后缀方式为先引用,后自加、减。运算符% 要求运算量
4、为整数,运算结果也为整数。留意除运算时,假设运算量为整型时,其运算结果也是整型的规章。13 赋值类运算符: =、+= 、-=、*= 、/= 、%= ,留意含义和数据类型的转换。14 逗号运算符的使用,留意逗号运算符的运算规章。二练习填空题 :1. 在 TURBO C环境中用RUN 命令运行一个 C 程序时,所运行的程序的后缀是.exe。2. C 语言源程序文件的后缀是.c,经过编译后,生成文件的后缀是.obj,经过连接可编辑资料 - - - 欢迎下载精品名师归纳总结后,生成文件的后缀是.exe。3. 结构化程序由次序、 选择分支、 循环三种基本结构组成。4 假设 k 为整型变量且赋值11。请写
5、出运算k+ 后表达式的值11和变量的值12。5 假设 x 为 double型变量,运算x=3.2 , +x 后表达式的值4.2和变量的值4.2。6 函数体由符号分。开头,用符号终止。函数体的前面是定义部分,其后是执行部7. C 语言中的标识符可分为关键字、 用户标识符 和预定义标识符三类。8. 在 C 语言程序中,用关键字int定义基本整型变量,用关键字float 定义单精度实型变量,用关键字double定义双精度实型变量。9. 把 a1 、a2 定义成单精度实型变量,并赋初值1 的定义语句是float a1=1.0,a2=1.0;。10 C 程序中定义的变量,代表内存中的一个储备空间。11表
6、达式 3.5+1/2的运算结果是3.5 。可编辑资料 - - - 欢迎下载精品名师归纳总结12 写出数学表达式a . b 三个等价的 C 语言表达式 a*b/c*d 、 a /c*d*b 、 b/c*d*a 。c . d可编辑资料 - - - 欢迎下载精品名师归纳总结13 通常一个字节包含8个二进制位。14 当电脑用两个字节存放一个整数时,能存放的最大十进制整数是216 -165535 、最小十进制整数是-2 15-32768。15 在 C 语言中整数可用十 进制数、 八 进制数和十六 进制数三种数制表示。16 C 语言中, int 型数据占2个字节, long 型数据占4个字节, unsig
7、ned int型数据占 2 个字节, short 型数据占2 个字节, float 型数据占 4 个字节, double 型数据占8 个字节, char 型数据占1个字节。选择题 :1 组成 C 语言程序的是C。A子程序B 过程C函数D主程序和子程序2 以下表达中正确的选项是C 。A. 在 C 程序中无论是整数仍是实数,只要在答应的范畴内都能精确无误的表示。B. C 程序由主函数组成。C. C 程序由函数组成。3 以下选项中正确的整型常量是B 。A 12.B -20C 1 , 000D4564. 以下选项中正确的实型常量是D 。A 0B 3.1415C 0.329 10 2D .8715. 以
8、下选项中不合法的用户标识符是C 。A _123B printfC A$D Dim 6 C 语言中运算对象必需是整型的运算符是A 。A %B /C!D *D. C 程序由函数和过程组成。可编辑资料 - - - 欢迎下载精品名师归纳总结7. 可在 C 程序中用作用户标识符的一组标识符是B 。A voidB as_b3C ForD2cdefine_123-abcDOWORDIfcaseSIG8. 假设变量已正确定义并赋值,符合C 语言语法的表达式是B 。A a=a+7 。B a=7+b+c , a+C int 12.3%4 D a=a+7=c+b 9 不合法的八进制数是 B 。A 0B 028C 0
9、77D 0110 不合法的十六进制数是A 零 X 。A oxffB 0XabcC 0x11D 0x19程序设计题 :1 编写一个 C 程序,输入 a、 b、c 三个数,输出其中最大者。#include void mainint a,b,c,max;printf “input 3 num:n”; scanf “%d%d%d ”,&a,&b,&c; max=a;ifbmaxmax=b; ifcmaxmax=c; printf “%d ”,max;可编辑资料 - - - 欢迎下载精品名师归纳总结一学问点其次章算法与次序结构可编辑资料 - - - 欢迎下载精品名师归纳总结1. 算法:为解决一个问题而实
10、行的方法和步骤。2. 算法的分类:数值算法、非数值算法。3. 算法的特点:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性。4. 算法描述方法:自然语言、流程图、改进流程图、N S 流程图、伪代码、电脑语言。5. C 语句的类型:把握语句、函数调用语句、表达式语句、空语句、复合语句。6. 输入输出的概念:输入输出是相对主机而言,C 语言是由函数来实现输入输出的。7. 字符数据的输入/输出: getchar 、putchar 8. 格式输入 /输出: scanf 、printf 9. printf 的格式符: d、i, o,x、X ,u, c, s,f,e、E, g、G。 l, m,
11、n, -。10 scanf 的格式符: d、i,o, x、X, u,c, s, f, e、E ,g、G。 l,m, *。&。留意输入数据时数据流的分隔符,系统默认的分隔符为空格、tab 键和回车。11次序结构的设计思想:声明变量、输入数据、处理、输出结果。二练习可编辑资料 - - - 欢迎下载精品名师归纳总结填空题 :1 以下程序段执行后的输出结果是: 200 2500 i=-200,j=2500。int i=-200 ,j=2500 。printf “ %d %d ”, i, j。printf “ i=%d ,j=%dn ”, i, j。 printf “ i=%dn j=%dn”,i ,
12、j。2. 复合语句在语法上被认为是一条语句。空语句的形式是。3. C 语句的最终用。终止。4. 以下程序段的输出结果是x=127,x=177,x=7f,x=127。intx=0177 。 printf “x=%6d ,x=%6o , x=%6x ,x=%6un ”, x, x, x,x 。 5 以 下 程 序 段 的 输 出 结 果 是a=513.789215,a=513.79,a=513.78921500,a=531.78921500。doublea=513.789215。printf “ a=%8.6f , a=%8.2f , a=%14.8f , a=%14.8lfn ”, a, a,
13、a,a。 6 以下程序段的输出结果是8, 3。a=3+5 , a*4 。x=11/3 。 printf “ %d , %dn ”, a, x。7. 以下程序输入三个整数值给a、b、c,程序把 b 中的值给 a,把 c 中的值给 b,把 a 中的值给 c,交换后输出 a、b、c 的值。请填空:#include main int a , b, c, m。printf “ Enter a ,b, c:”。scanf “ %d , %d , %d”, &a,&b,&c 。 m=a。 a=b 。 b=c 。 c=m。printf “ a=%d , b=%d , c=%dn ”, a, b, c 。 8.
14、 以下程序不借助任何变量把a、 b 中的值进行交换。请填空:#include main int a , b。printf “ Input a , b:”。scanf “ %d , %d ”, &a,&b 。 a+=b。 b=a-b 。 a=a- b。 printf “ a=%d , b=%dn ”, a, b 。 选择题 :1. 假设 a、b、c、d 都是 int 型变量且初始值为0 ,以下不正确的赋值语句是C 。A a=b=c=100。B d+ 。C c+b 。D d= c=22 - b+ 。2. 以下选项中不是C 语句的是C 。可编辑资料 - - - 欢迎下载精品名师归纳总结A int i
15、 。 i+ 。 printf “ %dn ”, i。 B 。C a=5 ,c=10D 。 3 以下合法的C 语言赋值语句是D 。A a=b=58B k=int a+b 。C a=58 , b=58D -i 。4. 以下程序的输出结果是C 。A 0B 1C 3D不确定的值main int x=10 , y=3 。printf “ %dn ”, y=x/y 。 5. 假设变量已正确说明为int 类型,要给 a、b、 c 输入数据,正确的输入语句是D。A read a, b, c 。B scanf “%d%d%d ”,a, b, c 。C scanf “ %D%D%D ”,&a ,&b ,&c 。D
16、 scanf “ %d%d%d ”,&a ,&b ,&c 。6 假设变量已正确定义,要将a 和 b 中的数进行交换,下面不正确的语句组是C 。A a=a+b , b=a-b , a=a-b 。C a=t 。t=b 。 b=a 。B t=a , a=b , b=t 。D t=b 。 b=a 。 a=t 。7 假设变量已正确定义,以下程序段的输出结果是D。A 输出格式说明与输出项不匹配,输出无定值B 5.1700C 5.16800D 5.16900x=5.16894。printf “ %fn ”,intx*1000+0.5 /float 1000 。 8 执行以下程序段后, c3 中的值是 A。A
17、 0B 1/2C 0.5D 1 int c1=1 , c2=2 , c3 。 c3=c1/c2 。9 执行以下程序段后,其输出结果是B 。A 0 , 0,-10B 0, 0 , 3C -10 , 3 ,-10D 3 , 3 ,-10 int a=0 , b=0 ,c=0 。 c=a-=a-5 ,a=b , b+3 。printf “ %d , %d , %dn ”, a, b, c。 10 以下程序的输出结果是D 。Aa=%2 ,b=%5B a=2 ,b=5C a=%d ,b=%dDa=%d ,b=%dmain int a=2 , b=5 。printf “ a=%d , b=%dn ”,a
18、, b。 11假设 int 型占两个字节,以下程序段的输出是D 。A -1 , -1B -1 , 32767C -1 , 32768D -1 , 65535int a=-1 。 printf “ %d, %un ”, a, a。 12 以下程序段的输出结果是 C。A |3.1415|B |3.0|C |3|D |3.|float a=3.1415。 printf “ |%6.0f|n ”, a 。 13 以下程序段的输出结果是 B。A 98B 89C 66D 以上三个都不对#include main double a=-3.0, b=2 。可编辑资料 - - - 欢迎下载精品名师归纳总结pri
19、ntf “ %3.0f%3.0fn ”, pow b, fabs a, pow fabs a ,b 。 14 假设 a 为整型变量,就以下语句B 。A 赋值不合法B 输出值为 -2C输出为不确定值D 输出值为 2a=-2L 。 printf “%dn ”, a 。15 假设有定义char s= 092 。就该语句B 。A 使 s 的值包含 1 个字符B定义不合法, s 的值不确定C 使 s 的值包含 4 个字符D 使 s 的值包含 3 个字符 16 假设 k、g 均为 int 型变量,就以下语句的输出为D 。A 15B 16C 15D 166f70716fk=017 。 g=111 。prin
20、tf “ %dn ”, +k 。 printf “ %xn ”, g+ 。17 已知字母a的 ASCII 十进制代码为97 ,执行以下语句后的输出为 C。A b, cC 98 , cB a- 运算不合法,故有语法错误D格式描述和输出项不匹配,输出无定值char a= a 。 a- 。 printf “ %d , %cn ”,a+ 2 -0 , a+ 3 - 0。 18 以下程序的输出为A。A 27.000000B 27.500000C 28.000000D 28.500000#include main int m=7 , n=4 。 float a=38.4 , b=6.4 , x。x=m/2
21、+n*a/b+1/2。 printf “ %fn ”, x。 19 以下程序的输出结果是C 。A 18B 9C -18D -9main int a=9 。 a+=a-=a+a 。 printf “ %dn ”, a。 20 以下程序的输出结果是A 。A 0B 5C 1D不确定值main int a=7 , b=5 。 printf “ %dn ”, b=b/a 。 21 以下程序的输出结果是C 。A 12B 11C 10D 9main int a=011 。printf “ %dn ”, +a 。程序设计题 :用 N S 图表示以下问题:1. 有两个瓶子A 和 B,分别盛放醋和酱油,要求将它们
22、互换。编写程序2. 依次将 10 个数输入,要求将其中最大的数打印出来。#include main可编辑资料 - - - 欢迎下载精品名师归纳总结int i,a,max; scanf%d,&max; for i=1;imax max=a;printf%d,max;3. 有 3 个数 a、 b、c,要求按从大到小的次序把它们打印出来。 mainfloat a,b,c,t; scanf%f,%f,%f,&a,&b,&c; ifabt=a;a=b;b=t; /*实现 a 和 b 的互换 */ifact=a;a=c;c=t; /*实现 a 和 c 的互唤 */ ifbct=b;b=c;c=t; /*实
23、现 b 和 c 的互换 */printf%5.2f,%5.2f,%5.2fn,a,b,c;4 求 1+2+3+ +100 。#include int mainint i,sum=0; i=1;whilei=100sum=sum+i; i=i+1;printf “%d ”,sum;5. 判定一个数n 能否同时被 3 和 5 除。 include mainvoid可编辑资料 - - - 欢迎下载精品名师归纳总结int n; scanf%d,&n。ifn%3 = 0 & n%5 = 0printf%d能否同时被 3 和 5 整除 n,n; elseprintf%d不能否同时被 3 和 5 整除 n,
24、n; return 0;6. 将 100 200 之间的素数打印出来。#include int isPrimeint nint i; fori=2;i*i=n;i+ ifn%i=0return 0;return 1;int mainint i; fori=100;i=200;i+ifisPrimei printf%dn,i;7. 求两个整数m 和 n 的最大公约数和最小公倍数。mainint a,b,num1,num2,temp; printfplease input two numbers:n; scanf%d,%d,&num1,&num2; ifnum1 temp=num1;num1=nu
25、m2; num2=temp;a=num1;b=num2;可编辑资料 - - - 欢迎下载精品名师归纳总结whileb.=0/* 利用辗除法,直到b 为 0 为止 */temp=a%b; a=b; b=temp;printfgongyueshu:%dn,a; printfgongbeishu:%dn,num1*num2/a;8. 求方程 ax 2+bx+c=0的根#include #include /用到平方根函数void mainfloat a,b,c,x1,x2,p,q,m;scanf%f%f%f,&a,&b,&c;if a=0.0&b=0.0&c! =0.0 printf “ no val
26、ue.;else if a=0.0&b=0.0&c=0.0 printfany value.;else if a=0.0&b.=0.0 printfx1=x2=%f,-c/b;elsem=b*b-4.0*a*c; ifm=0x1=-b+sqrtm/2.0*a;x2=-b-sqrtm/2.0*a; printfx1=%fn,x1; printfx2=%fn,x2;elsep=-b/2.0*a;q=sqrt-m/2.0*a; printfx1=%f+%fin,p,q; printfx2=%f-%fin,p,q;9. 编写程序,输入两个整数1500 和 350 ,求出它们的商和余数并进行输出。可编辑
27、资料 - - - 欢迎下载精品名师归纳总结#include #inclued void mainint a; int b; int c,d;a=1500,b=350;c=a/b;/ 商数d=a%b;/ 余数pritf 商数为 : %dn,c; printf 余数为: %dn,d; return 0;10 编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后其次位数进行四舍五入,最终输出结果。#include main double a, b, c, d;printf 输入三个双精度数 n; scanf%lf%lf%lf, &a, &b, &c; d = a + b
28、 + c / 3;printf%.1fn, d;11求 三 角 形 的 面 积 :a,b,c是 边 长 ,p 是 半 边 长 ,s 是 面 积 , 就 s=pp - ap - bp - c1/2#i ncl ude #i ncl ude mainfl oat a,b,c,p,s ;printfinput 3 num:;sc anf%f%f%f,&a,&b,& c; p= a+b+c/2;s=p* p-ap-bp-c; s=pows,0.5;printfs=%f ,s ;12 输入一个华氏温度,要求输出摄氏温度。公式为:c=5 f-32 /9 。#includemain可编辑资料 - - - 欢
29、迎下载精品名师归纳总结 double tem_c, tem_f;puts= 华氏温度至摄氏温度转换程序=; printf 请输入华氏温度: ;scanf%lf, &tem_f;tem_c = tem_f - 12 * 5.0 / 9.0;printf%f对应的摄氏温度为%.2f, tem_f, tem_c; renturn 0;第三章选择结构程序设计一学问点1. 关系运算符、规律运算符、规律值的表示与含义。留意& 、| 的运算规章。2. 三种 if 语句3. 选择结构的嵌套,留意if 与 else 的配对。4. 条件运算符:?:5. switch 语句,留意其执行过程。6. 选择结构程序设计思
30、想。二练习填空题 :1 C 语言中用非 0表示规律值“真”,用0表示规律值“假” 。2 C 语言中的关系运算符按优先级别是、。答案: 、= 、=、= 、=、.= 、& 、|5. C 语言中规律运算符的!优先级高于算术运算符。6. 将以下数学式改写成C 语言的关系表达式或规律表达式:a=b 或 aca=b|a4x4|x100 printf “%dn ”, a100 ; else printf “ %dn ”, a10 | a+be1 .ae0 a+ & e+ & c+0 .e & e=b=+c1 0a & ac 。 b=a 。 a=c 。 c=b 。10 当 a=1 、b=2 、c=3 时,执行
31、以下if 语句后,ifac b=a 。a=c 。 c=b 。a=3、b= 2、c= 2。11当 a=1 、b=2 、c=3 时,执行以下if 语句后,a=1、b= 2、c= 2。ifac b=a ,a=c 。 c=b 。12 将以下两条if 语句合并为一条 if 语句:。 a+c=b=b+d=a | c=b+ad=c+b1ifab scanf “ %d ”, &x 。 else scanf “ %d ”, &y 。ifab scanf “ %d ”, &x 。 j+ 。 else scanf “ %d ”, &y 。 i+ 。 13 将以下嵌套的 if 语句改写成不嵌套的if 语句:k=1 。
32、 else。ifw0 k=0 。 else if w=0&w=100k=1 。 elsek=0 。14以下程序判定输入的一个整数是否能被不能整除,输出“NO ”。请填空: #include main int k 。3 或 7 整除,假设能整除,输出“YES ”,假设printf “ Enter a int number:”。 scanf “ %d ”,&k 。if k%3=0|k%7=0printf “ YESn ”。 else printf “ NOn ”。 15 在 switch 语句中,当执行到break 语句时,使流程跳出开关语句。选择题 :1. 假设给定条件表达式M? a+ :a-
33、,就和表达式 M 等价的表达式为C 。A M=0B M=1C M !=0D M !=12. 为表示关系x y z,应使用的 C 语言表达式是A 。A x=y & y=zB x=yANDy=zC x=y=zD x=y&y=z 3 以下程序的输出结果是D 。A 0B 1C 2D 3 main int a=2 , b=-1 ,c=2 。 if ab ifb0 c=0 。 else c+=1 。printf “ %dn ”,c 。 4. 以下程序的输出结果是A 。可编辑资料 - - - 欢迎下载精品名师归纳总结A 1B 2C 3D 4 main int w=4 , x=3 , y=2 , z=1 。
34、printf “ %dn ”,wx . w : zy . z : x。 5. 假设执行以下程序时,从键盘上输入3 和 4,就输出结果是B 。A 14B 16C 18D 20main int a , b, s。 scanf “ %d %d ”, &a, &b 。 s=a 。 ifa=C类型D, A |B %C!D = A =B .=C *乘 D 10 假设 a 为整型变量, b 为字符型变量,就以下正确的switch 语句是A。A switch intx/10 B switch b case 1 : a+ 。break 。 case 042 。 x=a/b 。 break 。 case 2 :
35、b+ 。 break 。 case 6 。 x=a*b 。 break 。 case 3 : c+ 。 break 。case 010 。 x=a+c 。break 。C switch intx/10 。D switch a/100+10 case 0 : a+ 。break 。 case2: x=a/b 。break 。 default : b+ 。 break 。case6: x=a*b 。 break 。 case 3+1 : c+ 。 break 。case8: x=a+c 。 break 。 case 3 : d+ 。 break 。case10: x=a-c 。 break 。程序设计题 :1. 从键盘输入一个字母,假设是大写字母,要求改用小写字母输出。可编辑资料 - - - 欢迎下载精品名师归纳总结#include void mainchar var;var=getchar; ifvar=65&var=0. #include#include void mainfloat a,b,c,p,x1,x2;printfinput 3 numbers:n; scanf%f%f%f,&a,&b,&c; ifb*b-4*a*c=0p=powb*b-4*a*c
限制150内