《全国计算机二级C语言上机考点》由会员分享,可在线阅读,更多相关《全国计算机二级C语言上机考点(66页珍藏版)》请在金锄头文库上搜索。
1、扬州大学计算机中心扬州大学计算机中心考点考点3 3 运算符及表达式运算符及表达式1 1)算术运算符:算术运算符:圆括号(),求正圆括号(),求正+ +、求负、求负- -,* *、/ /、求余、求余% %,加加+ +、减、减- -。2 2)复合赋值运算符复合赋值运算符:+ +、- -、* *、/ /、3 3)自加自减运算符自加自减运算符:i+i+表示表示i i参加运算后再加参加运算后再加1 1;+i+i表示表示i i加加1 1后参加运算;对于后参加运算;对于i- -i- -和和i i同理。同理。4 4)关系运算符关系运算符: 、=、=、!=5 5)逻辑运算符:逻辑运算符:逻辑与(逻辑与(&),逻
2、辑或(),逻辑或(|),逻辑非(),逻辑非(!)6 6)条件运算符:条件运算符:如:如:x100 ? x+ :x- -x100 ? x+ :x- -扬州大学计算机中心扬州大学计算机中心 2 2)switchswitch语句语句。 分支语句分支语句switchswitch是支持多分支的选择语句。是支持多分支的选择语句。 口诀:口诀:switch表不为实,表不为实,case表不为变表不为变格式格式:switchswitch(表达式)(表达式) case case 1 :语句:语句1 1; case case 2 :语句:语句2 2; case case n :语句:语句n n; default d
3、efault :语句:语句n+1n+1; 如果想在执行某条如果想在执行某条casecase语句后直接跳语句后直接跳出分支判断,则在出分支判断,则在语句后面添加语句后面添加breakbreak;即可即可扬州大学计算机中心扬州大学计算机中心 求求n!,Fibonaccin!,Fibonacci数列、递归输出回文等是递归算法的典型应数列、递归输出回文等是递归算法的典型应用,在填空、改错题、编程题中均有出现,具体考查形式不固用,在填空、改错题、编程题中均有出现,具体考查形式不固定,多是对算法中关键步骤的考查。定,多是对算法中关键步骤的考查。例求例求10!10!:#include #include lo
4、ng fun(int n) long fun(int n) if(n1) return(n*fun(n-1);return 1; if(n1) return(n*fun(n-1);return 1;main()main()printf(“10!=%ldn”,fun(10);)printf(“10!=%ldn”,fun(10);)题型剖析题型剖析:四、指针四、指针扬州大学计算机中心扬州大学计算机中心 如:如:#include #include void change(int *p) (*p)+; void change(int *p) (*p)+; main()main()int a=0;int
5、 *p=&a; change(p);int a=0;int *p=&a; change(p); printf(“%dn”,a); printf(“%dn”,a); 函数之间的地址传递在填空题和改错题中均有出现,考查形函数之间的地址传递在填空题和改错题中均有出现,考查形式如下:式如下: 1 1)根据函数的实参,确定指针形参的类型;)根据函数的实参,确定指针形参的类型; 2 2)根据函数的形参,确定实参的变量名。)根据函数的形参,确定实参的变量名。题型剖析题型剖析:五、数组五、数组扬州大学计算机中心扬州大学计算机中心2.2.一维数组的初始化一维数组的初始化 一般采用在定义的时候为数组赋初值一般采用
6、在定义的时候为数组赋初值 如:如:int array5=0,1,2,3,4; int array5=0,1;int array5=0,1,2,3,4; int array5=0,1; int array=0,1,2,3; int array=0,1,2,3; 如果需要逐个输入或输出数组元素,则均会使用循环语句如果需要逐个输入或输出数组元素,则均会使用循环语句实现,以实现,以int array5int array5为例为例: : int array5,i;int array5,i; for(i=0;i5;i+) scanf(“%d”,&arrayi); for(i=0;i5;i+) scanf(
7、“%d”,&arrayi); for(i=0;i5;i+) printf(“%d”,arrayi); for(i=0;i扬州大学计算机中心扬州大学计算机中心 #include #include void main() void main() int a10,i,j,t; printf(“Input 10 int a10,i,j,t; printf(“Input 10 number:n”);number:n”); for(i=0;i10;i+) scanf(“%d”,&ai); for(i=0;i10;i+) scanf(“%d”,&ai); for(i=0;i9;i+)for(i=0;i9;i
8、+) for(j=0;j9-i;j+) for(j=0;jaj+1) if(ajaj+1) t=aj;aj=aj+1;aj+1=tt=aj;aj=aj+1;aj+1=t printf(“n”); printf(“n”); for(i=0;i9;i+) printf(“%4d”,ai);for(i=0;i扬州大学计算机中心扬州大学计算机中心 #include #include void main() void main() int a10,i,j,k,x; printf(“Input 10 int a10,i,j,k,x; printf(“Input 10 number:n”);number:n
9、”); for(i=0;i10;i+) scanf(“%d”,&ai); for(i=0;i10;i+) scanf(“%d”,&ai); for(i=0;i9;i+) k=i;for(i=0;i9;i+) k=i; for(j=i+1;j10;j+) for(j=i+1;j10;j+)if(ajak) k=j;if(ajak) k=j; if(i!=k) x=ai;ai=ak;ak=x; if(i!=k) x=ai;ai=ak;ak=x; printf(“the sorted number:n”); printf(“the sorted number:n”); for(i=0;i9;i+)
10、printf(“%4d”,ai);for(i=0;i扬州大学计算机中心扬州大学计算机中心2.2.二维数组的初始化二维数组的初始化 一般采用在定义的时候为数组赋初值一般采用在定义的时候为数组赋初值 如:如:int a34=0,1,2,3,4,5,6,7,8,9,10,11; int a34=0,1,2,3,4,5,6,7,8,9,10,11; int a34=0,1,2,3,4,5,6,7,8,9,10,11; int a34=0,1,2,3,4,5,6,7,8,9,10,11; int a34=0,4,8; int a34=0,4,8; int a4=0,1,2,3,4,5,6,7,8 int
11、 a4=0,1,2,3,4,5,6,7,8 如果需要逐个输入或输出数组元素,则需要一个两层循环语如果需要逐个输入或输出数组元素,则需要一个两层循环语句实现,以句实现,以int array34int array34为例为例: : int array34,i,j;int array34,i,j; for(i=0;i3;i+) for(i=0;i3;i+) for(j=0;j4;j+) scanf(“%d”,&arrayij); for(j=0;j扬州大学计算机中心扬州大学计算机中心输出二维数组:输出二维数组: for(i=0;i3;i+) for(i=0;i3;i+) for(j=0;j4;j+)
12、 printf(“%4d”,arrayij);for(j=0;j扬州大学计算机中心扬州大学计算机中心 4.strcmp()4.strcmp()字符串比较函数字符串比较函数 如:如:char a=“abc”; char b=“b”; char a=“abc”; char b=“b”; int c=strcmp(a,b); int c=strcmp(a,b); 调用结束后调用结束后c c-1-1。 根据字典序排列,靠后的字符串比较大,根据字典序排列,靠后的字符串比较大, ab ab ab,返回,返回1 1; 两个字符串相同,返回两个字符串相同,返回0 0。 这里主要牢记各个函数的这里主要牢记各个函
13、数的功能和调用方法功能和调用方法。字符串处理函数。字符串处理函数可以方便的对字符串进行处理,在上机过程中,熟练使用字符可以方便的对字符串进行处理,在上机过程中,熟练使用字符串处理函数(串处理函数(除非题目要求不能使用除非题目要求不能使用),可以大大减少我们的),可以大大减少我们的工作量。工作量。题型剖析题型剖析:七、结构体、共用体和用户自定义类型七、结构体、共用体和用户自定义类型-成员名成员名 3 3)()(* *指针变量名)指针变量名). .成员名成员名next=a-next; a-next=c;c-next=a-next; a-next=c;数据域数据域 指针域指针域数据域数据域 指针域指
14、针域数据域数据域 NULLHEADnext=c-nextnext=c-next即可。即可。 链表操作的原则是,保证操作顺利完成且不致指针丢失。链表操作的原则是,保证操作顺利完成且不致指针丢失。 1. 1.考查单个链表元素的时候,同时考查结构体和指针;考查单个链表元素的时候,同时考查结构体和指针; 1 1)结构体指针的定义,要注意)结构体指针的定义,要注意先赋值再使用先赋值再使用; 2 2)考查结构体内的成员用)考查结构体内的成员用指针的引用指针的引用同同直接用结构体直接用结构体变量变量名引用形式上的区别。名引用形式上的区别。 2. 2.链表多考查于填空题和改错题,主要是链表的操作,往往链表多考
15、查于填空题和改错题,主要是链表的操作,往往还带前后元素的链接关系,所以需要注意指针指向的调整及先还带前后元素的链接关系,所以需要注意指针指向的调整及先后顺序。后顺序。题型剖析题型剖析:扬州大学计算机中心扬州大学计算机中心机试注意事项机试注意事项9 9、在考试界面左上角有、在考试界面左上角有“答题答题”菜单,点击后选择相应的文菜单,点击后选择相应的文件名称进入件名称进入VCVC答题。考生目录下的答题。考生目录下的HLPSYSHLPSYS文件夹有备份文件,文件夹有备份文件,如果误操作了可从这个文件夹中复制出来。如果误操作了可从这个文件夹中复制出来。1010、很多考生进入机试时,脑子一片空白,无从下手;还有、很多考生进入机试时,脑子一片空白,无从下手;还有的不知道逻辑或的不知道逻辑或“|”“|”怎么打出来或怎么打出来或InsertInsert键按后有什么区键按后有什么区别等。这是缺少练习的缘故,所以一定要把光盘上模拟系统别等。这是缺少练习的缘故,所以一定要把光盘上模拟系统做熟。做熟。