2019计算机二级C语言(完整复习资料)
- 格式:doc
- 大小:258.00 KB
- 文档页数:54
2019第一章C语言概述第二章变量及表达式二.教学重点,难点分析1. C语言概述是一个惯例了。
2.运算符与表达式三.教学讲点1.C语言的基本构成和格式#include “stdio.h”main()int a,b,sum;/* 定义变量*/a=10; /*把整数10赋值给变量a*/b=20; /*把整数20赋值给变量b*/sum=a+b; /*把两数之和赋值给变量sum*/printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*输出计算结果*/}(1).C程序由函数组成,一个程序必须且只能有一个主函数(main()),C程序总是从主函数开始执行,在主函数中结束。
(2).定义函数时函数名后必须有一对小括号,函数体必须放在一对花括号内,在函数体中,函数体有两个部分:定义部分和执行部分。
定义语句必须出现在执行语句之前,我们先定义了a,b,sum,然后才给它们赋值。
(3).C语言中每条语句都以分号“;”结束,分号时C语句的一部分。
即使是程序的最后一个语句也不例外。
分号是语句结束的标志。
(4). 一行可以写多条语句,一条语句也可以分在多行上写,但是,不能将一个整体分开。
例如:i nt 是错误的,而int正确。
(5). C语言的注释必须放在“/*”和“*/”之间,“/”和“*”之间不允许有空格。
“/*”和“*/”之间不允许再插入“/*”或“*/”。
注释可以出现在程序中的任意位置。
注释部分不被执行。
(6).C语言程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。
但是过于“自由”的程序书写格式往往使人们很难读懂程序,初学者应该从一开始就养成好的习惯,是程序便于阅读。
2.标识符(1)标识符只能由字母、数字和下划线组成。
(2)标识符的第一个字符必须是字母或下划线。
(3)标识符的大小写字母是有区别的,如abc和ABC是两个完全不同的标识符。
(3)标识符的分类:关键字:关键字是具有特定的含义的、专门用来说明C语言特定成分的一类标识符。
2019年3月全国计算机等级考试二级C语言上机必考100套题库第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。
/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h) {int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。
函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。
/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
一、选择题在下列各题的 A)、 B)、 C)、 D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
( 1)下列数据结构中,属于非线性结构的是 A) 循环队列 B) 带链队列 C)二叉树________。
D) 带链栈( 2)下列数据结构中,能够按照 A) 循环队列 B) 栈 C)队列" 先进后出 " 原则存取数据的是D)二叉树________ 。
( 3)对于循环队列,下列叙述中正确的是________。
A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针( 4)算法的空间复杂度是指________。
A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量D)算法在执行过程中所需要的临时工作单元数( 5)软件设计中划分模块的一个准则是________。
A) 低内聚低耦合B) 高内聚低耦合C)低内聚高耦合D) 高内聚高耦合( 6)下列选项中不属于结构化程序设计原则的是________。
A) 可封装B) 自顶向下C)模块化D) 逐步求精( 7)软件详细设计产生的图如下:该图是A)N-S 图。
B)PAD图C)程序流程图D)E -R图( 8)数据库管理系统是________。
A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统( 9)在 E- R图中,用来表示实体联系的图形是________。
A)椭圆形 B) 矩形C)菱形D) 三角形( 10)有三个关系 R, S和 T 如下:RA B Ca 1 2b 2 1c 3 1SA B Cd 3 2TA B Ca 1 2b 2 1c 3 1d 3 2其中关系 T 由关系 R和S通过某种操作得到,该操作为________。
A)选择 B) 投影 C)交 D)并( 11)以下叙述中正确的是________。
全国计算机考试二级《C语言》复习资料一、C语言的特点C语言是近年来非常流行的语言,很多人宁愿放弃已经熟悉的其他语言而改用C语言,}概括起来,C语言程序具有如下的风格: ①C语言程序的函数具体模块结构风格,使得程序整体结构清晰、层次清楚,为模块化程序设计提供了强有力的支持。
②C语言的源程序的扩展名都是.C。
其原因是C语言有优于其他语言的一系列特点。
下面是C语言的`主要特点:(1)语言简洁、紧凑,并且使用方便、灵活;(2)运算符丰富; (3)数据结构丰富;(4)具有结构化的控制语句;(5)语法限制不太严格,使程序设计比较自由; (6)C语言允许用户直接访问物理地址,能进行位(bit)操作,可以直接对硬件进行操作。
二、源程序的书写规则C语言的书写规则。
C语言书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。
C程序没有行号,每个语句和数据定义的最后必须有一个分号。
C语言中分号是语句中不可少的,即使是程序中的最后一个语句也应该包含分号。
C语言中的注释可以用〃/*〃用〃*/〃结束,注释可以在任何允许插入空格符的地方插入。
C语言中注释不允许嵌套,注释可以用西文,也可以用中文。
三、C语言的风格由于C语言对语法限制不太严格,为了保证程序的准确性和可读性,建议在书写程序采用阶梯缩进格式。
也就是按如下格式书写C语言程序: **********; *****() {**********; ********; {******; ...... }*********;③C语言中的注释格式为:/*注释内容*/ /与*之间不允许有空格,注释部分允许出现在程序中的任何位置。
④C语言中的所有语句都必须以分号“;”结束【计算机二级C语言公共基础知识】循环链表及其基本运算在线性链表中,虽然对数据元素的插入和删除操作比较简单,但由于它对第一个结点和空表需要单独处理,使得空表与非空表的处理不一致。
循环链表,即是采用另一种链接方式,它的特点如下:(1)在循环链表中增加一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。
第一章C语言基础知识一,选择题1 答案是AA正确B {}可以作为复合语句的标志C main 函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2 答案是AA 错误用户标识符:命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。
这个题目考察用户标识符3 答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。
这个题目考察用户标识符的概念。
4 答案是Bdefine 是预定义标识符,而预定义标识符可以是用户标识符,所以define可以是用户标识,if 是关键字,而关键字不能是用户标识符,所以if不可以是用户标识符5 答案是Dlong 是关键字,参照附录二注:6--13 考察用户标识符概念6 答案是DD答案以数字2开头了,不符合标识符定义7 答案是CC答案以数字开头了8 答案是Dint 是关键字9 答案是B答案A 是关键字,答案C是以数字开头了,不符合概念,答案D出现了小数点10 答案是A答案A出现了小数点11 答案是C答案C 以数字开头了12 答案是AB答案中float 是关键字,C答案中3c以数字3开头了,D答案中-5d 中- 不属于字母,数字,下划线中一种13 答案是AB答案中-max中-错误,C答案中3COM以字母3开头了,D答案中int 是关键字,不是用户标识符14 答案是BA答案中15. 后面不应该有点,C答案中出现了逗号,D中字母B有问题15 答案是DVisual C++6.0中int类型的变量占的字节数为4。
16 答案是BB中出现了8,而八进制只能有0到7组成17 答案是D答案D中开头是0不是o18 答案是C答案A中E后面是整数,0.5是小数答案B 中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式19 答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式20 答案是AB中八进制中不能出现数字8,C中e后面不能是小数,D中e后面不能为空21 答案是BB中0.4是小数,不正确22 答案是CC中0.5是小数,不正确23 答案是D3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数%不能用于实型的计算25 答案是DD答案中$不属于字母,数字,下划线26 答案是AA答案是逗号表达式,B答案中x+1=y是赋值表达式,左边只能是变量,而这里是x+1, 同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/1027 答案是A本题考察的是注释需要注意的地方,具体解答见课本第2页中间部分28 答案是B答案A中n2没有定义,答案C中在定义f之前不能使用它,答案D中E后面必须是整数29 答案是C考察的是强制类型转换,正确的是k%(int)f30 答案是D本题目类似与第七课时的例一,解题方法是要抓住++m,--n,--m,表达式的值是变量变化之后的值,而n--表达式的值是变量n变化之前的值31 答案是B本题目考察的是负整数与无符号正整数在计算机中存放的格式的一样的,但表示的不同的两个数32 答案是CA答案中%运算对象不能为实型,26.8错误,B答案中考察的赋值运算符,赋值运算符左边必须是变量,所以赋值运算符左边1+2错误,同理答案D错误33 答案是C本题目考察的是课本第15页的关于自加与自减运算符的第一点说明,即增量运算符的运算对象只能是变量,而在C答案中++(i+1)中,i+1是表达式34 答案是B本题目考察的是整数除以整数结果是整数,在B答案中1/2结果是0,导致整个表达式的值是0,明显是错误的对于++、--单目运算符来说,其运算对象可以是char型、int型和float型变量36 答案是A本题目主要考察n++表达式的值是n变化之前的值,然后使n的值增加137 答案是Bc=a/b+0.4 c=8/5+0.4 c=1+0.4 c=1.4 因为c 是int 型的,所以c的值是1 ,做此题目需要仔细阅读题目38 答案是D(int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000同样a,b的类型是double型的39 答案是Dlong 和short不能相互修饰40 答案是C标识符中不能有$41答案是CA选项中,在变量赋值时不能赋给表达式,而y*5是表达式;选项B中进行强制类型转换时,类型标识符要加上括号,所以错误;选项D中,%(求余运算符)运算对象只能是整形数。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==二级c语言笔试答案篇一:二级C语言笔试题汇编及答案全国计算机等级考试二级C语言程序设计习题集校内复习资料第一章 C语言的结构一.单项选择题1.设d为字符变量,下列表达式不正确的是__________。
(A) d=97 (B) d='a'(C) d="a"(D) d='g' 2.C语言的程序一行写不下时,可以________。
A 用逗号换行 B 用分号换号 C 在任意一空格处换行 D 用回车符换行3.在ASCII代码表中可以看到每一个小写字母比它相应的大写字母的ASCII码__________。
(A) 大32(B) 大64(C) 小32 (D) 小14.下列四个叙述中,错误的是________。
A 一个C源程序必须有且只能有一个主函数 B 在C源程序中注释说明必须位于语句之后 C 一个C源程序可以含零个或多个子函数 D C 源程序的基本结构是函数5.一个C程序可以包含任意多个不同名的函数,但有且仅有一个__________。
(A) 过程 (B) 主函数 (C) 函数 (D) include 6.C 语言中,当复合语句多于一条时,要有一对________括起来。
A 方括号 B 圆括号C 花括号 D 尖括号7.__________是C程序的基本构成单位。
(A) 函数 (B) 函数和过程 (C) 超文本过程(D) 子程序 8.C语言程序的基本单位是__________。
(A) 程序行 (B) 语句(C) 函数(D) 字符 9.C语言规定,必须用__________作为主函数名。
(A) function(B) include(C) main (D) stdio10.C语言规定,在一个C程序中,main()函数位置________。
全国计算机等级考试二级C语言笔试+上机题库(全)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof (13)以下选项中可作为C语言合法常量的是A)-80 B)-080 C)-8e1.0 D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b;D)doublea=00;b=1.1;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是A)409 B)277 C)1 D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 (21)下列程序的输出结果是#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};(25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd (26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)693825(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]);(28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′}; C)char a={′A′,′B′,′C′};D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ c har p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include <stdio.h>#include <string.h>void fun(char *s[],int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){ int y;if(x==0||x==1) return(3);y=x*x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67 B)0 C)字符′C′的地址D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
2019第一章C语言概述第二章变量及表达式二.教学重点,难点分析1. C语言概述注意:从几年的试题分析看C语言的概述和程序的构成合起来考试已经是一个惯例了。
2. 运算符与表达式三.教学讲点1.C语言的根本构成和格式#include “stdio.h〞main(){int a,b,sum;/* 定义变量*/a=10; /*把整数10赋值给变量a*/b=20; /*把整数20赋值给变量b*/sum=a+b; /*把两数之和赋值给变量sum*/printf(“a=%d,b=%d,sum=%d\n〞,a,b,sum);/*输出计算结果*/ }(1).C程序由函数组成,一个程序必须且只能有一个主函数(main()),C程序总是从主函数开场执行,在主函数中完毕。
(2).定义函数时函数名后必须有一对小括号,函数体必须放在一对花括号内,在函数体中,函数体有两个局部:定义局部和执行局部。
定义语句必须出现在执行语句之前,我们先定义了a,b,sum,然后才给它们赋值。
(3).C语言中每条语句都以分号“;〞完毕,分号时C语句的一局部。
即使是程序的最后一个语句也不例外。
分号是语句完毕的标志。
(4). 一行可以写多条语句,一条语句也可以分在多行上写,但是,不能将一个整体分开。
例如:i nt 是错误的,而int正确。
(5). C语言的注释必须放在“/*〞和“*/〞之间,“/〞和“*〞之间不允许有空格。
“/*〞和“*/〞之间不允许再插入“/*〞或“*/〞。
注释可以出现在程序中的任意位置。
注释局部不被执行。
(6).C语言程序书写格式自由,语句可以从任一列开场书写,一行内可以写多个语句。
但是过于“自由〞的程序书写格式往往使人们很难读懂程序,初学者应该从一开场就养成好的习惯,是程序便于阅读。
2.标识符(1)标识符只能由字母、数字和下划线组成。
(2)标识符的第一个字符必须是字母或下划线。
〔3〕标识符的大小写字母是有区别的,如abc和ABC是两个完全不同的标识符。
2019 年3 月全国计算机等级考试二级C 语言真题(考试时间90 分钟,满分100 分)一、选择题1、下列叙述中正确的是:A、循环队列是队列的一种顺序存储结构B、循环队列是队列的一种链式存储结构C、循环队列是非线性结构D、循环队列是一直逻辑结构2、下列叙述中正确的是A、栈是一种先进先出的线性表B、队列是一种后进先出的线性表C、栈和队列都是非线性结构D、以上三种说法都不对3、一棵二叉树共有25 个节点,其中5 个时子节点,那么度为1 的节点数为A、4B、6C、10D、164、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A、内模式B、外模式C、概念模式D、逻辑模式5、在满足实体完整性约束的条件下A、一个关系中可以没有候选关键词B、一个关系中只能有一个候选关键词C、一个关系中必须有多个候选关键词D、一个关系中应该有一个或者多个候选关键词6、有三个关系R、S 和T 如下:则由关系R 和S 得到关系T 的操作是A、自然连接B、并C、差D、交7、软件生命周期中的活动不包括A、软件维护B、市场调研C、软件测试D、需求分析8、下面不属于需求分析阶段任务的是A、确定软件系统的功能需求B、确定软件系统的系统的系能需求B、制定软件集成测试计划D、需求规格说明书审评9、在黑盒测试方式中,设计测试用例的主要根据是A、程序外部功能B、程序内部逻辑C、程序数据结构D、程序流程图10、在软件设计中不使用的工具是A、系统结构图B、程序流程图C、PAD 图D、数据流图(DFD 图)211、针对简单程序设计,以下叙述的实施步骤正确的是A、确定算法和数据结构、编码、调试、整理文档B、编码、确定算法和数据结构、调试、整理文档C、整理文档、确定算法和数据结构、编码、调试D、确定算法和数据结构、调试、编码、整理文档12、关于C 语言中数的表示,以下叙述正确的是A、只有整型数在允许范围内能精确无误的表示,实型数会有误差B、只要在在允许范围内整型和实型都能精确表示C、只有实型数在允许范围内能精确无误的表示,整型数会有误差D、只有八进制表示的数在不会有误差13、以下关于算法叙述错误的是A、算法可以用伪代码、流程图等多种形式来描述B、一个正确的算法必须有输入C、一个正确的算法必须有输出D、用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码14、以下叙述错误的是A、一个C 程序可以包含多个不同名的函数B、一个C 程序只能有一个主函数C、C 程序在书写时,有严格的缩进要求,否则不能编译通过D、C 程序的主函数必须用main 作为函数名15、设有以下语句Char ch1,ch2, scanf(”%c%c”,&ch1,&ch2).若要为变量ch1 和ch2 分别输入字符A 和B,正确的输入形式应该是A、A 和B 之间用逗号间隔B、A 和B 之间不能有任何间隔符C、A 和B 之间可以用回车间隔D、A 和B 之间用空格间隔16、以下选项中非法的字符常量是A、’\102’B、’\65’C、’\xff’D、’\019’17、有以下程序#include <sthio.h>Main()Int A=0,B=0,C=0.C=(A=A5).(A=B,B+=4).Printf(“%d, %d, %d\n”,A,B,C)程序运行后输出的结果是A 0,4,5B 4,4,5C 4,4,4D 0,0,018、设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是A、x++. printf((“%d\n”,x).B、n=++x. printf((“%d\n”,n).C、++x. printf((“%d\n”,x).D、n=x++. printf((“%d\n”,n).19、以下选项中,能表示逻辑值“假”的是A 1B 0.000001C 0D 100.020、有以下程序#include <sthio.h>3Main(){ int a;Scanf(“%d”,&a).If(a++<9) printf((“%d\n”,a).Else printf((“%d\n”,a)程序运行时键盘输入9<回车>,则输出的结构是A、10 B 11 C 9 D 821、有以下程序#include <sthio.h>Main(){int s=0,n.For (n=0.n<3.n<++){switch(s){ case 0.Case 1.s+=1.Case 2.s+=2.break.Case 3.s+3.Case 4.s+=4.printf((“%d\n”,s).程序运行后的结果是A 1,2,4B 1,3,6C 3,10,14D 3,6,1022、若k 是int 类型变量,且有以下for 语句For(k=1;k<0.k++)printf(****\n”).下面关于语句执行情况的叙述中正确的是A、循环体执行一次B、循环体执行两次C、循环体一次也不执行D、构成无限循环23、有以下程序#include <sthio.h>Main(){char A,B,C.B=’1’.C=’A’For(A=0.A<6.A++){if(A%2) putchar(B+A).Else putchar(C+A);程序运行后输出的结果是A 1B3D5FB ABCDFEC A2C4E6D 12345624、设有如下定义语句Int m[ ]={2,4,6,8},*k=m.4以下选项中,表达式的值为 6 的是A *(k+2)B k+2C *k+2D *k+=225、fun 函数的功能是:通过键盘输入给x 所指的整型数组所有元素赋值。
C 语言最重要的知识点复习资料笔试注意事项1、笔试满分100分,共两大题,选择70分40小题,填空30分15小题。
C语言占70分,公共基础占30分。
选择题的前10题和填空题的前5题考公共基础知识,其他考知识。
C语言笔试时间为2010年3月27日上午9:00-10:30。
2、选择用铅笔涂答题卡,填空用黑色签字笔在答题上写。
3、考前准备好身份证、准考证、2B铅笔、橡皮、黑色签字笔、手表等。
第一章C语言基本知识【考点1】C程序C语言程序结构有三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)【考点2】main函数每个C 语言程序中main 函数是有且只有一个。
读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
【考点3】存储形式计算机的数据在电脑中是以二进制的形式保存。
最低的存储单元是bit(位),位是由为0 或者1构成。
byte 是指字节, 一个字节= 八个位。
数据存放的位置就是它的地址。
【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何容都不会被计算机执行,注释不可以嵌套。
【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。
一行可写多条语句,一个语句可写在多行上。
【考点6】标识符合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
C语言标识符分如下3类(1)关键字。
它们在程序中有固定的含义,不能另作他用。
如int、for、switch等。
(2)预定义标识符。
预先定义并具有特定含义的标识符。
如define、include等。
(3)用户标识符。
用户根据需要定义的标识符,符合命名规则且不与关键字相同。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
计算机二级C复习资料公共基础知识资料第一章数据结构及算法【考点1】算法的基本概念算法:是指一组有穷的指令集,是解题方案的准确而完整的描述。
算法不等于程序,也不等于计算方法。
算法的基本特征:确定性,算法中每一步骤都必须有明确定义,不允许有多义性;有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;可行性,算法原则上能够精确地执行;拥有足够的情报。
算法的组成要素:一个算法由数据对象的运算和操作以及其控制结构这两部分组成。
算法的基本运算和操作:算术运算,逻辑运算,关系运算,数据传输。
算法的基本控制结构:顺序,选择,循环。
算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术。
【考点2】算法的复杂度算法效率的度量——算法的复杂度:时间复杂度和空间复杂度。
算法时间复杂度:指执行算法所需要的计算工作量。
通常,一个算法所用的时间包括编译时间和运行时间。
算法空间复杂度:指执行这个算法所需要的内存空间。
包括算法程序所占的空间,输入的初始数据所占的空间,算法执行过程中所需的额外空间。
空间复杂度和时间复杂度并不相关。
【考点3】数据结构的基本概念数据:数据是客观事物的符号表示,是能输入到计算机中并被计算程序识别和处理的符号的总称,如文档,声音,视频等。
数据元素:数据元素是数据的基本单位。
数据对象:数据对象是性质相同的数据元素的集合。
数据结构:是指由某一数据对象中所有数据成员之间的关系组成的集合。
【考点4】逻辑结构和存储结构数据结构可分为数据的逻辑结构和存储结构。
数据的逻辑结构是对数据元素之间的逻辑关系的描述,及数据的存储无关,是面向问题的,是独立于计算机的。
它包括数据对象和数据对象之间的关系。
数据的存储结构也称为数据的物理结构,是数据在计算机中的存放的方式,是面向计算机的,它包括数据元素的存储方式和关系的存储方式。
数据结构和逻辑结构的关系:一种数据的逻辑结构可以表示成多种存储结构即数据的逻辑结构和存储结构不一定一一对应。
二级公共基础知识作为必考内容出现,出题形式为选择题前10道,占考试总分的10%。
考试其它比重:1、C语言程序的结构占总分1%2、数据类型及其运算占总分4%3、选择结构程序设计占比分的3%4、循环结构占比分的5%5、数组的定义和引用占比分的5%6、函数占比分的5%7、编译预处理占比分1%8、指针占比分的5%9、结构体占比分的3%10、位运算占比分的2%11、文件操作占比分的2%考试方式上机考试,时长120分钟单选题40分(含公共基础10分),操作题60分(包括程序填空题、程序修改题、程序设计题)第一部分 C语言知识复习资料第一章 C语言基本知识(90分)【考点1】C程序用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。
源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。
C语言有三种基本结构:顺序结构、选择结构、循环结构。
【考点2】main函数又称主函数,是C程序的入口.main后面跟一对小括号和一对花括号,花括号括起来的部分称为main函数的函数体.一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。
每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。
【考点3】存储形式计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。
二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法.数据的存放位置就是它的地址。
【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*"开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。
【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。
一行内可写多条语句,一个语句可写在多行上。
全国计算机二级C语言(完整复习资料)考试题型(1)选择。
——40(40个)(2)程序填空。
——18(1个)(3)程序改错。
——18(1个)(4)程序编程。
——24(1个)考试时间3.30-4.3120min 无纸化考试进制之间的转换二进制与八进制之间的联系:二进制八进制000 0001 1010 2011 3100 4101 5110 6111 7 如00100000则000 100 000(二进制) 0 4 0(八进制)十进制转二进制:除2取余法二进制转十进制:2的幂次法八进制转十进制:除8取余法附录很重要!!尤其是红色字体的。
附录A 常用字符与ASCII代码对照表(这个记048,065,097三个就好)ASCⅡ值字符ASCⅡ值字符ASCⅡ值字符ASCⅡ值字符000 NUL037 %074 J111 O001 SOH038 &075 K112 p002 STX039 ‘076 L113 q003 ETX040 (077 M114 r004 EOT041 )078 N115 s005 END042 *079 O116 t006 ACK043 +080 P117 u007 BEL044 ,081 Q118 v008 BS045 -082 R119 w009 HT046 。
083 S120 x010 LF047 /084 T121 y011 VT048 0085 U122 z012 FF049 1086 V123 {013 CR050 2087 W124 |014 SO051 3088 X125 }015 SI052 4089 Y126 ~016 DLE053 5090 Z017 DC1054 6091 [018 DC2055 7092 \019 DC3056 8093 ]020 DC4057 9094 ^021 NAK058 :095 _022 SYN059 ;096 ,023 ETB060 < 097 a024 CAN061 =098 b025 EM062 > 099 c026 SUB063 ?100 d027 ESC064 @101 eASCⅡ值字符ASCⅡ值字符ASCⅡ值字符ASCⅡ值字符028 FS065 A102 f029 GS066 B103 g030 RS067 C104 h031 US068 D105 i032 (space)069 E106 j033 !070 F107 k034 “071 G108 l035 #072 H109 m036 $073 I110 n附录B C语言中的关键字auto break case char const continue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef union unsigned voidvolatile while附录C 运算符和结合性优先级运算符含义要求运算对象的个数结合方向1 ( ) 圆括号自左至右[ ] 下标运算符->指向结构体成员运算符·结构体成员运算符2! 逻辑非运算符1(单目运算符)自右至左~ 按位取反运算符++ 自增运算符--自减运算符-负号运算符(类型) 类型转换运算符* 指针运算符& 取地址运算符优先级运算符含义要求运算对象的个数结合方向sizeof 长度运算符3 * 乘法运算符2(双目运算符)自左至右/ 除法运算符% 求余运算符4 + 加法运算符 2(双目运算符)自左至右-减法运算符5 << 左移运算符 2(双目运算符)自左至右>> 右移运算符6 < <= > >= 关系运算符2(双目运算符)自左至右7 == 等于运算符 2(双目运算符)自左至右!= 不等于运算符8 & 按位与运算符2(双目运算符)自左至右9 ∧按位异或运算符2(双目运算符)自左至右10 | 按位或运算符2(双目运算符)自左至右11 && 逻辑与运算符2(双目运算符)自左至右12 | | 逻辑或运算符2(双目运算符)自左至右13 ? : 条件运算符3(三目运算符)自右至左15 , 逗号运算符(顺序求值运算符)自左至右说明:(1)同一优先级的运算符,运算次序由结合方向决定。
全国计算机等级考试目录第一部分公共基础知识第1 章算法与数据结构 (1)考点1 算法 (1)考点2 数据结构 (1)考点3 线性表及其顺序存储结构 (1)考点4 栈和队列 (1)考点5 线性链表 (2)考点6 树与二叉树 (2)考点7 查找技术 (3)考点8 排序技术 (3)第2 章程序设计基础 (4)考点1 程序设计方法与风格 (4)考点2 结构化程序设计 (5)考点3 面向对象的程序设计 (5)第3 章软件工程基础 (5)考点1 软件工程基本概念 (5)考点2 软件分析方法 (6)考点3 结构化设计方法 (7)考点4 软件测试 (8)考点5 程序的调试 (9)第4 章数据库设计基础 (9)考点1 数据库系统的基本概念 (9)考点2 数据库系统的基本概念 (10)考点3 关系代数 (12)考点4 数据库设计与管理 (12)第二部分二级 C 语言第1 章程序设计基本概念 (14)考点1 程序设计 (14)考点2 C 程序的结构和格式 (14)考点3 常量和变量 (14)考点4 算术表达式 (15)考点5 赋值表达式 (16)考点6 自加、自减和逗号运算 (16)第2 章顺序结构 (17)考点1 字符型常量与变量 (17)考点2 putchar 与getchar 函数 (17)考点3 printf 函数 (17)考点4 scanf 函数 (18)考点5 位运算的含义和应用 (18)第3 章选择结构 (19)考点1 关系运算符和关系表达式 (19)考点2 逻辑运算符和逻辑表达式 (19)考点3 if 语句及其构成的选择结构.. 19考点4 switch 语句与break 语句 (20)第4 章循环结构 (20)考点1 while 循环结构 (20)考点2 do-while 循环结构 (21)考点3 for 循环结构 (21)考点4 嵌套循环语句 (21)第 5 章函数 (21)考点1 库函数 (21)考点2 函数的调用 (22)考点3 参数传递 (22)考点4 函数的递归调用 (23)考点5 局部、全局变量和存储分类.. 23第6 章地址与指针 (23)考点1 变量的地址和指针 (23)考点2 指针变量的操作 (24)考点3 函数之间地址的传递 (24)第 7 章数组 (24)考点 1 一维数组的定义及元素的引用..24考点 2 函数对一维数组及元素的引用..25考点3 二维数组的定义 (25)考点4 二维数组和指针 (25)考点 5 二维数组名和指针数组作为实参 (26)第8 章字符串 (26)考点1 用一维字符数组存放字符串.. 26考点2 使指针指向字符串 (26)考点3 字符串的输入和输出 (26)考点4 字符串数组 (27)考点5 用于字符串处理的函数 (27)第9 章编译预处理和动态存储分配 (27)考点1 编译预处理 (27)考点2 宏替换 (27)考点3 文件包含处理 (28)考点4 动态存储分配 (28)第 10 章结构体、共用体和用户定义类型28考点1 结构体 (28)考点2 共用体 (29)考点3 用户定义类型 (29)第 11 章文件 (29)考点1 文件指针 (29)考点2 文件的读写 (30)第一部分公共基础知识第 1 章算法与数据结构考点 1 算法1.什么是算法算法是指对解题方案的准确而完整的描述。
2019年计算机二级考点归纳:C语言程序设计基本概念1.1 C语言的特点C语言是近年来非常流行的语言,很多人宁愿放弃已经熟悉的其他语言而改用C语言,其原因是C语言有优于其他语言的一系列特点。
下面是C语言的主要特点:(1)语言简洁、紧凑,并且使用方便、灵活;(2)运算符丰富;(3)数据结构丰富;(4)具有结构化的控制语句;(5)语法限制不太严格,使程序设计比较自由;(6)C语言允许用户直接访问物理地址,能实行位(bit)操作,能够直接对硬件实行操作。
1.2 源程序的书写规则C语言的书写规则。
C语言书写格式自由,一行内能够写几个语句,一个语句也能够分写在多行上。
C程序没有行号,每个语句和数据定义的最后必须有一个分号。
C语言中分号是语句中不可少的,即使是程序中的最后一个语句也应该包含分号。
C语言中的注释能够用″/*″用″*/″结束,注释能够在任何允许插入空格符地方插入。
C语言中注释不允许嵌套,注释能够用西文,也能够用中文。
1.3 C语言的风格因为C语言对语法限制不太严格,为了保证程序的准确性和可读性,建议在书写程序采用阶梯缩进格式。
也就是按如下格式书写C语言程序:**********;*****(){**********;********;{******;……}*********;}概括起来,C语言程序具有如下的风格:①C语言程序的函数具体模块结构风格,使得程序整体结构清晰、层次清楚,为模块化程序设计提供了强有力的支持。
②C语言的源程序的扩展名都是.C。
③C语言中的注释格式为:/*注释内容*//与*之间不允许有空格,注释部分允许出现在程序中的任何位置。
④C语言中的所有语句都必须以分号“;”结束。
二级C语言第1章C语言概述1.1 C语言基础知识1.1.1 C语言简介C语言是一种结构紧凑、使用方便、程序执行效率高的编程语言,它有9种控制语句、32个关键字(见表1-1)和34种运算符。
C语言的数据结构也非常丰富,它的多种数据类型可以实现如链表、树、栈等复杂的运算,并且用结构化控制语句(if…else,for语句等)来实现函数的模块化。
C语言的语法不太严格,程序设计自由度大,它可以直接访问物理地址,还可以直接对硬件操作。
C语言也是一种移植性比较好的语言。
表1-1 C语言关键字1.1.2 C语言程序的构成(1)C语言的源程序是由函数构成的,每一个函数完成相对独立的功能,其中至少包括一个主函数(main()函数)。
(2)C程序总是从main()函数开始执行。
(3)C语言规定每个语句以分号(;)结束,分号是语句组成不可缺少的部分,它在每条语句的最后出现。
(4)程序的注释部分应括在"/*"与"*/"之间,"/"和"*"之间不能有空格,注释部分允许出现在程序的任何位置。
【例1】显示"How are you !"的C语言程序。
#include <stdio.h>main() /* 主函数*/{printf(" How are you ! \n ");/* 调用库函数printf()显示字符串*/}运行结果是在屏幕上显示一行英文:"How are you !"。
例题说明:(1)本程序是由一个main()函数构成的。
main是函数名,函数名后面圆括号内是填写参数的,由于本程序主函数没有参数,所以是空的,但括号不能省略。
main()后面有一对花括号,花括号内是由语句组成的函数体,本程序只有一个语句。
(2)printf()函数是C语言的库函数,它的功能是在屏幕上输出指定的内容,"\n"是转义字符,它代表回车换行。
2019第一章C语言概述第二章变量及表达式二.教学重点,难点分析1. C语言概述是一个惯例了。
2.运算符与表达式三.教学讲点1.C语言的基本构成和格式#include “stdio.h”main()int a,b,sum;/* 定义变量*/a=10; /*把整数10赋值给变量a*/b=20; /*把整数20赋值给变量b*/sum=a+b; /*把两数之和赋值给变量 sum*/printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*输出计算结果*/}(1).C程序由函数组成,一个程序必须且只能有一个主函数(main()),C程序总是从主函数开始执行,在主函数中结束。
(2).定义函数时函数名后必须有一对小括号,函数体必须放在一对花括号,在函数体中,函数体有两个部分:定义部分和执行部分。
定义语句必须出现在执行语句之前,我们先定义了a,b,sum,然后才给它们赋值。
(3).C语言中每条语句都以分号“;”结束,分号时C语句的一部分。
即使是程序的最后一个语句也不例外。
分号是语句结束的标志。
(4). 一行可以写多条语句,一条语句也可以分在多行上写,但是,不能将一个整体分开。
例如:i nt 是错误的,而int正确。
(5). C语言的注释必须放在“/*”和“*/”之间,“/”和“*”之间不允许有空格。
“/*”和“*/”之间不允许再插入“/*”或“*/”。
注释可以出现在程序中的任意位置。
注释部分不被执行。
(6).C语言程序书写格式自由,语句可以从任一列开始书写,一行可以写多个语句。
但是过于“自由”的程序书写格式往往使人们很难读懂程序,初学者应该从一开始就养成好的习惯,是程序便于阅读。
2.标识符(1)标识符只能由字母、数字和下划线组成。
(2)标识符的第一个字符必须是字母或下划线。
(3)标识符的大小写字母是有区别的,如abc和ABC是两个完全不同的标识符。
(3)标识符的分类:关键字:关键字是具有特定的含义的、专门用来说明C语言特定成分的一类标识符。
详细的查阅附录二。
预定义标识符:在C语言中它也有特定的含义。
预定义标识符可以用位“用户表标识符”使用,只是这将使这些标识符失去了原来的意义。
用户标识符:由用户根据需要定义的标识符被成为用户标识符。
用户标示符用来给变量、函数、数组或者指针等命名。
3.C语言的数据类型3.1数据可以分为常量和变量。
常量是指在程序执行中不变的量,常量分为:整型常数、实型常数、字符常量、字符串常量。
整型数据:进制间的转换3.11.二、八、十六进制转为十进制规则:“按权相加”3.12.十进制转为二、八、十六进制规则:整数部分:基数除取余,逆序排列小数部分:基数乘取整,顺序排列3.13.二进制转为八、十六进制规则:三(四)合一,按序相拼(整数部分,从右向左取,小数部分从左向右取,位数不足补零)。
3.14.八、十六进制转为二进制规则:一分三(四),按序相拼3.2整型数据在存中的存放形式1字节=8位,1Byte=8bit字长:指CPU能同时处理的二进制位数。
由CPU的型号而定。
如:16位微机的字长就是16位或2字节。
1GB=1024MB,1MB=1024KB,1KB=1024BB:表示字节,字节是表示存储容量的最小单位。
位(bit):是计算机息表示的最小单位。
3.21.正整数在存中用“原码”形式存放。
(直接转换为二进制即可)。
3.22.负整数在存中用“补码”形式存放。
取补码的步骤:(1)忽略负号,求出原码。
(2)将原码按位取反(0 、1 互换)。
(3)在第二步的基础上加1。
如:取-5的补码。
(1)将补码按位取反加1。
(2)将步骤1得到的二进制数转换成十进制数,然后加上负号即可。
+1=加负号:-32768几个特殊的带符号整数:00000 -3276811111 3276711111 -13.23.无符号整数:只有正整数,没有负整数,最高位不表示符号位,每一位均printf(“%d,%u,%d,%u”,a,a,b,b); 输出结果是:-1,65535,-1,65535 数据益出问题:例2-13:若有int a=32767;则a=a+1的结果是:-32768例2-14:若有unsigned b=65536;则b的值是:0分析:32767:+10000将0000按照带符号数转为十进制为-3276865535:11111unsigned b=655536;而b属于无符号整型,在存中只占两字节,所以只能包括16位。
标准C没有具体要求规定各类型数据所占存的字节数,现以这次考试标准viusal c++6.0为例,说明各类型变量所占的位数。
3.3实型数据(浮点数)3.31.实型常量(1)小数形式:由数字和小数点组成,必须有小数点,小数点的某一侧可以没有数字。
如:.23 ,123.876 ,123.(2)指数形式:用“e”或“E”后接一个整数,表示以10为底的幂数。
注意:“e”或“E”之前之后必须有数字,且之后的数字必须是整数。
他们和前后的数字之间不能有空格。
例如:例2-15:下列合法的常量是()。
A.-32169B.0128C.0XDEFGD.13E0.5例2-16:下列合法的实型常量是()。
(A) 0Xff (B)124E (C) 1.23E5.0 (D) 3.E2 (E) 1.25E+2 (F).23e+023.32.实型变量单精度型 float 占 4 字节双精度型 double 占 8 字节长双精度 long double 占 16字节(较少用)4.表达式与运算符4.1算术运算符及其表达式:+ - * / %%:(求余运算)注意:(1)%两边必须是整型数据。
12.0%3 表达式是错误的。
(2)求余(%)的方法是:忽略符号,求出余数,再将所得余数的符号定为与被除数相同。
例如:17%3 结果是:217%-3 结果是:2,-17%3 结果是:-2,-17%-3 结果是:-24.2强制类型转换强制类型表达式:(类型名)表达式注意:类型名(表达式)这种形式是C++的强制类型表达方式。
5.赋值运算符及其表达式5.1.赋值运算符 =格式:变量名=表达式功能:将表达式的值赋给左边的变量。
注:(1)赋值运算符左边只能是一个变量,不能是常量,也不能是表达式。
a+b=3 4=3 是非法的表达式a=6 a+(b=3) 都是合法的表达式a=b=20 a=(b=10)/(c=2) 都是合法的表达式(2)实型数据赋给整型变量时,小数部分被舍去,整型数据赋给实型变量时,系统自动将整型数据转换为实型数据。
例如:float a; int b;表达式a=10%3 的值是1.0表达式b=a=10%3的值是15.2.复合赋值运算符及其表达式:+= -= *= /= %= &= |= ^= >>= <<=例如:a+=3 相当于a=a+3,a/=b+4 相当a/=(b+4) 或a=a/(b+4)例:若a=12,则执行表达式a+=a-=a+a后a的值是多少?分析:a+=a-=(a+a) /*a的值是12*/a+=a-=24 /*a的值是12*/a+=a=a-24 /*a的值是12*/a+=a=-12 /*a的值是12*/a+=-12 /*a的值是-12*/a=a+(-12) /*a的值是-12*/a=-24 /*a的值是-24*/5.3.自增、自减运算符及其表达式++ --注意:(1)只能用于变量,不能用于常量和表达式。
如:6++ (a+b)-- 都是错误的。
(2)当它们用于变量名前时,表达式的值为变量的值加一或减一。
当位于变量名后时,表达式的值为变量原来的值。
不论位于变量名前还是变量名后,只要进行了自增、自减运算,变量的值都会在原来的基础上加1或减1。
如:a=3 则 a++ 表达式的值是3 运算之后变量的值是 4a=3 则 ++a 表达式的值是 4之后变量的值是 4a=3 则 a-- 表达式的值是3 之后变量的值是 2a=3 则 --a 表达式的值是2 之后变量的值是 2(3)口诀:j=i++;这个表达式是先引用后增值。
即:先把i的初始值给变量j,然后i再自加1。
j=++i;这歌表达式是先增值后引用。
即:i先自加1,然后再将我们自加后的值赋值给变量 j。
但是记住它们是一起执行的,就是说:例如j=i++先引用后增值实际上是一起执行的,它们之间不存在先后关系,我们只是位了好记才用到了上面的方法。
老师在上课的时候先不要说,但是你们必须知道。
j=i--,j=--i和上面j=i++,j=++i的方法是一样。
5.4逗号运算符及其表达式1.格式:表达式1,表达式2,…,表达式n注意:1.逗号表达式的值是整个逗号表达式中最后一个表达式的值。
2.求值顺序是从左到右依次求解。
例如:a=(3,b=1)的值是1 运算结束后a的值是1, b的值是 1。
四.相关试题1.2008年4月相关试题(11)以下叙述中正确的是A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中(12)以下选项中不合法的标识符是A)print B)FOR C)&a D)_00(13)以下选项中不属于字符常量的是A) 'C' B) "C" C)'\xCC0' D) '\072'(14)设变量已正确定义并赋值,以下正确的表达式是A)x=y*5=x+z B)int(15.8%5)C)x=y+z+5,++y D)x=25%5.0填空(7)设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【7】。
2.2007年9月相关试题(11)C语言源程序名的后缀是A).exeB).CC).objD).cp(12)可在C程序中用作用户标识符的一组标识符是A)andB)DateC)HiD)case_2007y-m-dDr.TomBig1(13)以下选项中,合法的一组C语言数值常量是A)028B)12.C).177D)0x8A.5e-30Xa234e1.510,000-0xf4.5e00abc3.e5(14)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(16)以下关于long、int和short类型数据占用存大小的叙述中正确的是A)均占4个字节B)根据数据的大小来决定所占存的字节数C)由用户自己定义D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5;B)x=n%2.5;C)x+n=i;D)x=5=4+1;3.2007年4月相关考题(12)下列叙述中错误的是(D )A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B )A)大写字母 B)连接符 C)数字字符 D)下划线(14)以下叙述中错误的是(C )A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法(15)对于一个正常运行的C程序,以下叙述中正确的是(A)A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束(19)有以下程序,其中%u表示按无符号整数输出(B )main(){unsigned int x=0xFFFF; /* x的初值为十六进制数 */ printf(“%u\n”,x);}/*注意:x是占两个字节*/程序运行后的输出结果是A)-1 B)65535 C)32767 D)0xFFFF第三章顺序结构一.教学重点、难点二.教学容1.语句C语句共分为5类:1.1控制语句1.2函数调用语句:printf(“this is a c statement”);1.3表达式语句每一个合法的表达式后加上分号(;)就构成了表达式语句。