c语言历年考题真题解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2010年春选择题第21题)
A.必须在最开始
B.必须在最后
C.必须在预处理命令的后面
D.可以在其他函数之前或之后
【解析】main函数也叫主函数,是C语言编译系统提供的特殊函数,可以放在程序中的任何位置,但不能定义在其他函数体内。C程序总是从main函数的第一条语句开始执行。
【答案】D
2.以下叙述中正确的是________ 。(2009年秋选择题第21题)
语言系统以函数为单位编译源程序
函数必须放在程序开始
C.用户定义的函数可以被一个或多个函数调用任意多次
D.在一个函数体内可以定义另外一个函数
【解析】C语言系统以程序为单位编译源程序,程序由函数组成。main函数可以放在其他函数之前或之后。除了main函数外,函数可以被其他函数多次调用。函数不能定义在其他函数体内,即不能嵌套定义。
【答案】C
3.以下叙述中正确的是_________ 。(2008年秋选择题第21题)
A.在编译时可以发现注释中的拼写错误
语言程序的每一行只能写一条语句
(){}必须位于程序的开始
语言程序可以由一个或多个函数组成
【解析】C程序的注释不产生编译代码,编译时跳过去,发现不了其中错误。C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。main函数可以放在程序中的任何位置。C程序可以由一个或多个函数组成,函数可以为空函数,包括main函数。
【答案】D
4.以下关于C语言源程序的叙述中错误的是________。(2007年春选择题第21题)
A.一个C源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义
B.函数定义由函数头部和函数体两部分组成
C.在一个函数定义的函数体中允许定义另一个函数
D.在一个函数定义的函数体中允许调用另一个函数或调用函数自身
【解析】一个C语言源程序由若干个函数定义组成,其中必须有且仅有一个名为main 的函数定义,函数定义由函数头部和函数体两部分组成。函数可以嵌套调用也可以递归调用,但不能嵌套定义。C的意思是嵌套定义,错误,D的意思是嵌套调用和递归调用,正确。
【答案】C
基本数据类型
1.以下选项中,___________ 是C语言关键字。 (2010年春选择题第22题)
【解析】default是关键字,用在switch语句中。printf和include属于预定义标识符,其中printf是输出函数名,include用在预编译处理命令中。fun是用户自定义标识符。
【答案】D
2.在以下各组标识符中,均可以用作变量名的一组是_____。(2007年秋选择题第22
题)
,Int ,a*.1 ,W12 ,point
【解析】选项A中两个都符合标识符的命令规则,Int与关键字int是不同的标识符,选项B的第2个标识符中有*号,不符合标识符命名规则,选项C数字开头,不允许,选项D中的for是关键字,不能做变量名。
【答案】A
3.以下定义和声明中,语法均有错误的是___________。 (2009年春选择题第21题)
①int _f(int x){} ②int f(int f){} ③int 2x=1; ④struct for{int x;};
A.②③
B.③④
C.①④
D.①②③④
【解析】本题考的是标识符的命名规则。③定义的整型变量名数字开头,不符合命名规则。④中定义的结构体类型名for属于关键字,不能作为结构体类型名。②中使用的函数名和形式参数名相同,在语法上可以,但在实际编程时不提倡使用。
【答案】B
4.在C语言系统中,如果一个变量能正确存储的数据范围为整数-32768~32767,则该变量在内存中占________个字节。 (2010年春填空题第3题)
【解析】表示范围为整数-32768~32767的属于int型或short型的变量,它们在内存占2个字节。
【答案】2
5.若有声明“int x;”且sizeof(x)的值为2,则当x值为___________时“x+1>x”为假。
(2009年春填空题第2题)
【解析】x为int型,其表示范围为-32768~+32767,当x为32767时,再加1就变成了-32768了,此时,就是x+1>x”为假的情况。
这是由int型数据在内存中的存储情况决定的。int型数据在内存中占2个字节,以补码的形式为-32768的补码,这种情况为溢出,数处于边界时会溢出。sizeof(x)是求字节数运算符。
【答案】32767
6.已知sizeof(int)的值为2,为将10!的值存储到变量f中(10!=3628800),变量f 的类型应声明为___________ 。(2008年秋选择题第23题)
A. long int
B. int
C. short int int
【解析】10!=3628800,超过了int的范围-32768~+32767,而长整型在内存占4个字节,表示范围大到,应该要用长整型才可以存放3628800。
【答案】A
7.以下常量表示中正确的是__________ 。(2008年春选择题第22题)
【解析】选项A若想表示成十六进制常量,正确的表示应该是0xff,如果表示成转义字符,应该放在单引号内:'\0xff'。选项B表示的是长整型常量,选项C是一个标识符,不能表示常量,选项D表示的是无符号整数,但无符号整数不应该有小数。
【答案】B
8.以下表示中不能用作C语言常量表示的是____。(2007年春选择题第22题)
B.(long)123 D.'\x2a'
【解析】0UL意为将0以无符号长整型存放,B为强制类型转换,是表达式,表示长整型常量应该在123后加字母l或L。C是实常量,指数表示法,意为1乘以10的0次方,e 前面必须有数字,后面的数字必须是整数。D是转义字符,表示十六进制数2a。