二级C语言程序设计笔试资料Word下载.docx
- 文档编号:19812562
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:69
- 大小:234.79KB
二级C语言程序设计笔试资料Word下载.docx
《二级C语言程序设计笔试资料Word下载.docx》由会员分享,可在线阅读,更多相关《二级C语言程序设计笔试资料Word下载.docx(69页珍藏版)》请在冰豆网上搜索。
十一、位运算
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<
stdio.h>
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<
math.h>
;
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<
x)?
w:
x;
m=(m<
y)?
m:
y;
z)?
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<
b?
a:
b;
//将a,b中较小数赋x
事实上,三目运算操作是简单if语句的另一种表达方式。
if(a<
b)
x=a;
else
x=b;
结合方向“自右向左”
b?
a:
c>
d?
c:
d相当于a>
(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语言表达式是()
{inta=4,b=5;
c=0,d;
d=!
a&
!
b||!
c;
printf(“%d”,d);
【例】已知inta=5,b=4,c=6,d;
,执行语句d=a>
(a>
c?
:
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<
{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复合语句
复合语句主要包含在复杂的程序结构中,如选择结构、循环结构。
{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);
D)if(a==0)printf(“%f\n”,x);
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子句。
{inta=15,b=21,m=1;
switch(a%3)
{case0:
m++;
break;
case1:
switch(b%2)
{default:
m++;
case0:
printf(“%d\n”,m);
A)1B)2C)3D)4
4.3选择结构的嵌套
在if语句中又包含一个或多个if语句称为if语句的嵌套。
应当注意if与else的配对关系,else总是与上面最近的未配对的if配对。
{inta=0,b=2,c=3;
switch(a)0
switch(b==2)
{case1:
printf(“*”);
case2:
printf(“%”);
}
case1:
switch(c)
{case1:
printf(“$”);
;
default:
printf(“#”);
};
A)%B)#C)%#D)*#
第五章循环结构程序设计
5.1for循环结构
一般形式:
for(表达式1;
表达式2;
表达式3)
循环体
{ints,x=123;
for(s=0;
s+=x%10,x/10)
printf(“%d\n”,s);
A)3B)12C)6D)该程序有错误,不会得到正确结果
【例】下面程序的功能是:
计算s=1+1/2+1/3+1/4+…+1/19.
{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--)C)s=s+1/n;
D)printf(“%6.4f\n”,s);
【例】下面程序的功能是()
{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(表达式);
【例】对以下程序的分析正确的是()
{intx=0;
while(--x)
printf(“%d\n”,x);
A)该程序的输出结果为0B)该程序陷入死循环,但有输出结果
C)该程序没有陷入死循环,但不输出任何结果D)该程序陷入死循环,且没有输出结果
【例】以下程序输出的结果是()
{intx=4;
do
{printf(“%3d\n”,x-=2);
while(!
(--x));
结果为2;
计算100以内所以能被17整除的数的下一个数的和,请填空()
{inti=1,s=0;
do{
if(i%17){i++;
__1___;
__2__;
s=s+i;
}while(i<
100);
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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言程序设计 笔试 资料