2014秋《C语言程序设计选修》复习总结.doc_第1页
2014秋《C语言程序设计选修》复习总结.doc_第2页
2014秋《C语言程序设计选修》复习总结.doc_第3页
2014秋《C语言程序设计选修》复习总结.doc_第4页
2014秋《C语言程序设计选修》复习总结.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

C语言复习第一章1、C语言的特点2、一个C语言程序构成单位:由一个或多个函数组成。3、函数的组成部分:由函数首部和函数体组成。4、main函数在C语言中的作用和在源程序中的位置:C语言的执行从main开始,到main结束。可以在任何地方出现。5、C源程序的编译连接过程,每个阶段的文件的扩展名是什么。(标准TC编译系统)。 源程序:.c 目标程序: .obj ,可执行程序 .exe6、什么是注释?功用是什么?编译时对其处理吗?/* */中间的部分。编译时不对其处理。7、C中的输入输出如何实现。 C语言本身没有输入/输出语句,实现输入输出使用scanf、printf标准库函数。第二章1、标识符的定义规则。2、基本数据类型有哪些。在输入函数和输出函数中用哪些格式说明?注意:1) 各种分类的整型数据都用那些类型符标记,八进制(0打头)、十六进制(0x打头)的表示方法。2) 实型数据的指数形式表示方法。1.5e0.3是错误的。3) 字符型常量的表示:用单引号中括起来的一个字符(对于转义字符,单引号中是以反斜杠开头的多个内容,但是一定要知道的是他们共同表示了一个字符)。如:2 、111。在ASII表中一定要知道:大小写字母的关系(大些之母和相应的小写字母相差32,即a-A=32)。小写字母之间连续(ASII值相隔为1)。4) 把一个大写字母变量x_A转换成一个小写字母变量x_a可用表达式:x_a=x_A+32或x_a=x_A+a-A。5) 字符型数据和整型数据有一定的相通性。在内存中字符型数据以ASII码存储。3、运算符和表达式:要知道各种运算符和表达式的运算规则和要求。如:1) 自增自减(+、-):只能是变量的自增自减, x=y+;2) 逗号表达式的运算优先级最低,逗号表达式的值是最后的那个子表达式的值: int x; x=5,x+15,x*53) 字符型数据参加运算用它的ASII数值参加运算。4) %要求两个操作数都是整数。5) 复合的赋值运算符: 如 n%=i*3+j4、混合运算时类型的相互转换 注意:显示类型转换的写法。1.5+10+a*5第三章1、C语句的分类,各有什么特点。2、赋值运算和赋值语句:变量=表达式。(P48)3、赋值运算的优先级4、赋值时的数据类型转换:如 double n, n=10; 是怎么一个运算规则。5、数据的输入、输出注意格式说明符的使用。1) 在printf函数中,“”里面的普通字符计算机会原样输出2) 在scanf函数中,“”里面的普通字符要求用户原样输入,输入列表一定要是地址。如scanf(“a=%d,b=%d”,&a,&b);用户输入时输入方式为a=1,b=2。如果是:scanf(“%d%d”,&a,&b); 则用户可以输入1 2或者通过回车分隔:1 23) scanf函数是对变量的输入,不能是常量。4) getchar()、putchar()、gets()、puts()的含义和使用。 6、顺序结构程序设计,主要涉及数值计算,要求能够熟练的写表达式。如求整数各位上的数字。第四章1、关系运算:1) 各个运算符号是什么,他们之间的优先级是什么。2) 一定要注意=和=的区别。if(a=b+2)和if(a= =b+2) 都可以,但是判断条件的的计算是不一样的:判断条件:a=b+2是把b+2赋值给a,a的值就是a=b+2的值,所以判断条件成立与否决定于a的值是否为0;而a= =b+2则是拿a的值和b+2的值进行是否相等的比较,如果相等则判断条件成立,否则不成立。2、逻辑运算符:1) 逻辑&:表达式1&表达式2:如果表达式1为假,整个表达式为假,则不再计算表达式2。 如:int a=1,b=2,c=3,d=4, (c=ab)&(d=a3;) ;循环一个也不执行。3、注意多重循环之间,外层循环和内层循环之间的关系。 For(i=0;i5;i+)For(j=i;j5;j+)注意: For(j=i;j5;j+)是For(i=0;i5;i+)的循环体内的东西,当i取一个值的时候,For(j=i;j5;j+)就要从i的当前值开始循环,直到j=5,循环结束。然后执行i+;如果i5,则又进入For(i=0;i5;i+)的循环体,For(j=i;j5;j+)又要执行若干次。4、continue:在循环体中如果执行continue语句,则循环体中continue语句之后的语句不再执行,但是并不结束整个循环,而是结束本次循环,进行下一个循环。5、break:跳出整个循环。6、常用的算法:1) Fibonacci数列、水仙花数、完数等有规律数据循环处理(如:奇数、偶数、分子或分母为奇数或偶数的分数的和或乘积)等。 2) 求素数。3) 求数的阶乘之和。 第六章 数组1、 一维数组:数组名的含义、数组元素的下标范围(0到n-1)2、 一维数组的初始化:书上没有特别强调的:int a10=0,int a2=1,2,3,4;3、 字符数组:常用函数。4、 函数参数为数组。5、 常用算法: 求数组元素中的最大值(所在下标)、最小值(所在下标)、sum、平均值。(必会) 排序算法 二维数组算法:行或列数据的关系,对角线数据的处理等。函数首部第七章 函数 1、函数的定义:函数值的类型 函数名称(形参) 函数体 1) 函数值的类型表示函数执行完毕后返回结果的值的类型,如果和函数体内的return 后面的表达式的值的类型不一致时,要将return后的表达式的类型转换成函数值的类型的数据类型。2) 如果没有指定函数类型,则默认是int。3) 形参的定义放在()中,对于每个形参都要单独给出数据类型的说明,f(int a,b,float n)是不对的。4) 函数体包括函数局部变量的定义,函数执行语句。5) Return 后面只能返回一个值,可以是常量、变量、表达式的值。2、函数声明:如果函数定义在函数调用之后,则函数调用时要对函数进行声明。3、函数调用:函数名(实参)。1) 如果函数不需要参数,()也不能省。实参的含义:取其值,传递(赋值)给形参。实参可以是常量、变量、表达式、函数调用(fun(fun(a,b),c)。切记不能对实参进行数据类型的说明。 2) fun( fun(a,b), c ):先调用fun(a,b),将执行结果作为外围fun函数的第一个实参。4、递归调用:能够自已运行递归函数。5、变量、函数的作用范围1) 各种存储类型的变量2) 局部变量的各种说明6、常用的算法: 函数实现判断数据的奇偶性、是否是素数等。(必会) 函数与数组的结合,求数组中的最大值、最小值、数组各元素之和等。 第八章 指针1、 指针用于指向一个变量,值是一个地址,它指向的那个变量的地址。通过指针实现对变量的间接访问。2、 如果 p=&a,则 a、*(&a)、*p的值是指a的值。 p 、&(*p)、&a代表的是a的地址。3、 对于 int a10,p=a; p指向数组a的首地址也是数组元素a0的地址。则p+i指向ai,*(p+i)是ai的值。4、 指针作函数参数:传值、传址的区别。相关练习题一、 选择题1. C语言中用于结构化程序设计的3种基本结构是( )。【A】顺序结构、选择结构、循环结构【B】if,switch,break【C】for,while,do-while【D】if,for,continue2. C语言中基本数据类型包括( )。【A】整型、实型、逻辑型【B】整型、实型、字符型【C】整型、字符型、逻辑型【D】字符型、实型、逻辑型3. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是( )。【A】有零个或多个输入【B】有零个或多个输出【C】有穷性【D】可行性4. 以下叙述中正确的是( )。【A】构成C程序的基本单位是函数【B】可以在一个函数中定义另一个函数【C】main()函数必须放在其他函数之前【D】所有被调用的函数一定要在调用之前进行定义5. 下面对C语言的描述中,正确的是( )。【A】函数一定有返回值,否则无法使用函数【B】C语言函数既可以嵌套调用又可以递归调用【C】在C语言中,调用函数时,只能将实参的值传递给形参【D】C语言程序中有调用关系的所有函数都必须放在同一源程序文件中6.下列关于复合语句和空语句的说法错误的是( )。【A】复合语句是由“”开头,由“”结尾的【B】复合语句在语法上视为一条语句【C】复合语句内,可以有执行语句,不可以有定义语句部分【D】C程序中的所有语句都必须由一个分号作为结束7.下列说法中错误的是( )。【A】只能在循环体内使用break语句【B】在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环【C】在while和do-while循环中,continue语句并没有使整个循环终止【D】continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断8.下列选项中,不能用作标识符的是( )。【A】_1234_【B】_1_2【C】int_2_【D】2_int_9.以下选项中不能用作C程序合法常量的是( )。【A】1234.5 【B】123【C】123 【D】x7G10.若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为( )。【A】1.4 【B】1【C】2.0 【D】211.设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf(i=%d,f=%f,&i,&f); 为了把100和765.12分别赋给i和f,则正确的输入为( )。【A】100765.12 【B】i=100,f=765.12 【C】100765.12 【D】x=100,y=765.1212.若变量已正确定义并赋值,以下符合C语言语法的表达式是( )。【A】a:=b+1【B】a=b=c+2【C】int 18.5%3【D】a=a+7=c+b13.C语言中运算对象必须是整型的运算符是( )。【A】%=【B】/【C】=【D】y&x!=y);【B】if(x=y)x+=y; 【C】if(x!=y)scanf(%d,&x)else scanf(%d,&y);【D】if(xy)x+;y+;16.若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k+) printf(*n);下面关于语句执行情况的叙述中正确的是( )。【A】循环体执行两次【B】循环体执行一次【C】)循环体一次也不执行【D】构成无限循环17.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( )。【A】for(i=1,p=1;i=5;i+) p*=i;【B】for(i=1;i=5;i+) p=1;p*=i;【C】i=1;p=1;while(i=5) p*=i;i+;【D】i=1;p=1;dop*=i;i+; while(is2)S;【B】if(strcmp(s1,s2)S);【C】if(strcmp(s2,s1)0) S;【D】if(strcmp(s1,s2)0) S;24.若有以下调用语句,则不正确的fun函数的首部是( )。main() int a50,n;fun(n,&a9);【A】void fun(int m, int x)【B】void fun(int s, int h41)【C】void fun(int p, int *s)【D】void fun(int n, int a)25.已定义如下函数fun (int *p)return *p;该函数的返回值是( )。【A】不确定的值【B】形参p中存放的值【C】形参p所指存储单元中的值【D】形参p的地址值26.有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;b中的值是( )。【A】5【B】6【C】8【D】91. C语言源程序名的后缀是( )。【A】.exe 【B】.c 【C】.obj 【D】.cpp1. 以下叙述中错误的是( )。【A】C源程序经编译后生成后缀为.obj的目标程序【B】C程序经过编译、连接后才能形成一个真正可执行的二进制机器指令文件【C】用C编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中【D】C中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令2. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是( )。【A】有零个或多个输入 【B】有零个或多个输出【C】有穷性 【D】可行性3. 如已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( )。 【A】1 【B】2.0 【C】2 【D】2.54. 以下叙述中正确的是( )。【A】构成C程序的基本单位是函数【B】可以在一个函数中定义另一个函数【C】main()函数必须放在其他函数之前【D】所有被调用的函数一定要在调用之前进行定义5. 已知:char a;int b;float c;double d;执行语句 c=a+b+c+d;后,变量c的数据类型是( )。【A】int 【B】float 【C】char 【D】double6. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。【A】x=y=5; 【B】x=n%2.5; 【C】x+n=i; 【D】x=5=4+1;7. 判断字符型变量ch为数字字符的表达式是( )。【A】0=ch=0)&(ch=0)|(ch=0)&(ch=9)8.下列选项中,不能用作标识符的是( )。【A】_1234_【B】_x【C】ab1exe【D】2_int_9.以下选项中不能用作C程序合法常量的是( )。【A】1234.5 【B】123【C】123 【D】a10.若有定义:int a=8,b=5,c;执行语句c=(int)(a/b+0.5);后c的值为( )。【A】1.5 【B】1【C】2.0 【D】211.设i是int型变量,f是double型变量,用下面的语句给这两个变量输入值:scanf(%d%lf,&i,&f); 为了把80和60赋给i和f,则正确的输入为( )。【A】80,60 【B】i=80,f=60 【C】8060 【D】806012. 能表示整数x符合下面两个条件的语句是( )。能被4整除,但不能被100整除;能被400整除。【A】(x%4= =0&x%100!=0) | x%400= =0【B】(x%4= =0 | x%100!=0) & x%400= =0【C】(x%4= =0&x%400!=0) | x%100= =0【D】(x%100=0 | x%4!=0) & x%400= =013.C语言中运算对象必须是整型的运算符是( )。【A】=【B】/【C】%=【D】=14. 若int a;char b;float c;则为它们输入数据的正确语句是( )。【A】scanf(%d%d%d,&a,&b,&c);【B】scanf(%d%c%f,&a,&b,&c);【C】scanf(%d%c%f,a,b,c);【D】scanf(%d%d%f,&a,&b,&c);15. 下面有关for循环的正确描述是( )。【A】for循环只能用于循环次数已经确定的情况【B】for循环是先执行循环体语句,后判断表达式【C】在for循环中,不能用break语句跳出循环体【D】for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来16.若k是int类型变量,有以下for语句for(k=1;k0;k+) printf(%dn,k);下面关于语句执行情况的叙述中正确的是( )。【A】循环体执行两次【B】循环体执行一次【C】)循环体一次也不执行【D】构成无限循环17.若变量已正确定义,要求程序段完成求1+3+5+7的计算,不能完成此操作的程序段是( )。【A】for(s=0,i=1;i=7;i+) s+=i;【B】for(s=0,i=1;i7;i+=2) s+=i;【C】for(s=0,i=1;i=7;i+=2) s+=i;【D】i=1;s=0;dos+=i;i+; while(i=7);18. 已知int i=1; 执行语句while (i=4) i+;后,变量i的值为( )。【A】3【B】4【C】5【D】619. 以下能正确计算 10! 的程序段是( )。【A】do i=1; s=1; s=s*i; i+; while(i=10);【B】do i=1; s=0; s=s*i; i+; while(i=10); 【C】i=1; s=1; do s=s*i; i+; while(i=10); 【D】i=1; s=0; do s=s*i; i+; while(i=y=x) B. (z=y) AND (y=x)C. (z=y) & (y=x) D. (z=y) & (y=x)13、有以下程序段: int k=0 , a=1 , b=2 ; k=ab ? b : a ; 执行该程序段后,k的值是 ( ) 。A. 3 B. 2 C. 1 D. 0 14、C语言中用于结构化程序设计的三种基本结构是( ) 。A. if、switch、break B. 顺序结构、选择结构、循环结构C. for、while、do-while D. break、for、continue 15、 若int i ; 则语句:for ( i=2 ; i= =0 ; ) printf ( %d , i-) ;的循环执行次数是 ( )。A. 无限次 B. 0次 C. 1次 D. 2次16、在循环结构的循环体中执行break语句,其作用是 ( ) A. 结束本次循环,进行下次循环B. 继续执行break语句之后的循环体中各语句C. 跳出该循环体,提前结束循环D. 终止程序运行17、已定义 int a10 , i ; 以下能正确为a数组元素进行赋值的语句是( )A. for( i=0 ; i10 ; i+) scanf ( %d , ai) ;B. for( i=0 ; i=10 ; i+) scanf ( %d , ai) ;C. for( i=0 ; i10 ; i+) scanf ( %d , &ai) ;D. for( i=1 ; i=10 ; i+) scanf ( %d , &ai) ;18、以下不正确的描述是 ( ) A. 在函数外部定义的变量是全局变量B. 在函数内部定义的变量是局部变量C. 函数的形参是局部变量D. 局部变量不能与全局变量同名19、设函数fun的定义形式为: void fun(char ch,float x) 则以下对函数fun的调用语句中,正确的是( )。A. fun(abc,3.0);B. t=fun(D,16.5);C. fun(72,2.8);D. fun(D,32.5);20、设有数组定义:char arry =”China”; 则strlen(array)的值为( )。A. 4B. 5C. 6D. 7二、 填空题1. 一个C程序有且仅有一个 函数。2. C语言中,输入操作由库函数 完成,输出操作由库函数 完成的。3. C语言的基本数据类型包括: 、 和 。4. 设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为 。5. 复合语句在语法上被认为是 条语句。6. 若想通过一下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是 。i. int b,c;ii. float a;iii. scanf(“%f,%d,c=%d” ,&a,&b,&c);7. 条件“2x3或x-10”的C语言表达式是 。8. 若已知a=1 , b=2 , 则表达式 !ac&b-c的值是 。16. 表达式10/2.0+(int)1.2*5的值的数据类型是 。17. 已知chr为字符型变量,则表达式chr= M-A+a表示的字母为 。18. 数学上的运算式abc,转换成C语言中相同含义的表达式为 。19. 执行语句for(i=0;i4 ? 3%2:1的值是 。26. 条件“x6”的C语言表达式是 。27. 若有定义int a34,则a数组中第4个数组元素表示为 。28. 执行语句for(i=0;i4;i+=2); 循环的次数是 。29. 在函数内部定义的变量称为 变量。30. 在C 语言中,用于说明某个函数没有返回值的关键字是 。31. 已知 int a5, *p=a;则执行p=p+3;语句之后,p成为 的地址 。三、 程序阅读题1. 以下程序的运行结果是( )。#include main() int x=1,a=0,b=0;switch(x) case 0: b+;case 1: a+;case 2: a+;b+;printf(a=%d,b=%dn,a,b); 【A】a=2,b=1【B】a=1,b=1【C】a=1,b=0【D】a=2,b=22. 以下程序的运行结果是( )。#include main() int m3=1,4,7,2,5,8,3,6,9;int i,k=2;for(i=0;i3;i+) printf(%d ,mki); 【A】4 5 6【B】2 5 8【C】3 6 9【D】7 8 93.以下程序的运行结果是( )。#include main()int a=1,b=2;while(a6)b+=a;a+=2;b%=10;printf(%d,%dn,a,b);【A】5,11【B】7,1【C】7,11【D】6,14. 以下程序的运行结果是( )。#include main() int i=0,s=0;doif(i%2) i+; continue;i+;s+=i;while(i7);printf(%dn,s); 【A】16【B】12【C】28【D】215.请写出下面程序的执行结果。#include void main() int a=7,b=4,c=1; c=a=b*4; c=(a%5)+(b/2); printf(%d,%d,%dn,a,b,c); 6.请写出下面程序的执行结果。#include void main() int i=0; i+;switch(i) case 1: printf(%d, i); break;case 2: printf(%d, i); break; case 3: printf(%d,i); break; default: printf(%d,i);7.有以下程序,程序运行后,如果从键盘上输入1276,请写出程序的输出结果。#include main()int n1 , n2 ;scanf( %d ,&n2 );while( n2!=0 ) n1=n2;n2=n2/10;printf( %d ,n1); 8.写出下面程序的执行结果。#include int fun(int x,int y) int t; if(xy) t=x; x=y; y=t; return x;void main( ) int x=1,y=3,z=6,t; t =fun(fun(x,y),z); printf(%d,t);9.写出下面程序的执行结果。#include int mul ( int x , int n )int m=1 , i;for( i=0 ; in ; i+)m=m*xi;return rn;main()int i,a10=1 ,2 , 3 , 4, 5 , 6 , 7 , multify ; multify =mul ( a , 10 );printf(The multify is %d:n, multify);10.请写出下面程序的执行结果。#include void main() int i,j; for(i=1;i=3;i+)for(j=i;j=3;j+)printf(%c,1+j); /*1为数字字符*/11. 以下程序的运行结果是( )。#includeint fun (int x,int y) if (x!=y) return (x+y)/2);else return (x);main()int a=4,b=5,c=6;printf(%dn,fun(2*a,fun(b,c);【A】

温馨提示

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

最新文档

评论

0/150

提交评论