二级C语言程序设计笔试资料.docx
- 文档编号:6791855
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:69
- 大小:234.79KB
二级C语言程序设计笔试资料.docx
《二级C语言程序设计笔试资料.docx》由会员分享,可在线阅读,更多相关《二级C语言程序设计笔试资料.docx(69页珍藏版)》请在冰豆网上搜索。
二级C语言程序设计笔试资料
C语言程序设计笔试辅导资料
考试内容:
一、C语言的结构
1.程序的构成,main函数和其他函数。
2.头文件,数据说明,函数的开始和结束标志。
3.C语言的风格。
二、数据类型及其运算(基础)
1.C的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。
2.C运算符的种类、运算优先级和结合性。
3.不同类型数据间的转换与运算。
4.C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。
三、基本语句(基础)
1.表达式语句,空语句,复合语句。
2.数据的输入和输出,输入输出函数的调用。
3.复合语句。
4.GOTO语句和语句标号的使用。
(这个了解即可)
四、选择结构程序设计
1.用if语句实现选择结构。
(基础)
2.用switch语句实现多分支选择结构。
(笔试有)
3.选择结构的嵌套。
五、循环结构程序设计(基础)
1.for循环结构。
2.while和dowhile循环结构。
3.continue语句和break语句。
4.循环的嵌套。
(基础)
六、数组的定义和引用
1.一维数组和多维数组的定义、初始化和引用。
2.字符串与字符数组。
七、函数(基础)
1.库函数的正确调用。
2.函数的定义方法。
3.函数的类型和返回值。
4.形式参数与实在参数,参数值的传递。
5.函数的正确调用,嵌套调用,递归调用。
6.局部变量和全局变量。
7.变量的存储类别(自动、静态、寄存器、外部),变量的作用域和生存期。
8.内部函数与外部函数。
八、编译预处理(基础,笔试有考到宏替换)
1.宏定义:
不带参数的宏定义;带参数的宏定义。
2.“文件包含”处理。
九、指针(这个很重要,上机题有这方面的)
1.指针与指针变量的概念,指针与地址运算符。
2.指针类型、指针变量与指针引用数据。
3.用指针作函数参数。
4.返回指针值的指针函数。
5.指针数组,指向指针的指针,MAIN函数的命令行参数。
十、结构体(即“结构”)与共用体(即“联合”)
1.结构体和共用体类型数据的定义方法和引用方法。
2.用指针和结构体构成链表,单向链表的建立、输出、删除与插入。
十一、位运算
1.位运算符的含义及使用。
2.简单的位运算。
十二、文件操作(了解,上机题有,只要知道什么意思就行了)
1.文件类型指针(FILE类型指针)。
2.文件的打开与关闭(fopen,fclose)。
3.文件的读写(fputc,fgetc,fputs,fgets,fread,frwite,fprintf,fscanf函数),文件的定位(rewind,fseek函数)。
注意:
考试分为笔试和机试两部份,机试有三道题,一道改错,一道补充,一道综合,笔试中有30分公共基础知识,为数据结构,数据库,软件工程和电脑常识方面的问题,有70分选择题,30分填空题,难点为数组,指针,也为重点。
第一章C语言的结构
1.1程序的构成,main函数和其他函数
1.程序的构成
【例】在屏幕上输出IamClanguage!
字样
/*AprogramtoprintIamclanguage*/
#include
voidmain()
{
printf(“IamClanguage!
”);
}
1)程序开始用/*和*/括起来的是注释行,注释是易于理解的,对编译和运行不起作用,而且注释本身可以一次注释多行;
2)以#开始的语句是预处理命令;
3)void是函数类型,main是函数名;
4)用{}括起来的部分是一个程序模块,也称为函数体;
5)分号“;”是C语言的执行语句和说明语句的结束符。
2.main函数和其他函数
主函数用main作为函数名。
每个C程序都必须包含且仅包含一个main函数。
C程序的执行是从主函数中的第一句开始,到主函数的最后一句结束。
一个C程序可以有其它函数,也可以没有,可以有一个,也可以有多个。
【例】以下说法中正确的是()
A)C语言程序总是从第一个定义的函数开始执行
B)在C语言程序中,要调用的函数必须在main函数中定义
C)C语言程序总是从main函数开始执行
D)C语言程序中的必须放在程序的开始部分
1.2头文件,数据说明,函数的开始和结束标志
1.头文件
头文件是后缀名为h的文件,引用头文件有两种方式:
1)#include
2)#include“math.h”;
使用方式1)引用头文件时,系统到存放C库函数头文件所在的目录中寻找要包含的文件,这种方式称为标准方式。
使用方式2)引用头文件时,系统先到用户当前目录中寻找要包含的文件,若找不到,再按标准方式查找,一般来说,如果为调用库函数而用#include命令来包含相关的头文件,则用方式1),以节省查找时间。
2.数据说明
C语言中数据可以在函数体外说明也可以函数体内说明,但是一定要先说明,后使用。
3、函数的开始和结束标志
一个函数由两部分组成:
1)函数首部,即函数的第一行,包括函数名、函数类型、函数参数名和参数类型。
一个函数名后面必须跟一对圆括号。
2)函数体,及函数首部下面的花括号内的部分。
如果一个函数内有多个花括号,则最外层的一对{}为函数体的范围。
1.3C语言的风格
C语言的特点如下:
(1)语言简洁、紧凑,使用方便、灵活。
C语言一共有32个关键字,9种控制语句。
(2)运算符丰富,共有44种运算符。
(3)数据结构丰富。
(4)具有结构化的控制语句。
(5)语法限制不太严格,程序设计自由度大。
(6)可以直接访问内存物理地址;可以进行位运算。
(7)生成的目标代码效率高。
(8)程序可移植性强。
第二章数据类型及其运算
2.1C的数据类型及其定义方法
重要知识点:
标识符、常量、数据类型及其定义。
1.标识符、常量和变量
(1)标识符
在C语言中,标识符可用作变量名、符号名、函数名、数组名、文件名以及具有特殊含义的名字。
合法的标识符由字母,数字和下划线组成,并且第一个字符必须为字母或下划线。
C语言区分字母大小写,即大写字母和小写字母被视为两个不同的字符。
(2)常量
在程序运行过程中,其值不能改变的量,称为常量。
常量可以分为整型常量、实型常量、字符常量和字符串常量。
(3)变量
其值可以改变的量为变量。
程序中所用到的每个变量都应该有一个名字作为标识,它属于用户标识符,其命名规则遵守标识符命名规则。
C语言规定,程序中所用到的变量应该先定义后使用。
通常将变量的定义放在函数的开头部分,但也可以放在函数的外部或复合语句的开头。
2.数据类型的分类
3.数据类型的定义
结构体用struct定义,共用体用union定义。
指针类型的定义形式为:
基类型*指针变量名;例如:
float*point_1.
空类型一般用关键字void修饰。
【例】以下选项中合法的实型常数是()
A)5E2.0B)E-3C)2E0D)1.3E
【例】以下选项中不合法的用户标识符是()
A)abc.cB)fileC)MainD)PRINTF
【例】以下程序的输出结果是()
main()
{
inti=020,j=20,k=0x20;
printf(“%d,%d,%d”,i,j,k);
}
A)16,20,32B)16,20,20C)20,20,20D)20,20,32
2.2C运算符的种类、运算优先级和结合性
运算符的种类、运算优先级、运算符的结合性见表
说明:
1)同一优先级的运算符,运算次序由结合性决定;
2)不同的运算符要求有不同的运算对象个数。
【例】执行以下语句后x的值为()
x=6;
x+=x-=x*x;
A)6B)36C)60D)-60
【例】执行以下语句后p的值为()
i=8;
j=10;
k=12;
m=++i;
n=j--;
p=(++m)*(n++)+(--k);
A)84B)92C)110D)111
【例】执行以下语句后m的值为()
intw,x,y,z;
w=3;x=4;y=5;z=6;
m=(w w: x; m=(m m: y; m=(m m: z; A)6B)5C)4D)3 2.3不同类型数据间的转换与运算 1、不同数据类型的自动转换 2、类型间的强制转换 强制转换是用强制类型转换符将结果转换成所需要的数据类型。 例如: floats=1.23; inta; a=(int)s; 【例】表达式3.5+1/2的计算结果是() 【例】设a和b均为double类型变量,且a=5,b=2.5,则表达式(int)a+b/b的值是() 2.4.C表达式类型和求值规则 1.C语言表达式主要有: 赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式。 (1)赋值表达式 使用方法: 变量=表达式 赋值运算时先计算右边表达式的值,然后将右边表达式的值赋给左边变量,并以此值作为整个赋值表达式的值。 例如: inti; i=3+5%2; (2)算术表达式 用算术运算符和括号将运算对象连接起来的符合C语法规则的表达式。 (3)关系表达式 关系运算符有: <、>、<=、>=、==、! = <、<=、>、>=的优先级相同,==、! =的优先级相同,前者的优先级高于后者。 关系运算符的优先级低于算术运算,高于逻辑运算&&、||,也高于赋值运算。 24+(5>3)c=7>8 关系表达式的运算结果是逻辑量 自左向右结合。 a>b>c 假设a=5,b=3,c=2该表达式的值为0 操作数也可以是字符型数据 如: ‘a’>’f’ (4)逻辑表达式 逻辑运算符 ! 逻辑非 &&逻辑与 ||逻辑或 优先级: ! >&&>|| &&和||运算符的优先级低于算术运算符和关系运算符,而高于赋值运算符。 操作数是逻辑量 逻辑量的真假判定──0和非0 C语言用整数“1”表示“逻辑真”、用“0”表示“逻辑假”。 但在判断一个数据的“真”或“假”时,却以0和非0为根据: 如果为0,则判定为“逻辑假”;如果为非0,则判定为“逻辑真”。 例如,假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,则求解表达式“(x=n1>n2)&&(y=n3>n4)”后,x的值变为0,而y的值不变,仍等于1 (5)条件表达式 条件运算符的语法形式: <表达式1>? <表达式2>: <表达式3> 解释为: <条件表达式>? <条件为真时的表达式>: <条件为假的表达式> 例如: x=a a: b;//将a,b中较小数赋x 事实上,三目运算操作是简单if语句的另一种表达方式。 if(a x=a; else x=b; 结合方向“自右向左” a>b? a: c>d? c: d相当于a>b? a: (c>d? c: d) (6)逗号表达式 逗号表达式的一般使用形式为: 表达式1,表达式2,表达式3,……,表达式n 先计算表达式1,再计算表达式2,再计算表达式3,…,再计算表达式n的值,并将表达式n的值作为整个表达式的值。 如: 表达式x=a=3,6*x,6*a,a+x的值为6。 逗号运算又称顺序求值运算。 逗号运算的优先级最低,结合自左向右。 提示: 在做题过程当中经常使用的优先级排列顺序如图所示 【例】关系运算符对两侧的运算对象的要求是() A)只能是逻辑值0或1B)只能是0或非0值 C)可以是结构体类型的数据D)可以是任意合法的表达式 【例】若变量已正确定义并赋值,则下面符合C语言语法的表达式是() A)a=a+4;B)a=2+b+c,a++C)int(19.6%4)D)a=a+4=c+b; 【例】与数学式子3m+n2/(2X-1)-y对应的C语言表达式是() 【例】以下程序的输出结果是() #include voidmain() {inta=4,b=5;c=0,d; d=! a&&! b||! c; printf(“%d”,d); } 【例】已知inta=5,b=4,c=6,d;,执行语句d=a>b? (a>c? : a: c)? (b)后,d的值为() 【例】执行语句printf(“%d”,(a=2)&&(b=-2));后的输出结果是() 第三章基本语句 3.1表达式语句,空语句,复合语句 1、简单语句 (1)空语句 空语句是仅由一个分号构成的语句。 空语句并不实际执行任何操作,只作为形式上的语句。 (2)说明语句 这是对数据和函数进行描述的语句,如变量定义语句,外部变量声明和函数声明等。 所有说明语句都必须放在其它非说明语句之前。 (3)表达式语句 在任何一个合法的表达式后附加一个分号即可构成表达式语句。 (4)流程控制语句 如选择结构和循环结构语句。 2.复合语句 将一组语句括在花括号内则被视为一个语句,称其为复合语句。 【例】以下选项中不是语句的是() A){int;i++;printf(“%d\n”,i);}B);C)a=5,c=10D){;} 【例】以下4个选项中,不能看作一条语句的是() A)while(a>0);B)x=0,y=0,z=0;C)if(b! =0)m=1;n=2;D){;} 3.2数据的输入和输出,输入输出函数的调用 (1)输入函数有: getchar()scanf()getche()getch() (2)输出函数有: putchar()printf() (3)常用的有以下几种格式字符: %d%md%ld%o%x%u 【例】有以下程序() #include voidmain() {chara,b,c,d; c=getchar();d=getchar(); scanf(“%c%c”,&a,&b); putchar(a);putchar(b); printf(“%c%c”,c,d); } 程序运行后,若从键盘输入(从第1列开始) 9<回车> 876<回车> 则输出结果是() 解析: getchar()函数不但能够接收普通字符,还能够接收空格、回车等特殊字符,所以本题中c接收到字符9,d接收回车字符,a,b分别接收了字符8、7.结果为879 【例】设有定义: longx=-23456789L;,则以下能够正确输出变量x值的语句是() A)printf(“x=%d\n”,x);B)printf(“x=%ld\n”,x); C)printf(“x=%8dl\n”,x);D)printf(“x=%LD\n”,x); 2.3复合语句 复合语句主要包含在复杂的程序结构中,如选择结构、循环结构。 【例】以下程序的输出结果是() #include voidmain() {inta=2,b=3,c=4; if(a>c) b=a;a=c;c=b; printf(“a=%d.b=%d.c=%d\n”,a,b,c); } 第四章选择结构程序设计 4.1用if语句实现选择结构 重要知识点: if语句的形式和运用 1.if语句的形式和运用 C语言提供三种形式: 1)if(表达式)语句; 2)if(表达式) 语句1; else 语句2; 3)if(表达式1)语句1 elseif(表达式2)语句2 elseif(表达式3)语句3 …… elseif(表达式m)语句m else语句n 说明: 三种形式的if语句中在if后面都表达式,一般为逻辑表达式或关系表达式。 表达式的值为0,按假处理;若为非0,按真处理。 2.if语句和条件运算符 若if语句中,在表达式为“真”和“假”时,且都执行一个赋值语句, 给同一个变量赋值时,可以用简单的条件运算符来处理。 条件表达式的一般形式为: <条件表达式>? <条件为真时的表达式>: <条件为假的表达式> 【例】已定义floatx,y;,下列条件语句中,功能与其它语句不同的是() A)if(a)printf(“%f\n”,x);elseprintf(“%f\n”,y); B)if(a==0)printf(“%f\n”,y);elseprintf(“%f\n”,x); C)if(a! =0)printf(“%f\n”,x);elseprintf(“%f\n”,y); D)if(a==0)printf(“%f\n”,x);elseprintf(“%f\n”,y); 4.2用switch语句实现多分支选择结构 switch语句是多分支选择语句,用来实现多分支选择结构。 它的一般形式如下: switch(表达式) { case常量表达式1: 语句组1; case常量表达式2: 语句组2; …… case常量表达式n: 语句组n; default: 语句组n+1; } 说明: (1)case后可以是常量表达式,常量表达式的值必须互不相同,否则 会出现二义性。 (2)常量表达式可以是任何类型,一般为整型、字符型等。 (3)每个case和default的出现次序不影响执行结果。 (4)case只起语句标号作用,不进行条件的判断。 执行完一个case后面的语句,接着执行下一个case。 (5)一种情况处理完后,一般应使程序的执行流程跳出switch结构,终止switch语句的执行,这可借助break语句完成。 (6)最后一种情况处理中可以不加break语句。 (7)当多个常量代表一种情况时,出现在前面case中的情况处理无语 句,这实际上也是多个case共用一组执行语句。 (8)可以没有default子句。 【例】以下程序的输出结果是() #include voidmain() {inta=15,b=21,m=1; switch(a%3) {case0: m++;break; case1: m++; switch(b%2) {default: m++; case0: m++;break; } } printf(“%d\n”,m); } A)1B)2C)3D)4 4.3选择结构的嵌套 在if语句中又包含一个或多个if语句称为if语句的嵌套。 应当注意if与else的配对关系,else总是与上面最近的未配对的if配对。 【例】以下程序的输出结果是() #include voidmain() {inta=0,b=2,c=3; switch(a)0 {case0: switch(b==2) {case1: printf(“*”);break; case2: printf(“%”);break; } case1: switch(c) {case1: printf(“$”); case2: printf(“*”);;break; default: printf(“#”); }; } } A)%B)#C)%#D)*# 第五章循环结构程序设计 5.1for循环结构 一般形式: for(表达式1;表达式2;表达式3) 循环体 【例】以下程序的输出结果是() #include voidmain() {ints,x=123; for(s=0;x;s+=x%10,x/10) printf(“%d\n”,s); } A)3B)12C)6D)该程序有错误,不会得到正确结果 【例】下面程序的功能是: 计算s=1+1/2+1/3+1/4+…+1/19. #include voidmain() {intn;floats; s=1.0; for(n=19;n>1;n--) s=s+1/n; printf(“%6.4f\n”,s); } 程序运行后得出的结果不正确,导致出错的原因是() A)s=1.0;B)for(n=19;n>1;n--)C)s=s+1/n;D)printf(“%6.4f\n”,s); 【例】下面程序的功能是() #include voidmain() {intnum[10]={100,1,-20,-103,-201,2,-2,11,-21}; intsum=0,i; for(i=0;i<10;i++) if(num[i]>0) sum=num[i]+sum; printf(”sum=%d”,sum); } 5.2.while和dowhile循环结构。 1.while语句的形式和应用 while(表达式) 语句;(循环体) 2.dowhile语句的形式和应用 一般形式: do 循环体 while(表达式); 【例】对以下程序的分析正确的是() #include voidmain() {intx=0; while(--x) printf(“%d\n”,x); } A)该程序的输出结果为0B)该程序陷入死循环,但有输出结果 C)该程序没有陷入死循环,但不输出任何结果D)该程序陷入死循环,且没有输出结果 【例】以下程序输出的结果是() #include voidmain() {intx=4; do {printf(“%3d\n”,x-=2); while(! (--x)); } 结果为2; 【例】下面程序的功能是: 计算100以内所以能被17整除的数的下一个数的和,请填空() #include voidmain() {inti=1,s=0; do{ if(i%17){i++;__1___;} __2__; s=s+i; }while(i<100); printf(“%d\n”,s); } 5.3.continue语句和break语句 1.continue语句 Continue语句用于循环语句中,作用为结束本次循环(即不执行本次循环中尚未执行的语句),进入下一次循环的判定。 2.break语句 break语句除了用于switch语句中,跳出switch语句外,还用于while,do……while,for语句中,从最近的封闭循环体中跳出。 但不能用于循环语句和switch之外的语句 continue语句和break语句的区别: Øcontinue语句只结束本次循环,而不是终止整个循环。 Øbreak语句终止整个循环,不再
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言程序设计 笔试 资料