第一篇:计算机二级考试C++考前测试题及答案
导语:C++是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。以下是小编为大家精心整理的2017年计算机二级考试C++考前测试题及答案,欢迎大家参考!
1).表达式10>5 && 6%3的值是
A.-1
B.非零值
C.0
D.1
正确答案:C
答案解析:目的,考查/和%运算符的意义。要点,逻辑与运算符为真的前提是两边的表达式都为真,本题中6%3的值为0,显然该表达式的值应该为0。考点,/是整除运算符,当两个操作数都为整数时,结果为整型,将小数部分舍去。
2).若有说明int a[3][4];,则a数组元素的非法引用是()
A.a[0][2*1]
B.a[1][3]
C.a[4-2][0]
D.a[0][4]
正确答案:D
3).下列是重载为非成员函数的运算符函数原型,其叶错误的是()。
A.Fraction operator+(Fraction,Fraction);
B.Fraction operator-(Fraction);
C.Fraction&operator=(Fraction&,Fraction);
D.Fraction&operator+=(Fraction&,Fraction);
正确答案:C
答案解析:由于取负运算符″一″是一元运算符,当作为成员函数重载时参数表中没有参数,那个唯一的操作数以this指针的形式隐藏在参数表中。
4).下列关于虚基类的描述中,错误的是()。
A.使用虚基类可以消除由多继承产生的二义性
B.构造派生类对象时,虚基类的构造函数只被调用一次
C.声明″class B: virtual public A″说明类B为虚基类
D.建立派生类对象时,首先凋用虚基类的构造函数
正确答案:C
答案解析:本题针对虚基类的定义及特点考查。虚基类的声明为″class:virt ual″,即选项C中的类A为虚基类。
5).静态成员函数没有()。
A.返回值
B.this指针
C.指针参数
D.返回类型
正确答案:B
答案解析:this指针是系统隐含的用于指向当前对象的指针。由于静态函数是同类中所有对象都共享的函数,在内存中只存在一份,不属于某个对象所有,所以静态函数没有this指针。
第二篇:全国计算机二级考试Access测试题及答案
计算机二级考试Access科目都考察哪些内容呢?下面是小编给大家整理了全国计算机二级考试Access测试题几答案,供大家参阅。
全国计算机二级考试Access测试题
(11)以下不属予数据库系统(DBS)的组成的是()。
A)数据库集合B)用户
C)数据库管理系统及相关软件
D)操作系统
(12)下面对查询功能的叙述中正确的是()。
A)在查询中,选择查询可以只选择表中的部分字段,通过选择一个表中的不同字段生成同一个表
B)在查询中,编辑记录主要包括添加记录、修改记录、删除记录和导入、导出记录
C)在查询中,查询不仅可以找到满足条件的记录,而且还可以在建立查询的过程中进行各种统计计算
D)以上说法均不对
(13)以下接口中,不属于VBA提供的数据访问接口的是()。
A)开放数据库互联
B)数据访问对象
C)数据传输对象
D)Active数据对象
(14)下列不属于Access中定义l三关键字是()。
A)单字段
B)多字段
C)空字段
D)自动编号
(15)某数据库的表中要添加Intcmet站点的网址,应该采用的字段类型是()。
A)OLE对象数据类型
B)超级链接数据类型
C)查阅向导数据类型
D)自动编号数据类型
(16)窗体是Access数据库中的一种对象,以下()不是窗体具备的功能。
A)输入数据
B)编辑数据
C)输出数据
D)显示和查询表中的数据
(17)“特殊效果’,属性值用于设置控件的显示特效,卜.列属于“特殊效果,的属性值的是()
①平面②颜色③凸起④蚀刻⑤透明⑥阴影⑦凹陷⑧凿痕⑨倾斜
A)①②③④⑤⑥
B)①③④⑤⑥⑦
C)①④⑤⑥⑦⑧⑨
D)①③④⑤⑥⑦⑧
(18)用于实现报表的分组统计数据操作区间的是()。
A)报表的主体区域
B)页面页眉或页面页脚区域
C)报表页眉或报表页脚区域
D)组页眉或组页脚区域
(19)查询能实现的功能有()。
A)选择字段、选择记录、编辑记录、实现计算、建立新表、建立数据库
B)选择字段、选择记录、编辑记录、实现计算、建立新表、更新关系
C)选择字段、选择记录、编辑记录、实现计算、建立新表、设计格式
D)选择字段、选择记录、编辑记录、实现计算、建立新表、建立基于查询的报表和窗体
(20)下面示例中准则的功能是()。
A)查询1999年1月之前参加工作的职工
B)查询1999年12月之后参加工作的职工
C)查询1999年参加工作的职工
D)查询1999年1月和2月参加工作的职工
计算机二级考试Access测试题答案
(11)D)【解析】数据库系统是由数据库集台、用户和数
据库管理系统及相关软件组成。
(12)C)【解析】选择A询是根据指定的查询准则,从一个或多个表中获取数据并显示结果。编辑记录要包括添加记录、修改记录和删除记录。在查询中,查询不仅可以找到满足条件的记录,而且还可以在建立查询的过程中进行各种统计运算。
(13)C)【解析】本题考查VBA中数据库访问接口的知识。在VBA中,数据库访问接口有3种:开放数据库互联(ODBC)、数据访问对象(DA0)和Active数据对象(ADO)。
(14)C)【解析】本题考查的是主关键字的知识。Access数据库中的每个表都有一个或一组字段能惟一标识每条记录。这个字段称为主关键字。Access不允许在主关键字字段中存在重复值和空值。自动编号数据类型是每次向表中添加新记录时自动生成的,但是一旦被指定就会永久的与记录连接,即使删除了某条记录,Access也不会对表中的自动编号字段重新编号。当表中没有设置其他主关键字时,在保存表时会提示是否自动创建主键,此时单击“是”按钮,将会为表创建一个自动编号字段作为主关键字。
(15)B)【解析】超级链接型的字段是用来保存超级链接的。超级链接型字段包含作为超级链接地址的文本或以文本形式存储的字符与数字的组合。超级链接地址是通往对象、文档、Web页或其他目标的路径。
(16)C)【解析】在Access数据库中用户可以利用窗体
输入数据、编辑数据、显示和查询表中数据。
(17)D)【解析】“特殊效果”值用于设置控件的显示特
效,包括“凹陷”、“凿痕”等,但是不包括“颜色”。
(18)D)【解析】分组是指报表设计时按选定的一个或多个字段值是否相等而将记录划分成组,字段值不相等的记录归为不司的组,通过分组可以实现同组数据的汇总和输出,组页眉或组页脚区域主要用于实现报表的分组统计数据。
(19)D)【解析】查询最主要的目的是根据指定的条件对表或者其他查询进行检索,筛选出符合条件的记录,构成一个新的数据集合,从而方便对数据表进行查看和分析。利用查询可以实现选择字段、选择记录、编辑记录、实现计算、建立新表、建立基于查询的报表和窗体等功能。
(20)C)【解析】工作时间定义为1999年1月1曰到l2月31日,为查询l999年
第三篇:计算机一级考试测试题及答案
全国计算机等级考试是社会考试,就考试性质而言,它是一种重视应试人员对计算机和软件的实际运用能力的考试。考试分为四个等级,不同等级的内容不同,一级主要考核微型计算机基础知识和使用办公软件及因特网(Internet)的基本技能,那么计算机一级考试会怎么考?以下仅供参考!
1.关于操作系统的叙述中,正确的是______。
A、操作系统是计算机软件系统中的核心软件
B、操作系统属于应用软件
C、Windows是PC机唯一的操作系统
D、操作系统的五大功能是:启动、打印、显示、文件存取和关机
解析: 操作系统是运行在计算机硬件上的、最基本的系统软件,是系统软件的核心;操作系统的5大功能模块即:处理器管理、作业管理、存储器管理、设备管理和文件管理;操作系统的种类繁多,微机型的DOS、Windows操作系统属于这一类。
2.显示器的主要技术指标之一是______。
A、分辨率
B、亮度
C、彩色
D、对比度
解析: 显示器的主要技术指标是像素、分辨率和显示器的尺寸。
3.用MIPS衡量的计算机性能指标是______。
A、处理能力
B、存储容量
C、可靠性
D、运算速度
解析: 运算速度:运算速度是指计算机每秒中所能执行的指令条数,一般用MIPS为单位。
字长:字长是CPU能够直接处理的二进制数据位数。常见的微机字长有8位、16位和32位。
内存容量:内存容量是指内存储器中能够存储信息的总字节数,一般以KB、MB为单位。
传输速率用bps或kbps来表示。
4.制数100转换成无符号二进制整数是______。
A、011010
1B、01101000
C、01100100
D、01100110
解析: 数制也称计数制,是指用同一组固定的字符和统一的规则来表示数值的方法。十进制(自然语言中)通常用0到9来表示,二进制(计算机中)用0和1表示,八进制用0到7表示,十六进制用0到F表示。
(1)十进制整数转换成二进制(八进制、十六进制),转换方法:用十进制余数除以二(八、十六)进制数,第一次得到的余数为最低有效位,最后一次得到的余数为最高有效位。
(2)二(八、十六)进制整数转换成十进制整数,转换方法:将二(八、十六)进制数按权展开,求累加和便可得到相应的十进制数。
(3)二进制与八进制或十六进制数之间的转换二进制与八进制之间的转换方法:3位二进制可转换为1位八进制,1位八进制数可以转换为3位二进制数。
二进制数与十六进制之间的转换方法:4位二进制可转换为1位十六进制数,1位十六进制数中转换为4位二进制数。
因此:100/2=50……0
50/2=25……0
25/2=12……
112/2=6……0
6/2=3……0
3/2=1……1
1/2=0……1
5.通常所说的计算机的主机是指______。
A、CPU和内存
B、CPU和硬盘
C、CPU、内存和硬盘
D、CPU、内存与CD-ROM
解析:
计算机的结构部件为:运算器、控制器、存储器、输入设备和输出设备。“运算器、控制器、存储器”是构成主机的主要部件,运算器和控制器又称为CPU。
6.办公室自动化(OA)是计算机的一项应用,按计算机应用的分类,它属于______。
A、科学计算
B、辅助设计
C、实时控制
D、信息处理
解析:当今社会,计算机用于信息处理,对办公室自动化、管理自动化乃至社会信息化都有积极的促进作用。
7.下列叙述中,正确的是______。
A、用高级语言编写的程序称为源程序
B、计算机能直接识别、执行用汇编语言编写的程序
C、机器语言编写的程序执行效率最低
D、不同型号的CPU具有相同的机器语言
解析:计算机能直接识别、执行用机器语言编写的程序,所以选项B是错误的。
机器语言编写的程序执行效率是所有语言中最高的,所以选项C是错误的。
由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机执行,必须另编程序,不同型号的CPU不能使用相同的机器语言,所以选项D是错误的。
8.某800万像素的数码相机,拍摄照片的最高分辨率大约是______。
A、3200×2400
B、2048×1600
C、1600×1200
D、1024×768
解析:100万像素的数码相机的最高可拍摄分辨率大约是1024×768;
200万像素的数码相机的最高可拍摄分辨率大约是1600×1200;
300万像素的数码相机的最高可拍摄分辨率大约是2048×1600;
800万像素的数码相机的最高可拍摄分辨率大约是3200×2400。
9.下列选项属于面向对象的程序设计语言是______。
A、Java和C
B、Java和C++
C、VB和C
D、VB和Word
解析: 一般认为,较典型的面向对象语言有:simula 67、Smalltalk、EIFFEL、C++、Java、C#。
10下列软件中,属于应用软件的是______。
A、操作系统
B、数据库管理系统
C、程序设计语言处理系统
D、管理信息系统
解析: 系统软件和应用软件是组成计算机软件系统的两部分。系统软件主要包括操作系统、语言处理系统、系统性能检测和实用工具软件等,数据库管理系统也属于系统软件。
11.1GB的准确值是______。
A、1024×1024 Bytes
B、1024 KB
C、1024 MB
D、1000×1000 KB
解析: 在计算机中通常使用三个数据单位:位、字节和字。
位的概念是:最小的存储单位,英文名称是bit,常用小写b或bit表示。
用8位二进制数作为表示字符和数字的基本单元,英文名称是byte,称为字节。通常用“B”表示。
1B(字节)=8b(位)
1KB(千字节)=1024B(字节)
1MB(兆字节)=1024KB(千字节)
1GB(吉字节)=1024MB(兆字节)
字长:字长也称为字或计算机字,它是计算机能并行处理的二进制数的位数。
12.计算机网络是计算机技术和______。
A、自动化技术的结合B、通信技术的结合C、电缆等传输技术的结合D、信息技术的结合解析:所谓计算机网络是指分布在不同地理位置上的具有独立功能的多个计算机系统,通过通信设备和通信线路相互连接起来,在网络软件的管理下实现数据传输和资源共享的系统,是计算机网络技术和通信技术相结合的产物。
13.硬盘属于______。
A、内部存储器
B、外部存储器
C、只读存储器
D、输出设备
解析:硬盘通常用来作为大型机、服务器和微型机的外部存储器。
14.计算机中,负责指挥计算机各部分自动协调一致地进行工作的部件是______。
A、运算器
B、控制器
C、存储器
D、总线
解析:控制器主要是用以控制和协调计算机各部件自动、连续的执行各条指令。
15在标准ASCII码表中,已知英文字母K的十六进制码值是4B,则二进制ASCII码1001000对应的字符是______。
A、G
B、H
C、I
D、J
解析:ASCII码本是二进制代码,而ASCII码表的排列顺序是十进制数,包括英文小写字母、英文大写字母、各种标点符号及专用符号、功能符等。字母K的十六进制码值4B转化为二进制ASCII码值为1001011,而1001000=1001011-011(3),比字母K的ASCII码值小3的是字母H,因此二进制ASCII码1001000对应的字符是H。
16.为防止计算机病毒传染,应该做到______。
A、无病毒的U盘不要与来历不明的U盘放在一起
B、不要复制来历不明U盘中的程序
C、长时间不用的U盘要经常格式化
D、U盘中不要存放可执行程序
解析:病毒可以通过读写U盘感染病毒,所以最好的方法是少用来历不明的U盘。
17.目前广泛使用的Internet,其前身可追溯到______。
A、ARPANET
B、CHINANET
C、DECnet
D、NOVELL
解析:Internet最早来源于美国国防部高级研究计划局DARPA的前身ARPA建立的ARPAnet,该网于1969年投入使用。最初,ARPAnet主要用于军事研究目的。
18.下列关于电子邮件的叙述中,正确的是______。
A、如果收件人的计算机没有打开时,发件人发来的电子邮件将丢失
B、如果收件人的计算机没有打开时,发件人发来的电子邮件将退回
C、如果收件人的计算机没有打开时,当收件人的计算机打开时再重发
D、发件人发来的电子邮件保存在收件人的电子邮箱中,收件人可随时接收
解析: 电子邮件首先被送到收件人的邮件服务器,存放在属于收件人的E-mail邮箱里。所有的邮件服务器都是24小时工作,随时可以接收或发送邮件,发信人可以随时上网发送邮件,收件人也可以随时连接因特网,打开自己的邮箱阅读邮件。
19.CD光盘上标记有“CD-RW”字样,“RW”标记表明该光盘是______。
A、只能写入一次,可以反复读出的一次性写入光盘
B、可多次擦除型光盘
C、只能读出,不能写入的只读光盘
D、其驱动器单倍速为1350KB/S的高密度可读写光盘
解析:CD-RW,是CD-ReWritable的缩写,为一种可以重复写入的技术,而将这种技术应用在光盘刻录机上的产品即称为CD-RW。
20.第二代电子计算机的主要元件是______。
A、继电器
B、晶体管
C、电子管
D、集成电路
解析:目前微机中所广泛采用的电子元器件是:大规模和超大规模集成电路。电子管是第一代计算机所采用的逻辑元件(1946-1958)。晶体管是第二代计算机所采用的逻辑元件(1959-1964)。小规模集成电路是第三代计算机所采用的逻辑元件(1965-1971)。大规模和超大规模集成电路是第四代计算机所采用的逻辑元件(1971-今)。
第四篇:计算机二级JAVA考试巩固试题及答案
计算机二级考试采用全国统一命题、统一考试的形式。以下是为大家分享的计算机二级JAVA考试巩固试题及答案,供大家参考借鉴,欢迎浏览!
1).使得线程放弃当前分得的CPU 时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU时间的方法是()。
A.ti me()
B.yield()
C.load()
D.mi n()
正确答案:B
答案解析:本题考查线程阻塞的概念。yield()方法使得线程放弃当前分得的CPU 时间,但是不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU 时间。调用yield()的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程。
2).下列变量的定义中,错误的是()。
A.i nt x=3;
B.float f ;d ;
C.Stri ng s ="Hello";
D.boolean b =true ;
正确答案:B
答案解析:正确的方法是float f,d ;,中间应该使用“,”而不是“;”,因为在Java 中“;”表示一个语句结束。
3).设关系R和S的元组个数分别为100和300,关系T是R与S的笛卡尔积,则T的元组个数是
A.400
B.10000
C.30000
D.90000
正确答案:C
4).下列方法中,不属于类String的方法是()。
A.toLowerCase()
B.valueOf()
C.charAt()
D.append()
正确答案:D
答案解析:String的方法中,toLowerCase()方法是转换成小写,valueof()方法是获得相 应数值,charAt()方法是提取字符串中指定位置的字符。append()是StringBuffer的方法。
5).某二叉树结点的前序序列为E、A、C、B、D、G、F,对称序列为A、B、C、D、E、F、G。该二叉树结点的后序序列为
A.B、C、F、G、E
B.C、F、A、G、E
C.E、G、F、A、B
D.E、G、A、C、F、B
正确答案:A
6).下列关于正则表达式的说法,不正确的是()。
A.在J2SE 1.4中的正则表达式包中有一个Pattern类
B.在J2SE 1.4中的正则表达式包中有一个Macher类
C.在J2SE 1.4中的正则表达式包名为javA.util.regex
D.以上说法都不对
正确答案:C
答案解析:本题考查J2SE l.4中的正则表达式。记忆型题目,没有太大难度,考生记住即可。java.util.regex和java.net.URL类相结合,用于网络上的字符输入流的模式字符串搜索中。
第五篇:计算机二级C语言测试题及答案解析
C语言的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,下面给大家整理了计算机二级C语言测试题及答案,欢迎阅读!
计算机二级C语言测试题及答案解析
1.(A)是构成C语言程序的基本单位。
A、函数
B、过程
C、子程序
D、子例程
2.C语言程序从 C 开始执行。
A、程序中第一条可执行语句
B、程序中第一个函数
C、程序中的main函数
D、包含文件中的第一个函数
3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行
B、在C语言程序中,要调用的函数必须在main()函数中定义
C、C语言程序总是从main()函数开始执行
D、C语言程序中的main()函数必须放在程序的开始部分
4.下列关于C语言的说法错误的是(B)。
A、C程序的工作过程是编辑、编译、连接、运行
B、C语言不区分大小写。
C、C程序的三种基本结构是顺序、选择、循环
D、C程序从main函数开始执行
5.下列正确的标识符是(C)。
A、-a
1B、a[i]
C、a2_i
D、int t
5~8题为相同类型题
考点:标识符的命名规则
只能由字母、数字、下划线构成数字不能作为标识符的开头
关键字不能作为标识符
选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)
6.下列C语言用户标识符中合法的是(B)。
A、3ax
B、x
C、case
D、-e2 E)union
选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);
7.下列四组选项中,正确的C语言标识符是(C)。
A、%x
B、a+b
C、a12
3D、12
3选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)
8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBc
B、Iam one_half start$it 3pai
C、str_1 Cpp pow while
D、Pxq My->book line# His.age
选项B中的“”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)
9.C语言中的简单数据类型包括(D)。
A、整型、实型、逻辑型
B、整型、实型、逻辑型、字符型
C、整型、字符型、逻辑型
D、整型、实型、字符型
10.在C语言程序中,表达式5%2的结果是 C。
A、2.5B、2C、1D、3%为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;
/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=
211.如果int a=3,b=4;则条件表达式“aA、3B、4C、0
D、1详见教材P97.表达式1?表达式2:表达式
3先计算表达式1,若表达式1成立,则选择计算表达式2,并表达式2的值作为整个大表达式的值;
若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值
此题中的aa为3,b为4。a12.若int x=2,y=3,z=4 则表达式x
A、4B、3C、2D、0
E)
113.C语言中,关系表达式和逻辑表达式的值是(B)。
A、0
B、0或
1C、1D、‘T’或’F’
14.下面(D)表达式的值为4.A、11/
3B、11.0/
3C、(float)11/
3D、(int)(11.0/3+0.5)
14~16题为同一类型
详见教材P54~56.(1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。
(2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。
选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666
选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同
选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为
415.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(B)
A、b=1.0/a
B、b=(float)(1/A、C、b=1/(float)a
D、b=1/(a*1.0)
16.若“int n;float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)
A、1B、4C、4.33333
3D、4.6
“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为
117.以下对一维数组a的正确说明是: D
A、char a(10);
B、int a[];
C、int k=5,a[k];
D、char a[3]={‘a’,’b’,’c’};
详见教材P143~144,一维数组的定义、初始化
类型符 数组名 [常量表达式]
类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。
选项A,常量表达式只能放在中括号 [ ]中
选项B,只有在对数组初始化(即赋值)的时候才可以省略数组的长度,B中并未对a进行初始化。
选项C,常量表达式不能为变量。
18.以下能对一维数组a进行初始化的语句是:(C)
A、int a[5]=(0,1,2,3,4,)
B、inta(5)={}
C、int a[3]={0,1,2}
D、int a{5}={10*1}
详见教材P145,一维数组的定义、初始化
选项B,D,常量表达式只能放在中括号 [ ]中
选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了().19.在C语言中对一维整型数组的正确定义为 D。
A、int a(10);
B、int n=10,a[n];
C、int n;a[n];
D、#define N 10
int a[N];
20、已知:int a[10];则对a数组元素的正确引用是(D)。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
详见教材P144,数组元素的引用
数组名[下标]
引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数
int a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素;a[1] 表示组中第2个元素;a[2] 表示组中第3个元素;......;a[9] 表示组中第10个元素.选项A,超过了数组a的逻辑地址下标范围;
选项B,逻辑地址下标只能为整数
选项C,逻辑地址下标只能放在[ ]中
21.若有以下数组说明,则i=10;a[a[i]]元素数值是(C)。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A、10
B、9
C、6
D、5先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].a[10]对应下面数组中的元素为9.因此a[a[i]]即为a[9]
a[9]对应下面数组中的元素为6.因此a[9]即为6
22.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为:(B)
A、2B、3C、4D、无确定值7
D、3 6 9
二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行
23.对二维数组的正确定义是(C)
详见教材P149~152,二维数组的定义、初始化
类型符 数组名 [常量表达式][常量表达式]
二维数组可以看做是矩阵
类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。
一维数组初始化时可以省略数组长度
二维数组初始化时可以省略行数,但不能省略列数
选项A,B,都省略了列数
选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中
A、int a[ ][ ]={1,2,3,4,5,6};
B、int a[2] []={1,2,3,4,5,6};
C、int a[ ] [3]={1,2,3,4,5,6};
D、int a[2,3]={1,2,3,4,5,6};
24.已知int a[3][4];则对数组元素引用正确的是__C___
A、a[2][4]
B、a[1,3]
C、a[2][0]
D、a(2)(1)
详见教材P150,数组元素的引用
数组名[下标] [下标]
引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数
第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。
本题图示详见P149图6.7
因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;
选项A,列逻辑地址下标超过范围
选项B,D,的引用形式不正确。
25.C语言中函数返回值的类型是由 A 决定的.A、函数定义时指定的类型
B、return语句中的表达式类型
C、调用该函数时的实参的数据类型
D、形参的数据类型
26.在C语言中,函数的数据类型是指(A)
A、函数返回值的数据类型
B、函数形参的数据类型
C、调用该函数时的实参的数据类型
D、任意指定的数据类型
27.在函数调用时,以下说法正确的是(B)
A、函数调用后必须带回返回值
B、实际参数和形式参数可以同名
C、函数间的数据传递不可以使用全局变量
D、主调函数和被调函数总是在同一个文件里
28.在C语言中,表示静态存储类别的关键字是:(C)
A、auto
B、register
C、static
D、extern
29.未指定存储类别的变量,其隐含的存储类别为(A)。
A、auto
B、static
C、extern
D、register
30.若有以下说明语句:
struct student
{ int num;
char name[ ];
float score;
}stu;
则下面的叙述不正确的是:(D)
A、struct是结构体类型的关键字
B、struct student 是用户定义的结构体类型
C、num, score都是结构体成员名
D、stu是用户定义的结构体类型名
31.若有以下说明语句:
struct date
{ int year;
int month;
int day;
}brithday;
则下面的叙述不正确的是__C___.A、struct是声明结构体类型时用的关键字
B、struct date 是用户定义的结构体类型名
C、brithday是用户定义的结构体类型名
D、year,day 都是结构体成员名
32.以下对结构变量stul中成员age的非法引用是 B
struct student
{ int age;
int num;
}stu1,*p;
p=&stu1;
A、stu1.age
B、student.age
C、p->age
D、(*p).age
33.设有如下定义:
struck sk
{ int a;
float b;
}data;
int *p;
若要使P指向data中的a域,正确的赋值语句是 C
A、p=&a;
B、p=datA、a;
C、p=&datA、a;
D、*p=datA、a;
34.设有以下说明语句:
typedef struct stu
{ int a;
float b;
} stutype;
则下面叙述中错误的是(D)。
A、struct是结构类型的关键字
B、struct stu是用户定义的结构类型
C、a和b都是结构成员名
D、stutype是用户定义的结构体变量名
35.语句int *p;说明了 C。
A、p是指向一维数组的指针
B、p是指向函数的指针,该函数返回一int型数据
C、p是指向int型数据的指针 // 指针的定义教材P22
3D、p是函数名,该函数返回一指向int型数据的指针
36.下列不正确的定义是(A)。
A、int *p=&i,i;
B、int *p,i;
C.int i,*p=&i;
D、int i,*p;
选项A先定义一个整型指针变量p,然后将变量i的地址赋给p。然而此时还未定义变量i因此编译器无法获得变量i的地址。(A与C对比,选项C先定义变量i,则在内存中为i分配空间,因此i在内存空间的地址就可以确定了;然后再定义p,此时可以为p赋i的地址,C正确)
37.若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是:(D)
A、p=q
B、*p=*q
C、n=*q
D、p=n
p,q同为整型指针变量,二者里面仅能存放整型变量的地址。
选项A,q中为地址,因此可将此地址赋给p
选项B,*p表示p所指向对象n的内容,即一个整数;*q表示q所指向对象的内容,由于在定义q时为其初始化,将p中n的地址给q,因此p中存放n的地址,*q表示q所指向对象n的内容.因此*p=*q 相当于 n=n;
选项C,n=*q 等价于n=n;
选项D,p中只能存放地址,不能将n中的整数值赋给p
38.有语句:int a[10],;则 B 是对指针变量p的正确定义和初始化。
A、int p=*a;
B、int *p=a;
C、int p=&a;
D、int *p=&a;
选项A,a是数组名,不是指针变量名,因此不可用*标注数组名a
选项C,a是数组名,数组名就是地址,无需再用地址符号。而且在定义指针变量p时,应在变量名前加*,标明p是指针变量
选项D,a是数组名,数组名就是地址,无需再用地址符号。
39.若有说明语句“int a[5],*p=a;”,则对数组元素的正确引用是(C)。
A、a[p]
B、p[a]
C、*(p+2)
D、p+
2首先定义一个整型数组a,a的长度为5,然后定义一个指针变量p,并同时对p进行初始化,将数组a的地址赋给p。因此此时p中存放的数组a的首地址,即数组中第一个元素a[0]的地址。
对于数组元素下标的引用(详见p144), 一般形式 数组名[下标] 其中下标为逻辑地址下标,从0开始计数,方括号中的下标可以是变量,可以是表达式,但结果一定要是整数。
选项A,p中存放的是地址,不是整数,不能做数组元素的下标
选项B,a是数组名,数组名就是地址,不是整数,不能做数组元素的下标
选项C,(重点!!详见p231~234)p+2表示指向同一数组中的下两个元素的地址,当前p指向a[0],则p+2表示a[2]的地址,因此*(p+2)表示a[2]的内容
40.有如下程序
int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;
则数值为9的表达式是 B
A、*P+9
B、*(P+8)
C、*P+=9
D、P+8
(重点!!详见p231~234)
首先定义一个整型数组a,a的长度为5,然后定义一个指针变量P,并同时对P进行初始化,将数组a的地址赋给P。因此此时P中存放的数组a的首地址,即数组中第一个元素a[0]的地址。
数组中9对应的是a[8], 选项B,P+8表示数组中后8个元素的地址,即a[8]的地址。*(P+8)则表示该地址内所存放的内容,即a[8]的值。
选项A,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值1.*P+9=1+9=10
选项C,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值。因此*P+=9 即*P =*P+9, 等价于a[0]=a[0]+9.选项D,P+8表示数组中后8个元素的地址,即a[8]的地址,而非a[8]中的值。
41.在C语言中,以 D 作为字符串结束标志
A、’’
B、’ ’
C、’0’
D、’ ’
42.下列数据中属于“字符串常量”的是(A)。
A、“a”
B、{ABC}
C、‘abc ’
D、‘a’
若干个字符构成字符串
在C语言中,用单引号标识字符;用双引号标识字符串
选项B,C,分别用{}和’’标识字符串
选项D,标识字符。
43.已知char x[]=”hello", y[]={'h','e','a','b','e'};, 则关于两个数组长度的正确描述是 B.A、相同
B、x大于y
C、x小于y
D、以上答案都不对
C语言中,字符串后面需要一个结束标志位' ',通常系统会自动添加。
对一维数组初始化时可采用字符串的形式(例如本题数组x),也可采用字符集合的形式(例如本题数组y)。在以字符串形式初始化时,数组x不尽要存储字符串中的字符,还要存储字符串后的结束标志位,因此数组x的长度为6;在以字符集合形式初始化时,数组y,仅存储集合中的元素,因此数组y长度为5