第1章C语言的历史.docx

上传人:b****8 文档编号:10082625 上传时间:2023-05-23 格式:DOCX 页数:11 大小:20.49KB
下载 相关 举报
第1章C语言的历史.docx_第1页
第1页 / 共11页
第1章C语言的历史.docx_第2页
第2页 / 共11页
第1章C语言的历史.docx_第3页
第3页 / 共11页
第1章C语言的历史.docx_第4页
第4页 / 共11页
第1章C语言的历史.docx_第5页
第5页 / 共11页
第1章C语言的历史.docx_第6页
第6页 / 共11页
第1章C语言的历史.docx_第7页
第7页 / 共11页
第1章C语言的历史.docx_第8页
第8页 / 共11页
第1章C语言的历史.docx_第9页
第9页 / 共11页
第1章C语言的历史.docx_第10页
第10页 / 共11页
第1章C语言的历史.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第1章C语言的历史.docx

《第1章C语言的历史.docx》由会员分享,可在线阅读,更多相关《第1章C语言的历史.docx(11页珍藏版)》请在冰点文库上搜索。

第1章C语言的历史.docx

第1章C语言的历史

第1章C语言的历史、特点

1.1978年美电话电报公司(AT&T)的贝尔实验室正式发表了C语言。

2.C语言把括号、赋值、强制类型转换等作为运算符处理。

3.C语言的数据类型有整型、实型、字符型、数组型、指针型、结构体类型、共用体类型等。

(树、栈、链表等为数据构)

4.C语言允许直接访问物理地址,能进行位(bit)操作。

 第2章C语言程序的基本结构

【例1】(2002年4月)编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑(C )。

A.仅为整个程序作注释

B.仅为每个模块作注释

C.为程序段作注释

D.为每个语句作注释

【答案】C

 

【例2】(2002年4月)以下叙述正确的是(D )。

A. 可以把define和if定义为用户标识符。

B. 可以把define定义为用户标识符,但不能把if定义为用户标识符。

C. 可以把if定义为用户标识符,但不能把define定义为用户标识符。

D. define和if都不能定义用户标识符。

【答案】B(define不是关键字,if是关键字,所以define可以定义为用户的标识符。

 【例3】(2002年9月)源程序中应包含一些内部文档,以帮助阅读和理解程序,源程序的内部文档通常包括选择合适的标识符/注释和(A )。

A. 程序的视觉组织

B. 尽量不用或少用GOTO语句

C. 检查输入数据的有效性

D. 设计良好的输出报表

【答案】A(源程序文档中主要包括标识符命名,注释和视觉组织。

 【例4】(2002年9月)以下叙述中正确的是(A )。

A. 构成C语言程序的基本单位是函数。

B. 可以在一个函数中定义另一个函数。

C. main()函数必须放在其他函数之前。

D. 所有被调用的函数一定要在调用之前进行定义。

【答案】A (C语言是由函数构成的,所以C语言的基本单位是函数,在C语言中不能嵌套定义,就是说不能在函数中定义函数,main()函数可以放在程序的任意位置,但是程序的执行都是从main()函数开始的,所有被调用的函数一定要在调用之前进行声明。

 【例5】(2002年9月)以下选项中合法的用户标识符是(B )。

A. long         B. _2Test       C. 3Dmax        D. A.dat

【答案】B

 

【例6】(2003年9月)以下叙述中正确的是( A)。

A. C程序中注释部分可以出现在程序的任意合适地方。

B. 花括号“{”和“}”只能作为函数体的定界符。

C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名。

D. 分号是C语言之间的分隔符,不是语句的一部分。

【答案】A

 

【例7】(2003年9月)若已定义的函数有返回值,则以下关于该函数调用叙述错误的是(D )。

A. 函数调用可以作为独立的语句存在。

B. 函数调用可以作为一个函数的实参。

C. 函数调用可以出现在表达中。

D. 函数调用可以作为一个函数的形参。

在C语言中,当函数有返回值时可以作为表达式或表达式的一部分,而函数调用只能作为实参,不能作为形参。

 

第3章         数据类型、运算符、表达式与基本语句

3.1数据类型

【例1】(2000年4月)下列变量定义中合法的是( A)。

A. short_a=1-.le-1                  B. double b=1+5e2.5

C. long do=0xfdaL                   D. float 2_and=1-e-3

【例2】(2001年4月)以下只有在使用时才为该类型变量分配内存的存储类说明是( B)。

A. auto和static                    B. auto和register

C. register和static                D. extern和register

【答案】B

根据C语言的规定,auto和register在C语言程序中当它们被用到时才会分配内存,在它们声明时并不占用内存空间的。

 

【例3】(2002年4月)以下选项中不属于C语言类型的是( D)。

A. signedshortint               B. unsignedlongint

C. unsignedint                   D. longshort

【答案】D

 

【例4】(2002年9月)以下选项中合法的实型常数是( C)。

A. 5E2.0      B. E-3     C. 2E0      D. 1.3E

【答案】C

 

【例5】(2002年9月)已知大写字母A的ASCII码的值是65,小写字母a的ASCII码是97,则用八进制表示字符常量‘\101’是(A )。

A. 字符A     B. 字符a    C. 字符e    D. 非法的常量

【答案】A

本题中101的八进制在十进制表示则是65,也就是A的ASCII码值。

 

【例6】(2002年9月)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是(B )。

A. void    B. int     C. float    D. double

【答案】B

 

【例7】(2003年9月)以下选项中可作为C语言合法整数的是(C )。

A. 10110B     B. 0386         C. 0Xffa    D. x2a2

【答案】C

 

【例8】(2003年9月)已定义c为字符变量,则下列语句中正确的是(C )。

A. c=‘97’        B. c=“97”       C. c=97         D. c=“a”

【答案】C

 

【例9】(2004年4月)以下符合C语言语法的实型常量是( )。

A. 1.2E0.5   B. 3.14159E     C. 5E-3     D. E15

【答案】C

 

【例10】(2002年4月)设有以下变量定义,并已赋确定的值

char w; int x; float y; double z;

则表达式:

w*x+z-y所求得的数据类型为   。

【答案】double

【考点解析】当不同数据类型一起运算时,如果有精度大的数据类型参加时,结果会上最后会以精度大的,这样能保持数据的精度。

 3.2运算符

【例1】(2000年4月)设有intx=11;则表达式(x++*1/3)的值是( )。

A. 3         B. 4          C. 11         D. 12

【答案】A

【考点解析】在题目中,有三个运算符,其中“/”可以把1/3看成一个整体,也就是一个数,那么根据运算符优先级知道,++的优先级比*高,那么先运行++,再运行*,最后结果是3。

【例2】(2000年4月)设intx=1,y=1;表达式(!

x||y--)的值是( )。

A. 0             B. 1            C. 2            D. -1

【答案】B

【考点解析】在这一题中,我们要注意的是--或++的位置,在这里y--是指先把y与!

x进行或运算,后y再减1,那么这个表达式的值是1。

如果--y是指y减1后再与!

x进行或运算。

 

【例3】(2000年4月)设intb=2;表达式(b>>2)/(b>>1)的值是( )。

A. 0             B. 2            C. 4            D. 8

【答案】A

【考点解析】移位运算是用于一个整数的二进制数向左或向右移动。

先是把b化成二进制,再右移两位,则是0;而右移一位,则是1,所以整个表达式的结果是0。

 

【例4】(2000年9月)C语言中运算对象必须是整型的运算符是( )。

A. %=          B. /            C. =          D. <=

【答案】A

【考点解析】在C语言程序设计中“%”是表示求余运算,是必须是整形的数据类型,而其它三种运算符的运算对象可以是整形也可以是其它数据类型。

 

【例5】(2000年9月)若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( )。

A. 1           B. 2          C. 2.0       D. 2.5

【答案】B

【考点解析】在这一题中,我们清楚C语言中的自动数据类型的转换,在这里3/2是整形除以整形,所以结果自动转换成整形,再加上1,所以最后结果是2。

 

【例6】(2001年9月)整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是( )。

A. x||y        B. x|y        C. x&y        D. x^y

【答案】D

【考点解析】||是C语言的逻辑或运算符,表示只要有一个表达式为真,则整个表达式都为真;|是按位或运算符,先是把操作数转化成二进制,再按位进行或运算;&是按位与运算符,先是把操作数转化成二进制,再按位进行与运算;^是按位异或运算符,先是把操作数转化成二进制,再按位异或运算,就是相同的为0,不同的为1。

 

【例7】(2002年9月)已有定义:

intx=3,y=4,z=5;,则表达式!

(x+y)+z-1&&y+z/2的值是( )。

A. 6             B. 0            C. 2            D. 1

【答案】D

【考点解析】在本题中,优先级最高的是括号,因此先计算x+y,跟着是!

的优先级高,即运算!

(x+y),接着是/的优先级高,即运算z/2,再是+、-的运算符优先级,在本表达式中优先级最低的是&&,最后的结果是1。

【例8】(2002年9月)设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D )。

A. 6.500000      B. 6     C. 5.500000 D. 6.000000

【答案】D

【考点解析】在本题表达式中,优先级最高的是int,跟着是/,最后是+。

根据优先级分析,先运算(int)5.5,是指对5.5取整,这里也是数据类型的强转换。

跟着运算b/b,因为b是double类型,则结果也是double类型,最后运算“+”运算符,则可以计算出最后的结果。

 

【例9】(2003年4月)下列关于单目运算符++、--的叙述中正确的是( )。

A. 它们的运算对象可以是任何变量和常量。

B. 它们的运算对象可以是char型变量和int型变量,但不能是float型变量。

C. 它们的运算对象可以是int型变量,但不能是double型变量和float型变量。

D. 它们的运算对象可以是char型变量、int型变量和float型变量。

【答案】D

【考点解析】在C语言中,++、--是单目运算符,分别表示进行加1、减1运算,一般是在char、int、float数据类型中运算。

 

【例10】(2004年9月)有以下定义语句

double a,b;intw;longc;

若各变量已正确赋值,则下列选项中正确的表达式是( )。

A.a=a+b=b++                      B. w%((int)a+b)

C.(c+w)%(int)a                   D. w=a==b

【答案】C

【考点解析】在C语言程序设计中,表达式不允许作为值来直接赋值给表达式;在表达式中运用“%”时应该注意,运算符“%”的使用对象必须是整型;“==”是关系运算符,在这里并不正确,赋值符应该是“=”。

 

 

【例11】(2004年9月)若x和y代表整型数,以下表达式中不能正确表示数学关系

|x-y|<10的是( )。

A.abs(x-y)<10                    B. x-y>-10&&x-y<10

C.!

(x-y)<-10||!

(y-x)>10          D. (x-y)*(x-y)<100

【答案】C

 

【例12】(2004年9月)设有定义语句:

char c1=92,c2=92;则以下表达式中值为零的是( )。

A.   c1^c2        B. c1&c2        C. c1~c2         D. c1|c2

【答案】A

 

3.3表达式

【例1】(2000年9月)若变量已正确定义并赋值,下面符合C语言语法的表达式是( )。

A. a:

=b+1           B. a=b=c+2

C. int18.5%3       D. a=a+7=c+b

【答案】B

【考点解析】表达式是由运算符把字符连接起来所构成的。

在上面选项中,A中的字符变量定义错误,C选项不是表达式,D选项中等号左边必须是一个可以确定的值。

 

【例2】(2001年4月)若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( )。

A. -3            B. 9            

C. -12           D. 6                

【答案】C

【考点解析】这题中,有多个赋值关系。

从右到左计算,可以这样理解:

首先a*a等于9,再计算a=a-9,得到a=-6,再计算a=a+(-6),所以最后答案是-12。

 

【例3】(2002年4月)变量a已被定义为整型,下列表达式不正确的是( )。

A.  a='A'+20         B.a-='a'       

C.  a=c+d             D.a='c'+'d'                  

【答案】C

【考点解析】在C语言中我们得知字符变量可以参与任何整数的运算,在C项中,c和d如果是字符变量应刻有单引号括住,如果是其它变量应提前定义,以避免编绎出错。

 

【例4】(2002年4月)若有定义:

inta=8,b=5,c;执行语句c=a/b+0.4后,c的值为( )。

A.  1.4          B. 1            C.2.0            D.2

【答案】B

【考点解析】在本题中,首先计算的是优先级高的/,a/b(8/5=1),再将1+0.4的值赋给c,由于c为整型变量所以要将1.4转换为整型,即是舍弃小数位0.4(c的值变为1)。

 

【例5】(2002年9月)与数学式子对应的C语言表达式是( )。

A.  3*x^n(2*x-1)                  B. 3*x**n(2*x-1)

C.  3*pow(x,n)*(1/(2*x-1))         D. 3*pow(n,x)/(2*x-1)

【答案】C

【考点解析】在C语言程序设计中,数学运算次方在C语言中运用函数pow()来表达,例如:

x的y次方,在C语言中应该这样表达:

pow(x,y),所在选项中,选项D表达写反了,则只有选项C才是正确的选项。

 

【例6】(2002年9月)以下选项中,与k=n++完全等价的表达式是( )。

A. k=n,n=n+1     B. n=n+1,k=n      

C. k=++n          D. k+=n+1

【答案】A

【考点解析】在本题中,k=n++为后辍运算,根据其运算规则,应先把n的值赋给k,然后n的值再加上1,选项A的表达式与本题中的表达式等价。

 

【例7】(2003年9月)以下选项中非法的表达式是( )。

A.  0<=x<100             B.i=j==0       

C.  (char)(65+3)         D.x+1=x+1

【答案】D

【考点解析】在C语言程序设计中,表达式不允许作为值来直接赋值给表达式。

 

【例8】(2004年4月)设有定义:

floata=2,b=4,h=3;以下C语言表达式中与代数式1/2*(a+b)h计算结果不相符的是( )。

A.  (a+b)*h/2            B.(1/2)*(a+b)*h

C.  (a+b)*h*1/2          D.h/2*(a+b)

【答案】B

【考点解析】本题实质上是要把数学表达式在C语言程序设计中表达出来,在C语言中优先级最高是括号,那么先计算所有的括号,可以看到选项B中的(1/2)结果是0,那么整个表达式的结果就是0,而其它三项的结果并不是0。

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

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2