ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:26.35KB ,
资源ID:9572444      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9572444.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(二级C语言 1套 选择题的副本.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

二级C语言 1套 选择题的副本.docx

1、二级C语言 1套 选择题的副本(1)下列叙述中正确的是A)所谓算法就是计算方法B)程序可以作为算法的一种描述方法C)算法设计只需考虑得到计算结果 D)算法设计可以忽略算法的运算时间答案:B【解析】算法是指对解题方案的准确而完整的描述,算法不等于数学上的计算方法,也不等于程序,A选项错误。算法设计需要考虑可行性、确定性、有穷性与足够的情报,不能只考虑计算结果,C选项错误。算法设计有穷性是指操作步骤有限且能在有限时间内完成,如果一个算法执行耗费的时间太长,即使最终得出了正确结果,也是没有意义的,D选项错误。算法在实现时需要用具体的程序设计语言描述,所以程序可以作为算法的一种描述方法,B选项正确。(

2、2)下列叙述中正确的是A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小 C)一个算法的时间复杂度大,则其空间复杂度必定小D)算法的时间复杂度与空间复杂度没有直接关系答案:D【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间,算法的时间复杂度,是指执行算法所需要的计算工作量,两者之间并没有直接关系,答案为D。(3)下列叙述中错误的是A)数据结构中的数据元素不能是另一数据结构B)数据结构中的数据元素可以是另一数据结构C)空数据结构可以是线性结构也可以是非线性结构D)非空数据结构可以没有根结点【答案】A【解析】数据元素是一个含义很广泛的概念

3、,它是数据的“基本单位”,在计算机中通常作为一个整体进行考虑和处理。数据元素可以是一个数据也可以是被抽象出的具有一定结构数据集合,所以数据结构中的数据元素可以是另一数据结构。满足有且只有一个根结点并且每一个结点最多有一个前件,也最多有一个后件的非空的数据结构认为是线性结构,不满足条件的结构为非线性结构。空数据结构可以是线性结构也可以是非线性结构。非空数据结构可以没有根结点,如非性线结构“图”就没有根结点。故选A选项(4)结构化程序设计的基本原则不包括()。A)多态性B)自顶向下C)模块化D)逐步求精答案:A【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以

4、选择A)。(5)结构化程序设计中,下面对goto语句使用描述正确的是A)禁止使用goto语句B)使用goto语句程序效率高C)应避免滥用goto语句D)以上说法均错误答案:C【解析】结构化程序设计中,要注意尽量避免goto语句的使用,故选C。(6)下列叙述中正确的是A)软件是程序、数据和文档B)软件是程序和数据C)软件是算法和数据结构D)软件是算法和程序答案:A【解析】计算机软件由两部分组成:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。故选A选项(7) 软件生命周期是指()。A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件从需求分析、

5、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程答案:A【解析】通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期(8)下面能作为软件需求分析工具的是A)PAD图 B)程序流程图 C)甘特图 D)数据流程图(DFD图)答案:D【解析】软件需求分析方法包括结构化分析方法和面向对象的分析方法两大类,前者常用工具为数据流图(DFD)、数据字典(DD)、判定表、判定树等。故D选项正确。(9)在数据库管理系统提供的数据语言中,负责数据的查询、增加、删除和修改等操作的是A)数

6、据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言答案:C【解析】数据库管理系统提供了相应的数据语言,它们是:数据定义语言,该语言负责数据的模式定义与数据的物理存取构建;数据操纵语言,该语言负责数据的操纵,包括查询与增、删、改等操作;数据控制语言,该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。C选项正确。(10)在数据库系统中,考虑数据库实现的数据模型是A)概念数据模型B)逻辑数据模型C)物理数据模型D)关系数据模型答案:B【解析】数据模型按照不同的应用层次分为以下种类型:概念数据模型,它是一种面向客观世界、面向用户的模型,它与具体的数据库管理系统和具体的计算机

7、平台无关;逻辑数据模型,是面向数据库系统的模型,着重于在数据库系统一级的实现;物理数据模型,是面向计算机物理实现的模型,此模型给出了数据模型在计算机上物理结构的表示。B选项正确。(11)以下叙述中错误的是()。A) 使用三种基本结构构成的程序只能解决简单问题B) 结构化程序由顺序、分支、循环三种基本结构组成C) C语言是一种结构化程序设计语言D) 结构化程序设计提倡模块化的设计方法答案:A【解析】使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A)错误。(12)以下选项中叙述正确的是A) 函数体必须由 开始B) C程序必须由main语句开始C) C

8、程序中的注释可以嵌套D) C程序中的注释必须在一行完成答案:A【解析】函数体是函数首部下面的花括号内的部分,所以函数体必须由开始,A选项正确。一个源程序文件可以包括预处理命令、全局声明、函数定义,程序总是从main函数开始执行的,不是main语句,B选项错误。C程序中的允许两种注释,以/开头的单行注释;以/*开始,以*/结束的块式注释,D选项错误。函数可以嵌套,注释不能嵌套,C选项错误。(13)以下叙述正确的是A) C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件B) C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.exe的可执行文件C) C编译程序把文件后缀

9、为.obj的二进制文件编译成文件后缀为.exe的可执行文件D) 链接程序把文件后缀为.c的源程序文件链接成文件后缀为.exe的可执行文件答案:A【解析】C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件,链接将一个或多个目标文件与程序用到的库文件连接起来,形成一个可以在操作系统直接运行的执行程序.exe,故排除B,C,D选项,答案选A选项。(14)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。A) 大写字母B) 下划线C) 数字字符D) 连接符答案:D【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D)选项中的连接符不合法

10、。(15)下列定义变量的语句中错误的是A) int _int;B) double int_;C) char For;D) float US$;答案:D【解析】C语言规定,变量命名必须符合标识符的命名规则D选项中包含了非法字符$,所以错误标识符由字母数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字大写字符与小写字符被认为是两个不同的字符,所以For不是关键字for(16)C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A) 关键字可用作用户标识符,但失去原有含义B) 预定义标识符可用作用户标识符,但失去原有含义C) 在标识符中大写字母和小写字母被认

11、为是相同的字符D) 用户标识符可以由字母和数字任意顺序组成答案:B【解析】关键字不可用作C语言的标识符,所以A错误在标识符中大写字母与小写字母作为不同字符处理,所以C错误标识符由下划线字母数字组成,且必须以下划线和字母开始,所以D错误(17)以下选项中合法的常量是A) 9 9 9B) 2.7eC) 0XabD) 123E 0.2答案:C【解析】A选项中含有非法的空格,所以错误C语言中十六进制常量以0x开头,所以C正确实型常量中e的前后必须均有数据,且其后必须为整数,所以B和D错误(17)有以下程序#include main() int k=33; printf(%d,%o,%xn, k, k,

12、 k);程序的运行结果是A) 33,41,21 B) 33,33,33 C) 41,33,21 D) 33,21,41答案:A【解析】整型常量有种表示方法,分别是十进制数表示法、八进制数表示法和十六进制数表示法。十进制整型常量没有前缀,输出格式控制符为%d;八进制整型常量以作为前缀,输出格式控制符为%o;十六进制整型常量以0X或0x作为前缀,输出格式控制符为%x。整型33用八进制表示为41,十六进制表示为21,A选项正确。(18)以下选项中,合法的一组C语言数值常量是()。A) 12.0Xa234.5e0B) 028.5e-3-0xfC) .1774e1.50abcD) 0x8A10,0003

13、.e5答案:A【解析】C语言中八进制整型常量的开头是数字0,十六进制整型常量的开头数字是0x。C语言中的实型常量有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以e或E后跟一个整数来表示以10为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B)选项中 028错误,八进制中没有数字8。C)选项中4e1.5中e后面的指数不是整数。D)选项中数字“10,000”不能用逗号。(19)已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是()。A) c=(A+c)%26-aB) c

14、=c+32C) c=c-A+aD) c=(c-A)%26 +a答案:A【解析】根据题意可知,小写字母比与之对应的大写字母的ASCII码大32A选项中字符A加上c表示的大写字符再对字母个数26取余,本身这个表达式没有任何含义所以选择A选项(20)若有定义:double a, b, c; 能正确给a,b,c输入数据的语句是()。A) scanf( %lf %lf %lf &a, &b, &c )B) scanf( %f %f %f,&a, &b, &c );C) scanf( %lf %lf %lf,a, b, c );D) scanf( %lf %lf %lf,&a, &b, &c );答案:D

15、【解析】%lf,%le是针对double的,如果仅用%f,输入的数据可能不完全接收,数据的精度可能不足。%f主要针对float类型的变量的输入,因此选项B错误。根据题目格式可知A,C错误。故答案为D选项。(21)若有以下程序段 double x=5.16894; printf(%fn, (int)(x*1000+0.5)/(double)1000 );则程序段的输出结果是A) 5.170000B) 5.175000C) 5.169000D) 5.168000答案:C【解析】%f的输出格式是以带小数点的数学形式输出浮点数。首先计算x*1000,结果为5168.94然后+0.5,结果为5169.4

16、4,然后进行强制类型转换,转换成整型为5169,然后除以双精度数据1000,结果也为双精度数据5.169,输出时按照%f的格式输出,所以输出结果为5.169000(22)若变量已正确定义,在if (W) printf(%dn ,k ); 中,以下不可替代W的是()。A) ab+cB) ch=getchar()C) a=b+cD) a+答案:A【解析】选项A)是非法的表达式,C语言中没有运算符。(23) #include main()int x, y, z; xy1; zx+,y+,+y; printf(%d,%d,%dn,x,y,z);程序运行后的输出结果是()。A) 2,3,3B) 2,3,

17、2C) 2,3,1D) 2,2,1答案:C【解析】zx+,y+,+y;因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式表示成(zx+),(y+),(+y)。然后从左向右先计算表达式zx+,因为x+先使用后自增,所以z的值为1,x的值为2。再计算逗号表达式第二个表达式y+,此时y的值为2,最后计算第三个表达式+y,y的值为3。(24)有如下程序#include main() int a = 0, b = 1; if (a+ & b+) printf(T); else printf(F); printf(a=%d,b=%dn, a, b);程序运行后的输出结果是A) Ta=1,b=2B

18、) Fa=0,b=2C) Fa=1,b=1D) Ta=0,b=1答案:C【解析】题目中判断if条件是否成立,a+先取值为0,则(a+ & b+)为0,且不计算b+,而后a自增得a=1,if条件不成立执行else函数体,输出F。最后执行语句printf(a=%d,b=%dn, a, b);按照格式输出a=1,b=1。C选项正确。(25)有以下程序 #include main() char *s=120119110; int n0,n1,n2,nn,i; n0=n1=n2=nn=i=0; do switch(si+) default : nn+; case 0 : n0+; case 1 : n1

19、+; case 2 : n2+; while(si); printf(n0=%d,n1=%d,n2=%d,nn=%dn,n0,n1,n2,nn); 程序的运行结果是()。A) n0=3,n1=8,n2=9,nn=1B) n0=2,n1=5,n2=1,nn=1C) n0=2,n1=7,n2=10,nn=1D) n0=4,n1=8,n2=9,nn=1答案:A【解析】本题执行过程为,s0=1,匹配case1,n1=1,n2=1;s1=2,匹配case2, n2=2;s2=0,匹配case0,n0=1,n1=2,n2=3;s3=1,匹配case1,n1=3,n2=4;s4=1,匹配case1,n1=4

20、,n2=5;s5=9,匹配default,nn=1,n0=2,n1=5,n2=6;s6=1,匹配case1,n1=6,n2=7;s7=1,匹配case1,n1=7,n2=8;s8=0,匹配case0,n0=3,n1=8,n2=9;s9=0,退出循环。输出n0,n1,n2,nn为3,8,9,1,A选项正确。(26)有以下程序#include main( ) int i,j = 0; char a = How are you, b10 = 0; for (i=0; ai; i+) if (ai = ) bj+ = ai+1; printf(%sn,b);程序运行后的输出结果是()。A) HayB)

21、 Howareyou C) we D) ay 答案:D【解析】for语句循环体执行功能是,每次当ai元素为 时,自动将ai下一个元素赋值给bj,赋值完成后,j值加1,因此ai的a和y分别赋值给b0,b1,答案为D选项。(27)有以下程序#include main() char a=3, b=6, c; c=(ab)2; printf(%d n, c );程序运行后的输出结果是()。A) 5B) 1C) 20D) 18答案:C【解析】运算符为按位异或运算符,即01=1,10=1,11=0,00=0,因此ab=101在进行操作,变为101002=2010,因此答案为C选项。(28)有如下程序#in

22、clude main() int i, *ptr; int array5 = 5,3,1; for (ptr=array, i=0; i5; i+, ptr+) if (*ptr = 0) putchar(X); else putchar(A + *ptr); printf(n);程序运行后的输出结果是A) FDBXXB) FFFXX C) FDBBBD) ABCDE答案:A【解析】在对数组进行初始化时,如果对数组的全部元素赋以初值,定义时可以不指定数组长度,如果被定义数组的长度与初值个数不同,则数组长度不能省略;如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数

23、组元素赋予初值,那么语言将自动对余下的元素赋初值,则array=5,3,1,0,0。程序执行过程为:执行for循环,将数组首地址赋给指针ptr,依次遍历每一个元素,如果数组元素为0则输出X,如果不为0则按照字母表输出字符A后第arrayi个字符。程序运行后的输出结果为:FDBXX,A选项正确。(29)有以下程序#include main() char *s=12134; int k=0, a=0 ; while( s k +1 ) k+; if ( k % 2 =0 ) a = a + ( s k - 0 +1 ) ; continue; a = a + ( s k - 0 ); printf

24、 ( k=%d a=%dn, k, a );程序运行后的输出结果是()。A) k=5 a=15B) k=4 a=12C) k=6 a=11D) k=3 a=14答案:B【解析】当k=0时,执行while一次,得到k=1,a为2;当k=1时,执行while一次,得到k=2,a为4;当k=2时,执行while一次,得到k=3,a为7;当k=3时,执行while一次,得到k=4,a为12;所以答案为B选项。(30)有以下程序 #include main() int a, b; for( a=1,b=1; a=20) break; if(b % 3=1) b=b+3; continue; b=b-5;

25、 printf(%dn,a); 程序的输出结果是()。A) 10B) 9C) 8D) 7答案:C【解析】首先注意for循环的控制条件 当b=20或者a100则跳出for循环 也即b20且a22时跳出循环,结束程序。所以b从1增加到22,有(22-1)/3=7,所以a=1+7=8. 因此C选项正确。(31)设有一个M*N的矩阵已经存放在一个M行N列的数组x中,且有以下程序段 sum=0; for(i=0;iM;i+) sum+=xi0+xiN-1; for(j=1;jN-1;j+) sum+=x0j+xM-1j;以上程序段计算的是A) 矩阵两条对角线元素之和B) 矩阵所有不靠边元素之和C) 矩阵

26、所有元素之和 D) 矩阵所有靠边元素之和答案:D【解析】程序执行过程为:第一个for循环实现对第一列和第N列求和。第二个for循环在上一个for循环结果上实现对第一行和第M行从第二个元素到第N-1个元素的求和,总体来说,就是矩阵所有靠边元素之和,D选项正确。(32)若有以下程序 #include void fun(int a , int n) int t, i, j; for ( i=0; in; i+=2 ) for ( j=i+2; j aj ) t=ai; ai=aj; aj=t; main() int c10=10,9,8,7,6,5,4,3,2,1,i; fun(c, 10); fo

27、r ( i=0; i10; i+ ) printf(%d, ci); printf(n); 则程序的输出结果是()。A) 1,10,3,8,5,6,7,4,9,2,B) 10,9,8,7,6,5,4,3,2,1,C) 10,1,8,3,6,5,4,7,2,9,D) 2,9,4,7,6,5,8,3,10,1,答案:D【解析】该题首先对一维数组进行初始化,c0到c9依次赋值为10到1;fun(c, 10);语句调用fun函数,fun函数的功能是将一维数组奇数位元素的数值由小到大排序;最后将排好序的新的一维数组进行输出因此D选项正确(33)若有以下程序 #include #define N 4 void fun( int aN, int b, int flag ) int i,j; for( i=0; iN; i+ ) bi = a0i; for( j=1; j aji) : (bi aji) bi = aji; main() int xNN=1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16, yN,i; fun(x, y, 1); for (i=0;iN; i+) printf(%d,

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

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