2019计算机二级C语言完整复习资料
2019年3月全国计算机等级考试二级C语言上机必考100套题库
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返回这些数的个数。
全国计算机考试二级《C语言》复习资料
全国计算机考试二级《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)在循环链表中增加一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。
cC语言二级考试复习资料
cC语言二级考试复习资料1.具有计算机的基础知识。
2.了解操作系统的基本概念,掌握常用操作系统的使用。
3.掌握基本数据结构和常用算法,熟悉算法描述工具—流程图的使用。
4.能熟练地使用一种高级语言或数据库语言编写程序、调试程序。
考试内容一、基础知识与基本操作(一)基础知识1.计算机系统的主要技术指标与系统配置。
2.计算机系统、硬件、软件及其相互关系。
3.微机硬件系统的基本组成。
包括:中央处理器(运算器与控制器),外存储器(硬盘、软盘与光盘),内存储器(RAM 与ROM),输入设备(键盘与鼠标)输出设备(显示器与打印机)。
4.软件系统的组成,系统软件与应用软件;软件的基本概念,文档;程序设计语言与语言处理程序(汇编程序、编译程序、解释程序)。
5.计算机的常用数制(二进制、十六进制及其与十进制之间的转换);数据基本单位(位、字、节、字)。
6.计算机的安全操作;计算机病毒的防治。
7.计算机网络的一般知识。
8.多媒体技术的一般知识。
(二)DOS的基本操作1.操作系统的基本能功能与分类。
2.DoS操作系统的基本组成。
3.文件、目录、路径的基本概念。
4.常用DOS操作,包括:初始化与启动;文件操作(TYPE,COPY,DEL,REN,X COPY,ATTRIB ;目录操作(DiR,MD,C D,RD,TREE,PATH);磁盘操作(FORMAT,D1SKCOPY,CHKD SK);功能操作(VER,DATE,TIME,CLS, PROMPT,HELP);批处理(批处理文件的建立与执行,自动批处理文件);输入输出改向。
(三)WINDOWS的基本操作1、Windows的特点、基本构成及其运行环境。
2、Windows用户界面的基本元素。
包括:窗口、图标、菜单、对话框、按钮、光标等。
3、windows基本操作。
包括:启动与退出,鼠标操作,窗口操作,图标操作、菜单操作,对话框操作。
二、程序设计1.能运用结构化程序设计方法编写程序。
2019年全国计算机等级考试二级C语言笔试+上机题库(全)
全国计算机等级考试二级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。
全国计算机等级考试二级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语言的源程序的扩展名都是.C。
③C语言中的注释格式为:/*注释内容*//与*之间不允许有空格,注释部分允许出现在程序中的任何位置。
④C语言中的所有语句都必须以分号“;”结束一、程序的构成尽管C程序的内容千变万化,但是它们的构成都是一致的,一个完整的C源程序的格式可以如下表示: 编译预处理主函数()函数()..函数()从上面中可以看出,一个C源程序实际上就是若干函数的集合,这些函数中有一个是程序的主函数,任何C 的源程序执行时,都是从主函数开始执行的,其它的函数最终必将被这个主函数所调用。
全国计算机二级C语言完整复习资料
全国计算机二级C语言(完整复习资料)考试题型⑴选择。
一一40(40 个)(2)程序填空。
——18(1 个)-(3)程序改错。
—18(1 个)(4)程序编程。
—24(1 个)考试时间3.30-4.3120mi n 无纸化考试进制之间的转换二进制与八进制之间的联系:111如00100000 则000 100 000 (二进制)进制转二进制:除2取余法进制转十进制:2的幂次法八进制转十进制:除8取余法附录很重要!!尤其是红色字体的。
附录A 常用字符与ASCII代码对照表(这个记048,065,097三个就好)ASC n 值字符ASC n 值字符ASC n 值字符ASC n 值字符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 O 083 S120 x010 LF047 /084 T121 y011 VT048 0085 U122 z012 FF049 1086 V123 {013 CR050 2087 W124 |014 SO051 3088 X125 J015 SI052 4089 Y126 ~016 DLE053 5090 Z017 DC1054 6091 [018 DC2055 7092019 DC3056 8093 1020 DC4057 9094 A021 NAK058 : 095022 SYN059 ; 096023 ETB060 <097 a024 CAN061 =098 b025 EM062 >099 c026 SUB063 ?100 dauto break case char con st con ti nue default do double else enum exter n float for gotoif int|long register returnshort sig ned sizeof static struct switch typ edef union un sig ned void volatile while优先级附录C运算符和结合性附录B C语言中的关键字2运算符含义()1 圆括号[ ] 下标运算符-> 指向结构体成员运算符1 -- 1结构体成员运算符!■逻辑非运算符<~ 按位取反运算符++ 自增运算符-- 自减运算符- 负号运算符(类型)类型转换运算符★指针运算符& 取地址运算符要求运算对象的个数(单目运算符)结合方向自左至右自右至左23 /说明:(1) 同一优先级的运算符,运算次序由结合方向决定。
1全国计算机二级考试C语言(最全复习资料)
第一部分 C语言知识复习资料第一章 C语言基本知识【考点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】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。
一行内可写多条语句,一个语句可写在多行上。
【考点6】标识符是标识名字的有效字符序列,可以理解为C程序中的单词。
标识符的命名规则是:(1)标识符只能由字母、数字和下划线组成,字母区分大小写。
(2)标识符的第一个字符必须是字母或下划线,不能为数字。
C语言标识符分如下3类(1)关键字。
它们在程序中有固定的含义,不能另作他用。
如int、for、switch等。
(2)预定义标识符。
预先定义并具有特定含义的标识符。
如define、include等。
(3)用户标识符。
用户根据需要定义的标识符,符合命名规则且不与关键字相同。
【考点7】常量与变量常量是指在程序运行过程中,其值不能改变的量。
(完整word版)全国计算机二级考试C语言(最全复习资料)
二级公共基础知识作为必考内容出现,出题形式为选择题前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语言(完整总结复习资料
精心整理计算机二级C复习资料公共基础知识资料传输。
算法的基本控制结构:顺序,选择,循环。
算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术。
【考点2】算法的复杂度算法效率的度量——算法的复杂度:时间复杂度和空间复杂度。
算法时间复杂度:指执行算法所需要的计算工作量。
通常,一个算法所用的时间包括编译时间和运行时间。
算法空间复杂度:指执行这个算法所需要的内存空间。
包括算法程序所占的空间,输入的初始数据所占的空间,算法执行过程中和数据对象之间的关系。
数据的存储结构也称为数据的物理结构,是数据在计算机中的存放的方式,是面向计算机的,它包括数据元素的存储方式和关系的存储方式。
数据结构和逻辑结构的关系:一种数据的逻辑结构可以表示成多种存储结构即数据的逻辑结构和存储结构不一定一一对应。
常见的存储结构有:顺序,链接,索引等。
采用不同的存储结构其数据处理的效率是不同的。
【考点5】线性结构和非线性结构也有且只有一个后件。
结点个数n称为线性表的长度,当n=0时,称为空表。
线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
元素ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)*k,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。
顺序表的运算:查找、插入、删除。
(2)用(Rlink)指向后件结点。
…图2双链表循环链表:循环链表与单链表的不同的是它的最后一个结点的指针域存放的事指向第一个结点的指针而单链表存放的是空指针。
图3循环链表的(2)退栈运算,删除元素(取出栈顶元素并赋给一个指定的变量);(3)读栈顶元素,将栈顶元素赋给一个指定的变量,此时指针无变化。
【考点9】队列1.队列的基本概念队列是一种特殊的线性表,只允许在表的一端插入,在另一端删除,允许插入的一端是队尾(rear),允许删除的一端为队头(front);当表中没有元素是空队列;队列是一种先进先出的线性表。
2019计算机二级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是两个完全不同的标识符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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几个特殊的带符号整数:10000 -3276811111 327671111111111111111 -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:111111+11000将1000按照带符号数转为十进制为-3276865535:1111111111111111unsigned 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).exe B).C C).obj D).cp(12)可在C程序中用作用户标识符的一组标识符是A)a nd B)D ate C)H i D)c ase_2007 y-m-d Dr.Tom Big1(13)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A.5e-3 0Xa23 4e1.5 10,000-0xf 4.5e0 0abc 3.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表达式语句每一个合法的表达式后加上分号(;)就构成了表达式语句。