C语言历年考题真题.doc

上传人:坚持 文档编号:3442250 上传时间:2019-05-29 格式:DOC 页数:114 大小:352KB
下载 相关 举报
C语言历年考题真题.doc_第1页
第1页 / 共114页
C语言历年考题真题.doc_第2页
第2页 / 共114页
C语言历年考题真题.doc_第3页
第3页 / 共114页
C语言历年考题真题.doc_第4页
第4页 / 共114页
C语言历年考题真题.doc_第5页
第5页 / 共114页
点击查看更多>>
资源描述

1、-WORD 格式-专业资料-可编辑-1.C 语言规定,在一个源程序中 main 函数的位置 _ 。(2010 年春选择题第 21 题)A.必须在最开始 B.必须在最后 C.必须在预处理命令的后面 D.可以在其他函数之前或之后 【解析】main 函数也叫主函数,是 C 语言编译系统提供的特殊函数,可以放在程序中的任何位置,但不能定义在其他函数体内。C 程序总是从 main 函数的第一条语句开始执行。【答案】D2.以下叙述中正确的是_ 。(2009 年秋选择题第 21 题)A.C 语言系统以函数为单位编译源程序B.main 函数必须放在程序开始C.用户定义的函数可以被一个或多个函数调用任意多次 D

2、.在一个函数体内可以定义另外一个函数【解析】C 语言系统以程序为单位编译源程序,程序由函数组成。main 函数可以放在其他函数之前或之后。除了 main 函数外,函数可以被其他函数多次调用。函数不能定义在其他函数体内,即不能嵌套定义。 【答案】C3.以下叙述中正确的是_ 。(2008 年秋选择题第 21 题)A.在编译时可以发现注释中的拼写错误B.C 语言程序的每一行只能写一条语句C.main()必须位于程序的开始D.C 语言程序可以由一个或多个函数组成【解析】C 程序的注释不产生编译代码,编译时跳过去,发现不了其中错误。C 程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。m

3、ain 函数可以放在程序中的任何位置。C 程序可以由一个或多个函数组成,函数可以为空函数,包括main 函数。【答案】D4.以下关于 C 语言源程序的叙述中错误的是_。(2007 年春选择题第 21 题)A.一个 C 源程序由若干个函数定义组成,其中必须有且仅有一个名为 main 的函数定义B.函数定义由函数头部和函数体两部分组成C.在一个函数定义的函数体中允许定义另一个函数-WORD 格式-专业资料-可编辑-D.在一个函数定义的函数体中允许调用另一个函数或调用函数自身【解析】一个 C 语言源程序由若干个函数定义组成,其中必须有且仅有一个名为 main 的函数定义,函数定义由函数头部和函数体两

4、部分组成。函数可以嵌套调用也可以递归调用,但不能嵌套定义。C 的意思是嵌套定义,错误,D 的意思是嵌套调用和递归调用,正确。【答案】C3.1.2 基本数据类型1.以下选项中,_ 是 C 语言关键字。 (2010 年春选择题第 22 题)A.printf B.include C.fun D.default 【解析】default 是关键字,用在 switch 语句中。printf 和 include 属于预定义标识符,其中 printf 是输出函数名,include 用在预编译处理命令中。 fun 是用户自定义标识符。【答案】D2.在以下各组标识符中,均可以用作变量名的一组是_。(2007 年秋

5、选择题第 22 题)A.a01,Int B.table_1,a*.1 C.0_a,W12 D.for,point【解析】选项 A 中两个都符合标识符的命令规则,Int 与关键字 int 是不同的标识符,选项 B 的第 2个标识符中有*号,不符合标识符命名规则,选项 C数字开头,不允许,选项 D 中的 for 是关键字,不能做变量名。【答案】A3.以下定义和声明中,语法均有错误的是_。 (2009 年春选择题第 21 题)int _f(int x) int f(int f) int 2x=1; struct forint x;A. B. C. D. 【解析】本题考的是标识符的命名规则。定义的整型

6、变量名数字开头,不符合命名规则。中定义的结构体类型名 for 属于关键字,不能作为结构体类型名。中使用的函数名和形式参数名相同,在语法上可以,但在实际编程时不提倡使用。【答案】B-WORD 格式-专业资料-可编辑-4.在 C 语言系统中,如果一个变量能正确存储的数据范围为整数-3276832767 ,则该变量在内存中占_个字节。 (2010 年春填空题第 3 题)【解析】表示范围为整数-3276832767 的属于int 型或 short 型的变量,它们在内存占 2 个字节。【答案】25.若有声明“int x;”且 sizeof(x)的值为 2,则当 x值为_时“x+1x”为假。(2009 年

7、春填空题第 2 题)【解析】x 为 int 型,其表示范围为-32768+32767 ,当 x 为 32767 时,再加 1 就变成了-32768 了,此时,就是 x+1x”为假的情况。这是由 int 型数据在内存中的存储情况决定的。int 型数据在内存中占 2 个字节,以补码的形式存放,32767 的补码为 01111111 11111111,加 1 以后就变成了 10000000 00000000,为-32768 的补码,这种情况为溢出,数处于边界时会溢出。sizeof(x)是求字节数运算符。【答案】327676.已知 sizeof(int)的值为 2,为将 10!的值存储到变量 f 中(

8、10!=3628800),变量 f 的类型应声明为_ 。(2008 年秋选择题第 23 题)A. long int B. int C. short int D.unsigned int【解析】10!=3628800,超过了 int 的范围-32768+32767 ,而长整型在内存占 4 个字节,表示范围大到-2147483482147483647 ,应该要用长整型才可以存放 3628800。【答案】A7.以下常量表示中正确的是_ 。(2008年春选择题第 22 题)A.xff B.5L C.aEb D.3.14U【解析】选项 A 若想表示成十六进制常量,正确的表示应该是 0xff,如果表示成转

9、义字符,应该放在单引号内:0xff。选项 B 表示的是长整型常量,选项 C 是一个标识符,不能表示常量,选项 D 表示的是无符号整数,但无符号整数不应该有小数。【答案】B8.以下表示中不能用作 C 语言常量表示的是。(2007 年春选择题第 22 题)A.0UL B.(long)123 C.1e0 D.x2a【解析】0UL 意为将 0 以无符号长整型存放, B-WORD 格式-专业资料-可编辑-为强制类型转换,是表达式,表示长整型常量应该在123 后加字母 l 或 L。C 是实常量,指数表示法,意为 1 乘以 10 的 0 次方,e 前面必须有数字,后面的数字必须是整数。D 是转义字符,表示十

10、六进制数2a。 【答案】B9.在 C 语言源程序中,不带任何修饰的浮点数直接量(例如:3.14 )都是按_类型数据存储的。 (2008 年春填空题第 1 题)【解析】实型常量的类型默认为 double 类型, 在内存中占 8 个字节。带 f 修饰即 3.14f 或 3.14F,则认为它是 float 型,在内存中占 4 个字节。【答案】double10.已知有声明 “char ch=g;”,则表达式 ch=ch-a+A的值为字符_的编码。 (2010 年春填空题第 2 题)【解析】本题的功能是将小写字母转换成大写字母。-a+A实际上就是减去 32,对于一个小写字母来说,减去 32 就变成对应的

11、大写字母。【答案】G11.若有程序段 “char c=256;int a=c;”,则执行该程序段后 a 的值是_。(2007 年秋选择题第 24 题) A.256 B.65536 C.0 D.-1 【解析】将 256 转换成二进制,为 10000 0000,占 9 位,而 char 在内存只占一个字节,即 8 位,截取低 8 位赋给字符变量 c,得 c=0,将 c 的值赋给 a,结果为 0。【答案】C3.1.3 运算符和表达式 1.已知有声明“int a=3,b=4,c;”,则执行语句“c=1/2*(a+b);”后,c 的值为_ 。(2010 年春选择题第 23 题)A.0 B.3 C.3.5

12、 D.4 【解析】本题考查的是两整数相除,结果为整数,截取的是整数部分,不是四舍五入。1/2 等于 0,0乘于任何一个整数结果还是 0,最后结果为 0。【答案】A2.已知有声明“long x,y;”且 x 中整数的十进制表示有 n 位数字(4 void main() int a=1,b=2; a+=b; b=a-b; a-=b; printf(“%d,%dn“,a,b); 【解析】本题的考点是复合赋值运算符,程序功能是不用临时变量,实现两个变量的值的交换。计算过程如下:a=a+b=1+2=3 ,b=a-b=3-2=1,a=a-b=3-1=2。最后结果是 a 为 2,b 为 1。变量的值在程序运

13、行过程中可能在不断的变化,每次计算都要用最新得到的值。 【答案】2,18.若有声明“int x=2,y=1,z=0;”,则下列关系表达式中有语法错误的是_ 。(2008 年春选择题第 25 题)A. xy=2 B.zyx C.xy=1 D.x=(x=0,y=1,z=2)【解析】赋值表达式的运算数有左值要求,赋值号左边必须是变量,不能是表达式,A 错。B 没有语法错误,zy 成立结果为 1,不成立为 0,再将 1 或0 与 x 比较,判断其是否成立。C 先判断 xy 是否成立,得到 0 或 1 再与 1 比较是否相等,最后的结果要么是 0 要么是 1。D 先做括号中的逗号表达式,依次进行赋值,最

14、后一个表达式的值 2 是整个逗号表达式-WORD 格式-专业资料-可编辑-的值,将其与 x 的值进行是否相等的比较。【答案】A9.已知有声明“int a=12,b=15,c;”,则执行表达式“c=(a|(b-=a)”后,变量 b 和 c 的值分别为 _ 。 (2010 年春选择题第 29 题) A.3,1 B.15,12 C.15,1 D.3, 12 【解析】本题的考点是逻辑表达式的短路特性。a值为 12,非零即为真,逻辑表达式的结果只能用 1或者0 表示,若为真则结果为1。只要有一个为真,逻辑或“|”的结果就为1,b-=a不用计算了,b的值不变,仍为15 。而括号中逻辑表达式的值为1,1 赋

15、给c ,故c的值为1。 【答案】C10.已知有声明 “int a=3,b=4,c=5;”,以下表达式中值为 0 的是_ 。(2009 年秋选择题第 24 题)A.a”,则表达式“b+=(float)(a+b)/2”运算后 b 的值为_ 。(2007 年秋填空题第 1 题)【解析】b+=(float)(a+b)/2 相当于 b=b+(float)(a+b)/2)。先执行 a+b 得 7,转换成实数 7.0 除以 2,得 3.5,然后将原来的 b=2 加 3.5 得 5.5,b 是 int,截取整数部分 5 赋给 b。【答案】515.设指针变量占 2 个字节的内存空间,若有声明“char *p=“

16、123“;int c;”,则执行语句“c=sizeof(p);”后,c 的值为_ 。(2010 年春选择题第 24 题) A.1 B.2 C.3 D.4 【解析】题目告诉我们指针变量占 2 个字节,而sizeof 的功能就是计算变量在内存中所占的字节数,c 的值为指针变量 p 在内存中占用的字节数,为 2。【答案】B16.若有声明 “int r=2;”,则执行语句“printf(“%d“,sizeof(2*3.14*r);”时输出_ 。(2009 年秋填空题第 2 题)【解析】本题输出表达式 2*3.14*r 的结果在内存中占用的字节数。2*3.14*r 的结果为实常量,其中有一个实常量 3.

17、14, C 中实常量默认为 double 型。根据类型转换规则,其他类型的数据也要转换成 double型,最后结果为 double 型,在内存占 8 个字节。一般情况,只要表达式中有一个数据为 double型,最后的结果就是 double 型。【答案】8-WORD 格式-专业资料-可编辑-17.数学式 所对应的 c 语言表达式为 pow(x, 3x_ )。 (2010 年春填空题第 1 题)【解析】pow(x,y)是求 x 的 y 次方的函数。 就3x是 x 的三分之一次方。此处注意的是 1/3=0,要将其中一个转换为浮点数。【答案】1.0/3 或者 1/3.0 或者(double)1/318

18、.数学表达式 所对应的 C 语言表达式为 4|axbc_ 。(2009 年秋填空题第 3 题)【解析】求平方根的函数为 sqrt,求绝对值的函数为 abs 或 fabs, abs 求整数的绝对值,fabs 求实数的绝对值。 “”用“!=”表示。4a 要用 4*a 表示,*表示乘号,不能缺省。分母一定要加括号,若不加括号得用除“/”不是用乘“*” 。加括号的表示方式看起来更直观。 【答案】sqrt(fabs(x)!=4*a/(b*c)或 sqrt(fabs(x)!=4*a/b/c3.2.1 实现顺序结构的语句1.以下关于 C 语言语句的叙述中正确的是_ 。 (2006 年秋选择题第 27 题)A

19、.所有语句都包含关键字B.所有语句都包含表达式C.所有语句都可以出现在源程序中的任何位置D.除复合语句外的其他所有语句都以分号结束【解析】关键字只有 32 个,大多数用来进行变量类型说明以及实现条件选择和循环结构的控制语句。很多语句中没有关键字的,如赋值语句。表达式也不一定在所有的语句中出现的,如函数调用语句。语句是程序的执行部分,放在函数内部,而且在说明部分之后。C 语言中复合语句中的各条语句都必须有分号“;”,但在“” 外没有分号。【答案】D2.已知 int 类型数据在内存中存储长度为 2 个字节,以下语句中能正确输出整数 32768 的是_ -WORD 格式-专业资料-可编辑-。 (20

20、09 年秋选择题第 23 题)A.printf(“%d“,32768); B.printf(“%ld“,32768);C.printf(“%f“,32768); D.printf(“%c“,32768);【解析】本题考点是输出格式。%d 格式输出 int型整数,范围为-3276832767 ,%f 格式输出浮点数,%c 格式输出字符。 %ld 格式输出长整型整数,范围为-21 亿 21 亿。【答案】B3.以下语句中有语法错误的是_ 。 (2009 年春选择题第 24 题)A.printf(“%d“,0e); B.printf(“%f“,0e2);C.printf(“%d“,0x2); D.pr

21、intf(“%s“,“0x2“);【解析】本题考点为输出格式及常量表示。A 中的%d 表示输出 int 型整数,0 开头为八进制数,只能为 0 7 共 8 个数字,不能为 e。B 是%f 格式,输出实数,0e2 是指数形式,即为 0*102。C 输出 int 型整数,0x 是十六进制形式,D 用%s 格式输出字符串常量“0x2“。【答案】A4.已知有声明和语句“int a;scanf(“a=%d“,”,欲从键盘上输入数据使 a 中的值为 3,则正确的输入应是 _ 。 (2010 年春填空题第 5 题)【解析】 “a=”是原样字符,要照输。 “%d”的位置输入对应的变量 a 的值 3。就是将键盘输入的值3 存入变量 a 的地址单元,这样 a 的值就为 3。【答案】a=35.若有声明“long a,b;”且变量 a 和 b 都需要通过键盘输入获得初值,则下列语句中正确的是_ 。 (2007 年秋选择题第 23 题)A.scanf(“%ld%ld,float x;char a50;”,为使 i 得到

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。