计算机c语言考辅导.docx

上传人:b****0 文档编号:12825538 上传时间:2023-04-22 格式:DOCX 页数:27 大小:45.39KB
下载 相关 举报
计算机c语言考辅导.docx_第1页
第1页 / 共27页
计算机c语言考辅导.docx_第2页
第2页 / 共27页
计算机c语言考辅导.docx_第3页
第3页 / 共27页
计算机c语言考辅导.docx_第4页
第4页 / 共27页
计算机c语言考辅导.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

计算机c语言考辅导.docx

《计算机c语言考辅导.docx》由会员分享,可在线阅读,更多相关《计算机c语言考辅导.docx(27页珍藏版)》请在冰豆网上搜索。

计算机c语言考辅导.docx

计算机c语言考辅导

计算机c语言考辅导

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

1基本概念

⏹1.开发C程序的一般过程:

编辑(后缀为“.C”的源程序)→编译(生成后缀为“.OBJ”的目标程序)→连接(生成后缀为“.EXE”的可执行文件)→执行

⏹2.C是结构化的程序设计语言,它的三种基本结构是?

顺序结构、选择结构、循环结构

⏹3.C程序语句的结束符?

⏹4.C程序中的注释格式?

/*只是说明的作用,不能嵌套*/

例1.1以下叙述中正确的是

A)C语言不是一种高级语言B)C语言不用编译就能被计算机执行

C)C语言能够直接访问物理地址和进行位运算D)C语言具有其他语言的一切优点

例1.2C是一种结构化、模块化的语言,是因为

A)C语言具有结构化的控制语句,如if、while、for。

B)C语言用函数作为程序的模块单位,以函数为模块组织程序。

C)C语用函数作为程序的模块单位,以函数为模块组织程序,还具有结构化的控制语句,如if、while、for。

D)用C语言编写的程序层次清晰明了,易于调试和维护。

Chap2变量与表达式

C语言中的任何变量,使用前都必须定义,也就是先定义后使用。

⏹1.合法的标识符与合法的用户标识符

标识符只能有数字、字符、下划线组成且数字不能打头。

标识符中字母的大小敏感,如abc与ABC是两个完全不同的标识符。

还不能占用关键字(库函数名不是关键字)。

程序中使用的标识符应尽量做到“见名知义”。

(变量名、常量名、自定义函数名都遵循此原则)

⏹2.预定义标识符是合法的用户标识符

例2.1以下不能定义为用户的标识符的是

A)scanfB)VoidC)_3com_D)intE)Int

分析:

本题答案为D。

因为int为关键字。

A)是预定义标识符,它可以用做用户标识符,只是一旦定义则会失去原义。

B)void是关键字但是Void不是。

C)符合合法用户标识符的命名规则。

E)与B)的道相同。

例2.2以下不合法的用户识符是

A)j2_KEYB)DoubleC)4dD)_8_

例2.3以下是C标志符但不是C语言关键字的是

A)intB)doubleC)unsignedD)#includeE)real

注意:

关键字首先应该是合法的标志符,首先应将非法的去掉。

答案D、E

⏹3.C程序有且仅有一个main(),程序的执行从main开始在main中结束

例2.4在一个C程序中,()

A)main()函数必须出现在所有函数之前B)main()函数必须出现在所有函数之后

C)main()函数可以出现在任何位置D)main()函数必须出现在固定位置

⏹4.合法的整型、实型、字符型、字符串常量★★

注意:

在C语言中没有直接表示二进制的整型常量,且只有十进制能表示负常量。

(1)十进制整型常量由一串连续的0~9数字组成,如:

0、120、-635等

(2)八进制整型常量以数字0开头,由一串连续的0~7数字组成,如:

0101、077等

(3)十六进制整型常量以数字0x或者0X开头,由一串连续的0~9、A~F或a~f组成,如:

0x11、0Xff等

例2.5C中简单的数据类型包括

A)整型、实型、字符型B)整型、实型、字符型、逻辑型

C)整型、逻辑型、字符型D)整型、实型、逻辑型

例2.6在c中,int型在内存中占两个字节,则int型数据的取值范围()

例2.7下面不是C中整型常量的是

A)01B)0x11C)081D)-3276

例2.8以下合法的字符型常量是()

A‘\x13’B‘\081’C‘65’D”\n”E”A”

用单引号括起来的单个普通字符或转义字符.常用转义字符:

‘\ddd’-3位8进制数代表的字符‘\xhh’-

2位16进制数代表的字符‘\n’‘\b’‘\\’‘\‘’

⏹5.算数运算符/与%很重要★★★

注意:

整型(常量或变量)/整型(常量或变量)=整型%两边必须是整型(常量或变量)

例2.9若已定义x和y是double型,则表达式x=1,y=x+3/2执行后y的值()

A1B2C2.0D2.5

例2.10C中运算对象必须是整型运算符的是()

A/B%C=D&&

例2.11若已定义:

inta=7;floatx=2.5,y=4.9;则表达式x+a%3*(int)(x+y)/4的值()

A2.75B3.5C2.5D0

⏹6.++--★★★

前置++i,--i(先执行i+1或i-1,再使用i值)j=3;printf(“%d”,++j);

后置i++,i--(先使用i值,再执行i+1或i-1)j=3;printf(“%d”,j++);

例2.12设intk=0;以下四个选项中不同于其它三个的是()

Ak++Bk+=1C++kDk+1

例2.13以下程序的运行结果是()

main()

{intx=1,y=2,z;

z=x>y?

++x:

y++;

printf(“%d,%d,%d”,x,y,z);

}A1,3,3B1,2,3C2,3,3D2,2,3

⏹7.复合赋值运算★★

例2.14设单精度变量啊a、b的值均为5.0,则表达式中能使a为10.0的是()

Aa-=b+5Ba+=b*1Ca*=b-4Da/=b*5

例2.15设有语句inta=3;则执行a+=a-=a*a;后变量a的值是()

⏹8.逗号表达式★

例2.16以下语句运行后的结果是()

intx;

printf(“%d”,((x=4*5,x*5),x+25));

A125B100C45D20

⏹9.其他

例2.17写出与下列数学表达式相对应的c语言表达式()

1、x×(y+1)2、

3、

4、

例2.18表示关系x≤y≤z的c

语言表达式()

Ax<=y&&z<=yBx<=yANDz>=yCx<=y&&z>=yDx<=y||z>=y

例2.19关于数据类型转换的说法正确的是()

A当表达式中的数据类型不一致时会发生自动类型转换

B当表达式中的数据类型不一致时会不会发生自动类型转换,提示错误

C数据的类型转换是编译系统自动完成的,不可以强制转换

D数据的类型转换是强制转换不是编译系统自动完成的

分析:

数据的类型转换分为自动和强制。

Chap3顺序结构

⏹1.scanf(“格式”,地址)与printf(“格式”,数据)

⏹2.以上特别是scanf();一定要注意它的输入格式

例3.1知:

inti,j,k;scanf(“%d%d%d”,&i,&j,&k);若从键盘上给他们分别赋值4、5、6,则错误的输入为()

A4,5,6B4回车5回车6回车C4空格5空格6回车D4空格5回车6回车

注意:

当输入多个数值数据时,输人数值数据之间用间隔符(包括空格符、制表符和回车符,但是不包括逗号)隔开。

⏹3.主格式要求掌握%d,%ld,%hd,%c,%s,%f,%lf

例3.2知:

intx=10,y=3,z;则printf(“%d\n”,z=(x%y,x/y));的输出结果为()

A1B3C4D0

例3.3若定义变量inta;floatb;charc;要正确输出a、b、c的数据,正确的为()

Aprintf(“%d%3.2f%c”,a,b,c);Bprintf(“%d%3.2f%c”,&a,&b,&c);

Cprintf(“%d%d%c”,a,b,c);Dprintf(“%d=a,%3.2f=b,%c=c”,a,b,c);

Chap4顺序与选择结构

⏹1.关系与逻辑(逻辑世界0,1)

当表达式或者常量或者变量作为逻辑运算量的时候,非零即真1,零就是假0。

例4.1表达式5!

=6的值是();表达式‘A’==65的值是()

逻辑运算时还要格外注意逻辑运算的短路特性

例4.2设有inti=1,j=2,k=3;,则表达式i>j&&k++的值是()。

注意:

先算关系后算逻辑,逻辑运算的短路特性,该表达式执行后,k的值为3而不是4

例4.3下列语句组的输出结果为()

inta=-1,b=2,k;

k=!

((++a<0)&&!

(b--<=0));

printf(“%3d%3d%3d\n”,k,a,b);

A102B104C013D004

⏹2.选择结构★★★

if(条件){怎样1;怎样2;}

else{又怎样1;又怎样2;}

注意:

该结构中的“语句”只能是一条语句或者是一个复合语句。

If条件表达式之后,不要根“;”。

※这里可能会出一道大题※

例4.4编写分段函数程序,求y的值?

(详见p12编程题3)

⏹3.选择结构★★★

switch(表达式)

{case值1:

怎样1;

case值2:

怎样2;break;

}

注意:

switch语句的圆括号(必须要有圆括号)中表达式的值必须是整型或字符型,不能为实型。

case后的表达式可以是求得整型量和字符型量的常量表达式,但常量表达式中不能含有变量。

每一个case都是一个程序入口,表示该switch结构从何处进入,一旦进入该结构体就会顺序往下执行,直到遇到break;才会跳出程序,否则一直执行到该结构的末尾。

这一点一定要理解。

default最多只能有一个,通常出现在switch的最后部分,但也可以出现在case之间或所有case之前。

例4.5若有定义:

floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是

A)switch(x)B)switch((int)x);

{case1.0:

printf(“*\n”);{case1:

printf(“*\n”);

case2.0:

printf(“**\n”);case2:

printf(“**\n”);

}}

C)switch(a+b)D)switch(a+b)

{case1:

printf(“*\n”);{case1:

printf(“*\n”);

case2+1:

printf(“**\n”);casec:

printf(“**\n”);

}}

例4.6以下程序运行后的输出结果

main()

{inta=0,b=2,c;

swich(a)

{

case0:

c=b++;

case1:

switch(b)

{case1:

c++;break;

case2:

c*=b;break;

default:

c+=b;

}

break;

default:

c--;

}

printf(“%d”,c);

}

Chap5循环结构(★★★★★)

⏹1.必须掌握三种循环结构

while(表达式){循环体;}

(1)while是C语言中的关键字

(2)while之后是一对配对的圆括号,里面的表达式是C语言中任意合法的表达式,作用是控制循环。

其值为“真”(非0)则执行循环体语句,否则不执行循环体。

(3)循环体语句如果只有一个,可以不加花括号;如果循环体语句超过一个,则必须用花括号括起来组成复合语句。

(4)圆括号内的表达式不能缺省。

循环体部分可以由一个空语句构成,表示循环体部分不做任何操作。

do{循环体;}while(表达式)注意:

do—while循环至少要执行循环体一次。

for(初始,条件,修正){循环体;}

(1)for是C语言中的关键字。

(2)for之后的圆括号内一共有三个表达式,以分号“;”隔开。

一般情况下,表达式1的作用是赋初值;表达式2的作用是控制循环;表达式3的作用是赋值修正。

(3)循环体语句如果只有一个,可以不加花括号;如果循环体语句超过一个,则必须用花括号括起来组成复合语句。

(4)圆括号内的三个表达式在语法上都可以缺省,但是两个分号“;”千万不能缺省。

循环体语句可以由一个空语句组成,表示不做任何操作。

⏹2.循环次数是考察重点(只要流程进入循环体就算一次)

⏹3.循环初始条件、循环终止条件、循环体、循环变量

例5.1以下程序从键盘上输入一个正数12345,将各位数字反序显示出来,即显示654321。

填空

main()

{intnum=0,c;

printf(“请输入一个整数:

”);

scanf(“%d”,&num);

do

{;/*取得num的个位数*/

printf(“%d”,c);

}while();/*直到取完为止*/

printf(“\n”);

}

例5.2有一个分数序列,求前20项之和

#include

Main()

{floatn,s;

inti,flag;

flag=1[1];

s=0.0[2];

for(i=1;i<=20;i++)

{[3];

s=s+n;

[4]flag=-1*flag;

}

printf(“thesum=%f”,s);

}

⏹4.break与continue

Break:

(1)在循环嵌套结构中,break语句只能终止并跳出包含它的那一层循环结构。

(2)break语句只能用于循环体内或switch结构中。

continue语句的作用是跳过它后面的循环体语句,提前结束本轮循环并开始下一次循环。

continue语句只能出现在循环体中。

Break与continue比较:

(1)break语句结束整个循环,而continue语句只是提前结束本轮循环,接着判断是否继续执行下一轮循环。

(2)如果有循环结构的嵌套,两者起作用的仅仅只是所在循环体从属的最内层循环,而不是外层的某个循环。

例5.3关于break语句,以下说法不正确的是()。

A可以出现在if语句中B可以出现在循环语句中

C可以出现在switch语句中D可以出现在函数的任何语句中

例5.4以下程序运行后的输出结果

main()

{inti,x;

for(i=1,x=1;i<=50;i++)

{if(x>=10)break;

if(x%2==1){x+=5;continue;}

x-=3;

}

printf(“i=%d,x+%d\n”,i,x);

}

注意:

该题除要注意break和contine的作用外,还要分清楚循环体到底是哪部分。

⏹5.循环嵌套

v三种循环可互相嵌套,层数不限

v外层循环可包含两个以上内循环,但不能相互交叉

v嵌套循环的执行流程

v嵌套循环的跳转禁止:

●从外层跳入内层

●跳入同层的另一循环

●向上跳转

Chap6字符型数据

⏹1.转义字符★★★

例6.1字符中,错误的转义字符是()。

A‘\091’B‘\\’C‘\0’D‘\n’

⏹2.字符常量与ASCII相对应:

‘A’与65通用★

⏹3.printf()与scanf()中的%c的间隔问题★

例6.2已知:

chara,b,c;scanf(“%c%c%c”,&a,&b,&c);若从键盘上给他们分别赋值A、B、C,则正确的输入为()

AA,B,CBABC回车CA空格B空格C回车DABC回车

⏹4.getchar()与putchar()函数的功能

⏹5.有关字符串函数:

strcpy、strcmp、strlen

例6.3判断字符串ca和字符串cb是否相等,应当使用()。

Aif(ca==cb)Bif(strcpy(ca,cb))Cif(ca=cb)Dif(strcmp(ca,cb)==0)Eif(strcmp(ca,cb)=0)

例6.4有如下定义:

chars[20]=”\ta\017bc”;则函数strlen(s)的返回值为()。

Chap7一维数组,字符数组

1.定义、初始化、数组元素的引用

定义例如:

inta[5]说明:

(1)数组名是用户定义标识符。

(2)数组名后面的一对方括号必不可少,方括号内的表达式必须为常量表达式,表示数组元素的个数,也称为数组的长度。

该常量表达式的值必须为正的整型常量,绝对不能为变量。

(3)方括号中的5规定了a数组有5个元素,分别是a[0]、a[1]、a[2]、a[3]和a[4]。

(4)每个数组只能有一个下标,数组的下标总是从0开始,到数组长度-1结束。

(5)定义之后,a数组在内存中占用5个连续的存储单元,每个单元可以存放一个整型数据,由于一个整型数据占用4个字节,故该数组共开辟20个字节的内存空间,如图8—1所示。

例7.1以下数组定义正确的是()

Ainta(5)Binti=5,a[i];Cinta[NUM];(NUM为符号常量)Dintnum;scanf(“%d”,&num);inta[num];

例7.2已有定义:

inta[6];下面那个是对数组元素的错误引用()

Aa[0]Ba[3]Ca[1+3]Da[6]

例7.3C语言中对于字符数组的描述错误的是()。

A字符数组可以存放字符串B字符数组中字符串可以整个输入、输出

C在赋值语句中只能通过“=”对字符数组整体赋值D字符数组中字符串的结束标志为’\0’

例7.4已经定义charch[10];inti;为了给ch数组赋值,正确的是()。

Ach[10]=”verygood”Bch[]=”verygood”Cch=”verygood”Dfor(i=0;i<11;i++)ch[i]=getchar();

例7.5有如下定义:

chars[]=”\ta\017bc”;则函数strlen(s)的返回值为(),字符串所占空间为()个字节。

2.※综合应用(这会是一道大题,跟循环在一起应用)※

例7.5要求从键盘上给10个元素的数组元素赋值作为10个学生的成绩,并依次打印出,要求每行5个,每个数字占7位宽度保证2位小数;输出最高分、最低分和平均分,要求2位小数。

main()

{floata[10],av=0,sum=0,max,min;

inti;

for(i=0;i<10;i++)

{scanf(“%f”,&a[i]);

}

for(i=0;i<10;i++)

{if(i%5==0)

printf(“\n”);

printf(“%7.2f”,a[i]);

}

max=min=sum=a[0];

for(i=1;i<10;i++)

{sum+=a[i];

if(max

if(min>a[i])min=a[i];

}

av=sum/10;

printf(“themaxis%7.2f”,max);

printf(“theminis%7.2f”,min);

printf(“theaverageis%7.2f”,av);

}

Chap8函数

掌握函数定义、参数传递、调用的执行过程及函数返回值

1.函数定义

函数返回值的类型名函数名(类型名1形式参数1,类型名2形式参数2,……)

{

说明部分

执行部分

}

(1)函数返回值的类型名缺省时,返回值类型默认为int类型,而不是无返回值。

若函数没有返回值,类型名应为void。

(2)函数名是用户定义标识符,唯一且独有,不得与同一程序中其他函数相同。

主函数的函数名必须为main。

(3)函数名后的一对圆括号必不可少,括号中为形参列表。

形参用于数据传递,同样是用户定义标识符。

在同一个函数内形参名必须唯一。

函数可以不带形参,但一对圆括号不能省。

(4)函数体部分的一对花括号必不可少。

(5)函数不能嵌套定义。

即在一个函数的函数体中不允许再定义另外的函数。

⏹形式参数:

定义函数时函数名后面括号中的变量名

⏹实际参数:

调用函数时函数名后面括号中的参数

2.函数声明的一般形式

返回值类型名函数名(类型名1参数名1,类型名2参数名2,……);

在使用函数时,可以有两种方式:

(1)先定义后调用。

此时不需要进行函数声明。

(2)先声明,后调用,最后定义,就是上面例子中采用的方式。

函数声明的位置

函数声明的位置有下面两种:

(1)在所有函数的外部(全局函数),在声明之后的任何位置都可以调用该函数。

(2)在调用函数的内部(局部函数),此时的函数声明和普通变量定义一样,出现在调用函数的函数体的说明部分。

此时只能在该调用函数中识别该函数,不能被其他函数调用。

3.参数传递方式:

值传递、地址传递(见Chap10指针4)

值传递:

函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值。

特点:

形参与实参占用不同的内存单元;单向传递。

重点掌握:

简单递归、求素数函数

例8.1以下程序是调用自定义函数求圆的周长,请填空

#definePI3.1415

floatfun(floatr)

{floats;

s=2*PI*r;

;

}

main()

{floatfs,r;

printf(“请输入一个半径:

”);

scanf(“%f”,&r);

;/*调用函数*/

printf(“%f”,fs);

}

例8.2以下程的输出结果

main()

{inti=3;

printf(“%d”,fun(i));

}

intfun(intn)

{inta;

if(n==1)retrun1;

a=n+fun(n-1)

returna;

}

Chap9变量作用域

1.根据

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1