您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 语言学 > 福建专升本C语言复习考试
1/27第一章C语言概述(1)C程序是由函数构成的。这使得程序容易实现模块化。(2)C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。(3)C语言不能嵌套定义函数,但可以嵌套调用函数,也可以递归调用。第二章算法算法特点:•有穷性:包含有限的操作步骤。•确定性:算法中的每一个步骤都应当是确定的。•有零个或多个输入:输入是指在执行算法时需要从外界取得必要的信息。•有一个或多个输出:算法的目的是为了求解,“解”就是输出。•有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果。程序设计结构:•顺序结构、选择结构、循环结构程序结构表示N-S图2010年7,30.2011.4第三章2/271.C的数据类型2010年292.变量命名的规定:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。52+10+1=6309年选1考题,2011.1不能用关键字作为标识符关键字归纳(32个)考题07年1常量类型:const(1个)数据类型名:int,float,double,char,void(5个)数据类型的修饰符:unsigned,signed,short,long(4个)数数据据类类型型构构造造类类型型枚枚举举类类型型eennuumm数数组组类类型型结结构构类类型型ssttrruucctt联联合合类类型型uunniioonn单单精精度度实实型型双双精精度度实实型型ddoouubbllee指指针针类类型型实实型型((浮浮点点型型))基基本本类类型型整整型型iinntt字字符符型型cchhaarr3/27用户定义的数据类型:struct,union,enum,typedef(4个)变量的存储类型名:auto,static,register,extern(4个)控制结构语句标识:if-else,switch-case-default-break,while-do-for-continue,goto,retrun(12个)求类型大小运算符:sizeof(1个)其余:volatile(1个)3.运算符、优先级、结合性1)最高级别(1)小括号()(2)下标运算符([])(3)分量运算符(.-)2)单目(1)!,++,--,-,注意++,--的位置,2011.3(2)强制类型转换运算符((类型)):转化后变量本身类型没有变化,如08选2,2011.7(3)指针运算符(*和&),注意:[]符号(4)求字节数运算符(sizeof)struct,union的大小4/273)双目(1)算术运算符(+-*/%),/为求商运算,若两个数都为整型,则值取整型,否则取浮点型,%运算数只能为整形。考题07年11,09年5,2011.2,36(2)关系运算符(><==>=<=!=)例a0b值为?(3)逻辑运算符(!&&||)顺序问题。(4)条件运算符(?:)(三目)结合性(5)赋值运算符(=及其扩展赋值运算符)a+=a*=a-3;从右往左(6)逗号运算符(,)从左往右2010年4,2011.8优先级中的例外:逻辑运算符中的短路问题,以及条件运算符的结合方向问题:1)inta,b,c;a=b=c=1;++b&&++c||++a;a=1,b=c=2;2)inta,b,c;a=b=c=1;++b||++c||++a;考题07年3,06年5,06年93)inta,b,c;a=b=c=1;c=(++a0)?5(++b0)?6:7;c=5,a=2,b=1;2010年54)i=*p++;赋值语句注意点:5/271)左操作数必须是变量,不能是常量或表达式。i=i-j=8;,在变量定义中不能赋值:inta=b=c=2;考题:08年选4,07年10,07年20,06年12)变量的初始化与赋值语句的区别。inta,b,c;a=b=c=1;是正确的inta=b=c=1;是错误的2010年33)逗号运算特点,从左往右,表达式的值为最后一项得到的值,如考题08选6,07年13,06年10inta,b,c;a=b=c=0;c=++a,b++;a=1,b=1,c=05)复合赋值语句,运算从右往左,如a+=a-=a*a,考题08选8,07年2,06年4,06年116)条件表达式执行顺序:先判断条件表达式1,如果成立,则执行表达式2,否则执行表达式3:(1)条件运算符优先级高于赋值运算符,低于关系运算符和算术运算符。(2)条件运算符的结合方向为“自右至左”。inta=1,b=2,c=3例d=--a?b++:++c;a=0,b=2,c=4,d=406年8,17,09年47)常量识别:判断是整型或长整型,还是浮点型数据等,考题08年选1,长整形一般情况下要加L.6/278)数制的识别转化,(0—8进制,0x---16进制),考题08年选3如果是转义字符:‘\276’,’\x7f’,如果是输出语句printf(“%d,%o,%x”);注意int变量如果没有赋初值,则为不确定值。2011.15第四章4.1赋值表达式,赋值语句4.2数据输入输出4.3字符数据的输入输出4.4格式输入与输出注意点:1、赋值语句是由赋值表达式加上一个分号构成。有些场合:i++;也算赋值语句。2、字符数据的输入输出:putchar(c),getchar()注意接收换行符。例:输入a回车程序:C1=getchar();c2=getchar();则c1接收字符a,c2接收换行符。考题08年30。3、字符串输入输出:7/27printf(“%s”,str);scanf(“%s”,str);gets(str);puts(str);gets(str),puts(str)参数只能为一个变量。06年64、printf(格式控制,输出表列)%d:以带符号的十进制形式输出整数%u:以无符号十进制形式输出整数%s:输出字符串,可以指定从数组的某个位置开始输出字符,如:chara[]={‘a’,’b’,’c’,’d’,’e’,’f’},printf(“%s”,a+2);但a++;是错误的,char*p=a;p++呢?考题08年22,09年27,30,2010年9#includestdio.hvoidmain(){unsignedinta=65535;intb=-2;printf(“a=%d,%o,%x,%u\n”,a,a,a,a);printf(“b=%d,%o,%x,%u\n”,b,b,b,b);}运行结果:a=-1,177777,ffff,65535(注意8或16进制前面无须补0)b=-2,177776,fffe,65534如inta=32800,printf(“%d,%u”,a,a);8/2732768:1000000000000000B考题08年20,06年296、scanf函数时应注意的问题:(1)scanf函数中的“格式控制”后面应当是变量地址或指针,而不应是变量名。chara,b[];scanf(“%c”,&a);scanf(“%s’,b);考题08年13(2)如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。inta,b;scanf(“%d,%d”,&a,&b)考题07年21,2010年9(3)在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。scanf(“%c%c”,&a,&b);若输入为a︼b;则a接收字符a,b接收空格符。(4)在输入数据时,遇以下情况认为该数据结束。①遇空格,或按“回车”或“跳格”(Tab)键;②按指定的宽度结束,如“%3d”,只取3列;③遇非法输入。9/27考题06年6,2011.9第五章5.1关系运算符和关系表达式5.2逻辑运算符和逻辑表达式5.3if语句5.4switch语句C语言中真用1表示,假用0表示。inta=3,b=2;ab=0?if语句说明:(1)if语句中在if后面都有表达式,不能为语句。(2)if语句中,在每个else前面有一个分号,整个语句结束处有一个分号。else总是与它上面的,最近的,统一复合语句中的,未配对的if语句配对.考题08年选10,07年17.2010年8switch语句:1)break:只退出当前层的switch循环for(){switch(){case:break;}}。考题08年选1210/272)default位置问题不管在哪里,只要未找到匹配项,则就从default处开始往下执行,直到遇到break。Switch(n){case1:case2:defaut:case3:}09年6,2011.193)switch()括号内是变量,case后面跟的是常量表达式,但不可以是带小数点的常量。第6章6.1用while语句实现循环6.2用do-while语句实现循环6.3用for语句实现循环6.4循环的嵌套6.5break语句和continue语句区别09年12,2010年14注意点:1)while(!0)条件为真?假intb=0;while(b--0);退出时b的值?2010年11/27112)do-while循环后面不要忘记分号‘;’3)for语句执行顺序先执行第一个语句,然后判断第二个语句,如果成立则执行循环体语句,然后执行第三个语句。inti;for(i=0;i++3;i++);退出时i的值?注意:第二个语句要执行完。4)break与continue区别,break在外层为for循环,内层为switch语句中的应用。经常出现在大题,考题08年32。5)循环结束条件,结束时,变量的值。6)循环中变量的步长。考题08年25,07年4第七章7.1一维数组的定义和引用7.2二维数组的定义和引用7.3字符数组注意点:数组定义中其他常见的错误:floata[0];/*数组大小为0没有意义*/intk,a[k];/*不能用变量说明数组大小*/09年9数组引用:数组名[下标]12/27下标可以是整型常量或整型表达式,变量。2010年12二维数组定义和初始化注意:09年13,2010年131)不能省却第二维2)第一维大小可通过第二维推算inta[][3]={1,2,3,4,5,6,7,8}考题08年163)可只对部分元素赋值inta[][3]={0};考题08年18,07年14设数组a的首地址为2000。表示形式含义地址a二维数组名,指向一维数组a[0],即0行首地址2000a[0],*(a+0),*a0行0列元素地址2000a+1,&a[1]1行首地址2008a[1],*(a+1)1行0列元素a[1][0]的地址2008a[1]+2,*(a+1)+2,&a[1][2]1行2列元素a[1][2]的地址2012*(a[1]+2),*(*(a+1)+2),a[1][2]1行2列元素a[1][2]的值元素值为1313/271)字符数组和字符串的区别定义方面、长度区别,还有strlen()函数求值。2)定义和赋值错误例子:charb[10];b=”hello!”;考题07年8,2010年153)字符数组的输入输出可以有两种方法:chara[];a.逐个字符输入输出。用格式符“%c”输入或输出一个字符。scanf(“%c”,&a[i]);b.将整个字符串一次性输入或输出。用“%s”格式符,意思是对字符串的输入输出。scanf(“%s”,a);字符串处理函数1)scanf(″%s″,str);2)printf(″%s″,str);3)puts(str):4)gets(str);注意:用puts和gets函数只能输入或输出一个字符串,不能写成puts(str1,str2)或gets(str1,str2)09年1014/27其他字符串操作函数:strcat(字符数组1,字符数组2)2010年16strcpy(字符数组1,字符串2)复制时连同字符串后面的′\0′一起复制到字符数组1中strlen函数strlen是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括′\0′在内)。strcmp(str1,str2)
本文标题:福建专升本C语言复习考试
链接地址:https://www.777doc.com/doc-5822106 .html