C语言
1C语言的历史、特点
11978年美电话电报公司(AT&T)的贝尔实验室正式发表了C语言。
2C语言把括号、赋值、强制类型转换等作为运算符处理。
3C语言的数据类型有整型、实型、字符型、数组型、指针型、结构体类型、共用体
类型等。(树、栈、链表等为数据构
4C语言允许直接访问物理地址,能进行位(bit)操作。
2 C语言程序的基本结构
【例1(20024)编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑( )
A. 仅为整个程序作注释
B. 仅为每个模块作注释
C. 为程序段作注释
D. 为每个语句作注释
【答案】C
【例2(20024)以下叙述正确的是( )
A. 可以把defineif定义为用户标识符。
B. 可以把define定义为用户标识符,但不能把if定义为用户标识符。
C. 可以把float型if定义为用户标识符,但不能把define定义为用户标识符。
D. defineif都不能定义用户标识符。
【答案】B define不是关键字,if是关键字,所以define可以定义为用户的标识符。)
【例3(20029)源程序中应包含一些内部文档,以帮助阅读和理解程序,源程序的内部文档通常包括选择合适的标识符/注释和( )
A. 程序的视觉组织
B. 尽量不用或少用GOTO语句
C. 检查输入数据的有效性
D. 设计良好的输出报表
【答案】A (源程序文档中主要包括标识符命名,注释和视觉组织。)
【例4(20029)以下叙述中正确的是( )
A. 构成C语言程序的基本单位是函数。
B. 可以在一个函数中定义另一个函数。
C. main( )函数必须放在其他函数之前。
D. 所有被调用的函数一定要在调用之前进行定义。
【答案】C语言是由函数构成的,所以C语言的基本单位是函数,在C语言中不能嵌套定义,就是说不能在函数中定义函数,main()函数可以放在程序的任意位置,但是程序的执行都是从main()函数开始的,所有被调用的函数一定要在调用之前进行声明。)
【例5(20029)以下选项中合法的用户标识符是( )
A. long            B. _2Test            C. 3Dmax            D. A.dat
【答案】B
【例6(20039)以下叙述中正确的是( )
A. C程序中注释部分可以出现在程序的任意合适地方。
B. 花括号只能作为函数体的定界符。
C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名。
D. 分号是C语言之间的分隔符,不是语句的一部分。
【答案】A
【例7(20039)若已定义的函数有返回值,则以下关于该函数调用叙述错误的是( )
A. 函数调用可以作为独立的语句存在。
B. 函数调用可以作为一个函数的实参。
C. 函数调用可以出现在表达中。
D. 函数调用可以作为一个函数的形参。
【答案】D
C语言中,当函数有返回值时可以作为表达式或表达式的一部分,而函数调用只能作为实参,不能作为形参。
第3章 数据类型、运算符、表达式与基本语句
31数据类型
【例1(20004)下列变量定义中合法的是( )
A.  short _a=1-.le-1                        B. double  b=1+5e2.5
C.  long  do=0xfdaL                        D. float  2_and=1-e-3
【答案】A
【例2(20014) 以下只有在使用时才为该类型变量分配内存的存储类说明是( )
A. auto static                        B. auto register
C. register static                    D. extern register
【答案】B
根据C 语言的规定,autoregisterC语言程序中当它们被用到时才会分配内存,在它们声明时并不占用内存空间的。
【例3(20024)以下选项中不属于C语言类型的是( )
A. signed short int                    B. unsigned long int
C. unsigned int                        D. long short
【答案】D
【例4(20029)以下选项中合法的实型常数是( )
A. 5E2.0        B. E3        C. 2E0        D. 1.3E
【答案】C
【例5(20029)已知大写字母AASCII码的值是65,小写字母aASCII码是97,则用八进制表示字符常量‘\101’( )
A. 字符A        B. 字符a        C. 字符e        D. 非法的常量
【答案】A
本题中101的八进制在十进制表示则是65,也就是AASCII码值。
【例6(20029)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( )
A. void        B. int        C. float        D. double
【答案】B
【例7(20039)以下选项中可作为C语言合法整数的是( )
A. 10110B        B. 0386            C. 0Xffa        D. x2a2
【答案】C
【例8(20039)已定义c为字符变量,则下列语句中正确的是( )
A. c=‘97’            B. c=“97”            C. c=97            D. c=“a”
【答案】C
【例9(20044)以下符合C语言语法的实型常量是( )
A. 1.2E0.5        B. 3.14159E        C. 5E-3        D. E15
【答案】C
【例10(20024) 设有以下变量定义,并已赋确定的值
char  w;  int  x;  float  y;  double  z;
则表达式:w*x+z-y所求得的数据类型为   。
【答案】double
【考点解析】当不同数据类型一起运算时,如果有精度大的数据类型参加时,结果会上最后会以精度大的,这样能保持数据的精度。
32运算符
【例1(20004) 设有 int x=11; 则表达式 (x++*1/3) 的值是( )
A. 3            B. 4                  C. 11          D. 12
【答案】A
【考点解析】在题目中,有三个运算符,其中可以把1/3看成一个整体,也就是一个数,那么根据运算符优先级知道,++的优先级比*高,那么先运行++,再运行*,最后结果是3
【例2(20004) int x=1,y=1; 表达式(!x||y--)的值是( )
A. 0                B. 1                C. 2                D. -1
【答案】B
【考点解析】在这一题中,我们要注意的是--++的位置,在这里y--是指先把y!x进行或运算,后y再减1,那么这个表达式的值是1。如果--y是指y1后再与!x进行或运算。
【例3(20004) int b=2;表达式(b>>2)/(b>>1)的值是( )
A. 0                B. 2                C. 4                D. 8
【答案】A
【考点解析】移位运算是用于一个整数的二进制数向左或向右移动。先是把b化成二进制,再右移两位,则是0;而右移一位,则是1,所以整个表达式的结果是0
【例4(20009) C语言中运算对象必须是整型的运算符是( )
A. %=          B. /            C. =          D. <=
【答案】A
【考点解析】在C语言程序设计中“%”是表示求余运算,是必须是整形的数据类型,而其它三种运算符的运算对象可以是整形也可以是其它数据类型。
【例5(20009) 若已定义xydouble类型,则表达式x=1,y=x+3/2 的值是( )
A. 1            B. 2          C. 2.0            D. 2.5
【答案】B
【考点解析】在这一题中,我们清楚C语言中的自动数据类型的转换,在这里3/2是整形除以整形,所以结果自动转换成整形,再加上1,所以最后结果是2
【例6(20019) 整型变量xy的值相等、且为非0值,则以下选项中,结果为零的表达式是( )
A. x || y            B. x | y            C. x & y            D. x ^ y
【答案】D
【考点解析】||C语言的逻辑或运算符,表示只要有一个表达式为真,则整个表达式都为真;|是按位或运算符,先是把操作数转化成二进制,再按位进行或运算;&是按位与运算符,先是把操作数转化成二进制,再按位进行与运算;^是按位异或运算符,先是把操作数转化成二进制,再按位异或运算,就是相同的为0,不同的为1

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。