程序设计语言C复习第1页共24页第一章C语言概述一.知识点1.C语言的特点:①语言简洁、紧凑,使用方便、灵活;②运算符丰富;③数据结构丰富;④具有结构化控制语句;⑤语法限制不太严格,程序设计自由度大;⑥可以进行位操作,能实现汇编语言的大部分功能,能直接对硬件进行操作;⑦生成的目标代码质量高,程序执行效率高;⑧程序的移植性好。2.C程序的组成:⑴C程序是由函数构成的;⑵一个函数包括函数的首部(即函数的第一行)和函数体(即花括号部分);⑶函数体一般包括声明部分和执行部分;⑷一个C程序总是从main函数开始执行,从main函数结束;⑸C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上;⑹每个语句和数据定义的最后必须有一个分号;⑺C语言本身没有输入输出语句,是通过函数实现输入输出的;⑻可以用/*……*/对C程序的任何部分作注释。3.C语言程序的运行:源程序文件的扩展名为.c,目标程序文件的扩展名为.obj,可执行程序文件的扩展名为.exe。二.练习㈠.填空题:1.在TURBOC环境中用RUN命令运行一个C程序时,所运行的程序的后缀是.exe。2.C语言源程序文件的后缀是.c,经过编译后,生成文件的后缀是.obj,经过连接后,生成文件的后缀是.exe。3.结构化程序由顺序结构、选择结构、循环结构三种基本结构组成。㈡.选择题:1.组成C语言程序的是(C)。A.子程序B.过程C.函数D.主程序和子程序2.以下叙述中正确的是(C)。A.在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。B.C程序由主函数组成。C.C程序由函数组成。D.C程序由函数和过程组成。㈢.程序设计题:1.编写一个C程序,输入a、b、c三个数,输出其中最大者。程序设计语言C复习第2页共24页第二章算法一.知识点1.算法:为解决一个问题而采取的方法和步骤。2.算法的分类:数值算法、非数值算法。3.算法的特点:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性。4.算法描述方法:自然语言、流程图、改进流程图、N—S流程图、伪代码、计算机语言。二.练习用N—S图表示下列问题:1.有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换。2.依次将10个数输入,要求将其中最大的数打印出来。3.有3个数a、b、c,要求按从大到小的顺序把它们打印出来。4.求1+2+3+……+100。5.判断一个数n能否同时被3和5除。6.将100~200之间的素数打印出来。7.求两个整数m和n的最大公约数。8.求方程ax2+bx+c=0的根;分别考虑有两个不等的实根和有两个相等的实根的情况。第三章数据类型、运算符与表达式一.知识点1.C的数据类型:基本、构造、指针和空类型,char、int、short、long、unsigned、float、double、enum、struct、union、typedef。2.常量与变量的概念,注意符号常量的定义与使用;3.整型、实型、字符型常量的表示,注意整型常量的十进制、八进制、十六进制的书写。4.变量的定义,C的标识符包括关键字、预定义标识符、用户定义标识符;用户定义标识符的可用字符为字母、数字、下划线,第一个字符为字母或下划线。5.常见数据类型的取值范围,int为-32768~+32767,unsignedint为0~65535。6.转义字符:\n、\t、\b、\r、\f、\\、\’、\”、\ddd、\xhh7.不同数值型数据的混合运算,低级类型转换为高级类型运算8.C的运算符:注意结合方向和运算的优先级9.算术运算符:+、-、*、/、%、++、--,注意自加、减运算符分前缀和后缀两种方式。其中前缀方式为先自加、减,后引用;后缀方式为先引用,后自加、减;运算符%要求运算量为整数,运算结果也为整数。注意除运算时,若运算量为整型时,其运算结果也是整型的规则。10.赋值类运算符:=、+=、-=、*=、/=、%=,注意含义和数据类型的转换。11.逗号运算符的使用,注意逗号运算符的运算规则。程序设计语言C复习第3页共24页二.练习㈠.填空题:1.若k为整型变量且赋值11。请写出运算k++后表达式的值11和变量的值12。2.若x为double型变量,运算x=3.2,++x后表达式的值4.2和变量的值4.2。3.函数体由符号{开始,用符号}结束。函数体的前面是声明部分,其后是执行部分。4.C语言中的标识符可分为关键字、用户定义和预定义标识符三类。5.在C语言程序中,用关键字int定义基本整型变量,用关键字float定义单精度实型变量,用关键字double定义双精度实型变量。6.把a1、a2定义成单精度实型变量,并赋初值1的定义语句是floata1=1,a2=1;。7.C程序中定义的变量,代表内存中的一个存储空间。8.表达式3.5+1/2的计算结果是3.5。9.写出数学表达式dcba三个等价的C语言表达式a*b/c/d、a/c*b/d、a*b/(c*d)。10.通常一个字节包含8个二进制位。11.当计算机用两个字节存放一个整数时,能存放的最大(十进制)整数是32767、最小(十进制)整数是-32768。12.在C语言中整数可用八进制数、十进制数和十六进制数三种数制表示。13.C语言中,int型数据占2个字节,long型数据占4个字节,unsignedint型数据占2个字节,short型数据占2个字节,float型数据占4个字节,double型数据占8个字节,char型数据占1个字节。㈡.选择题:1.以下选项中正确的整型常量是(B)。A.12.B.-20C.1,000D.4562.以下选项中正确的实型常量是(D)。A.0B.3.1415C.0.329╳102D..8713.以下选项中不合法的用户标识符是(C)。A._123B.printfC.A$D.Dim4.C语言中运算对象必须是整型的运算符是(A)。A.%B./C.!D.*5.可在C程序中用作用户标识符的一组标识符是(B)。A.voidB.as_b3C.ForD.2cdefine_123-abcDOWORDIfcaseSIG6.若变量已正确定义并赋值,符合C语言语法的表达式是(B)。A.a=a+7;B.a=7+b+c,a++C.int(12.3%4)D.a=a+7=c+b7.不合法的八进制数是(B)。A.0B.028C.077D.018.不合法的十六进制数是(A)。A.oxffB.0XabcC.0x11D.0x19程序设计语言C复习第4页共24页㈢.程序设计题:1.书上P65页3.6、3.9、3.10、3.12第四章顺序程序设计一.知识点1.C语句的类型:控制语句、函数调用语句、表达式语句、空语句、复合语句。2.输入输出的概念:输入输出是相对主机而言,C语言是由函数来实现输入输出的。3.字符数据的输入/输出:getchar()、putchar()4.格式输入/输出:scanf()、printf()5.printf的格式符:d、i,o,x、X,u,c,s,f,e、E,g、G;l,m,n,-。6.scanf的格式符:d、i,o,x、X,u,c,s,f,e、E,g、G;l,m,*;&。注意输入数据时数据流的分隔符,系统默认的分隔符为空格、tab键和回车。7.顺序结构的设计思想:声明变量、输入数据、处理、输出结果。二.练习㈠.填空题:1.以下程序段执行后的输出结果是:⑴-2002500⑵i=-200,j=2500inti=-200,j=2500;⑶i=-200printf(“⑴%d%d”,i,j);j=2500printf(“⑵i=%d,j=%d\n”,i,j);printf(“⑶i=%d\nj=%d\n”,i,j);2.复合语句在语法上被认为是一个语句。空语句的形式是;。3.C语句的最后用;结束。4.以下程序段的输出结果是x=127,x=177,x=7F,x=127。intx=0177;printf(“x=%6d,x=%6o,x=%6x,x=%6u\n”,x,,x,x,x);5.以下程序段的输出结果是a=513.789125,a=513.79,a=513.789125。doublea=513.789215;printf(“a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf\n”,a,a,a,a);6.以下程序段的输出结果是8,%d。a=3+5,a*4;x=11/3;printf(“%d,%%d\n”,a,x);7.以下程序输入三个整数值给a、b、c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。请填空:#includestdio.hmain(){inta,b,c,t;printf(“Entera,b,c:”);scanf(“%d,%d,%d”,&a,&b,&c);t=a;a=b;b=c;c=t;程序设计语言C复习第5页共24页printf(“a=%d,b=%d,c=%d\n”,a,b,c);}8.以下程序不借助任何变量把a、b中的值进行交换。请填空:#includestdio.hmain(){inta,b;printf(“Inputa,b:”);scanf(“%d,%d”,&a,&b);a+=b;b=a-b;a=a-b;printf(“a=%d,b=%d\n”,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.{inti;i++;printf(“%d\n”,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(){intx=10,y=3;printf(“%d\n”,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.scanf(“%d%d%d”,&a,&b,&c);6.若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是(C)。A.a=a+b,b=a-b,a=a-b;B.t=a,a=b,b=t;C.a=t;t=b;b=a;D.t=b;b=a;a=t;7.若变量已正确定义,以下程序段的输出结果是(D)。A.输出格式说明与输出项不匹配,输出无定值B.5.1700C.5.16800D.5.16900x=5.16894;printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);8.执行以下程序段后,c3中的值是(A)。A.0B.1/2C.0.5D.1intc1=1,c2=2,c3;c3=c1/c2;9.执行以下程序段后,其输出结果是(B)。A.0,0,-10B.0,0,5C.-10,3,-10D.3,3,-10inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%d\n”,a,b,c);10.以下程序的输出结果是(D)。程序设计语言C复习第6页共24页A.a=%2,b=%5B.a=2,b=5C.a=%%d,b=%%dD.a=%d,b=%dmain(){inta=2,b=5;printf(“a=%%d,b=%%d\n”,a,b);}11.若int型占两个字节,以下程序段的输出是(D)。A.-1,-1B.-1,32767C.-1,32768D.-1,65535inta=-1;printf(“%d,%u\n”,a,a);12.以下程序段的输出结果是(C)。A.|3.1415|B.|3.0|C.|3|D.|3.|floata=3.1415;printf(“|%6.0f|\n”,a);13.以下程序段的输出结果是(B)