全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某小组为程序中的变量取名,拟定了四组名称。其中全部既不是关键字、又符合 C 语言标识符命名规则的一组是( ) A. Float、_case、a3 B. int、_while、Total C. Double、for、my-id D. _2sum、switch、char
登录后查看答案
甲、乙两人对同一个 C 程序各说了一句话。程序内容为:第一行 #include <stdio.h>;第二行 /* 数据检查 */;第三行 int main();第四行 { printf("Pass"); }。甲说:"第二行的注释会被编译,若删去程序将无法通过编译。" 乙说:"若删去 printf 语句末尾的分号,程序将无法通过编译。" 下列判断正确的是:A. 甲对,乙错 B. 甲错,乙对 C. 甲对,乙也对 D. 甲错,乙也错
有如下程序段: int a; char ch; scanf("%d", &a); scanf("%c", &ch); 若运行时从键盘输入(每行末尾均为回车): 42 x 则第一条 scanf 执行后 a 的值为 42。关于第二条 scanf 执行后 ch 的值,下列说法正确的是: A. ch 为字符 'x' B. ch 为换行符,因为 %c 不会跳过缓冲区中残留的回车 C. ch 为空格字符 D. 程序因输入格式错误而终止
下列四个选项中,全部是 C 语言合法用户标识符(且均可作为变量名)的一组是( ) A. _sum、Int、num2 B. int、for、age C. 2score、name、S_1 D. student-name、Void、count1
有以下程序段: int i, j, s = 0; for (i = 1; i <= 5; i++) { for (j = 1; j <= 5; j++) { if (j > i) break; if (j % 2 == 0) continue; s += j; } } printf("%d", s); 程序执行后输出的是( ) A. 13 B. 16 C. 19 D. 25
某 JFrame 的内容面板采用 BorderLayout:向其 NORTH 区域添加面板 p1(使用 FlowLayout,内含按钮 a1、a2、a3),向其 CENTER 区域添加面板 p2(使用 GridLayout(2,2),依次放入按钮 c1、c2、c3、c4)。SOUTH、WEST、EAST 区域未添加任何组件。则窗口最终可见的按钮总数是( ) A. 6 个 B. 7 个 C. 8 个 D. 4 个
某类中定义了两个同步方法:synchronized void save() 与 void load(){ synchronized(this){ ... } },二者均访问同一共享变量 buffer。现有该类的同一个实例 obj,线程 t1 调用 obj.save(),线程 t2 调用 obj.load()。若将 load() 中的 synchronized(this) 改为 synchronized(new Object()),则关于两线程互斥关系的说法正确的是:A. 改动前后 t1 与 t2 都能互斥 B. 改动前后 t1 与 t2 都不能互斥 C. 改动前互斥,改动后不再互斥 D. 改动前不互斥,改动后互斥
某 Swing 程序要求:当用户单击“提交”按钮时,程序能自动做出响应。为此程序员编写了一个实现 ActionListener 接口的处理类,并调用按钮的 addActionListener 方法将其与按钮关联。从事件监听机制三要素的角度看,上述三个角色分别对应哪一组? A. 事件源=处理类,事件对象=按钮,监听器=用户单击动作 B. 事件源=按钮,事件对象=单击时系统生成的 ActionEvent 对象,监听器=实现 ActionListener 的处理类对象 C. 事件源=ActionEvent 对象,事件对象=按钮,监听器=addActionListener 方法 D. 事件源=用户,事件对象=处理类对象,监听器=按钮
在一个 JFrame 窗口中有一个 JButton 按钮,程序为该按钮注册了 ActionListener 监听器。当用户用鼠标点击该按钮时,按照事件监听机制三要素的协作流程,下列说法正确的是:A. 监听器先产生 ActionEvent 事件对象,再传递给按钮,按钮调用 actionPerformed 方法处理 B. 按钮作为事件源产生 ActionEvent 事件对象,系统将该事件对象传递给已注册的监听器并回调其 actionPerformed 方法 C. 事件对象被注册到监听器上,点击按钮后监听器主动查询按钮的状态 D. 点击按钮后系统直接调用 JFrame 的 paint 方法完成响应,与监听器无关
在 Swing 程序中,若希望单击某个按钮时执行指定操作,需要建立事件监听机制。关于该机制三要素的协作关系,下列说法正确的是:A. 监听器是事件发生的源头,事件对象注册在按钮上 B. 按钮是事件源,须向其注册监听器;单击时按钮生成 ActionEvent 对象并传递给监听器的 actionPerformed 方法 C. 事件对象是事件源,须向事件对象注册监听器并由其回调监听器的构造方法 D. 只需定义监听器类即可自动响应点击,无需将监听器与按钮关联
下列关于 Swing 组件层次结构的说法中,正确的是( ) A. JButton 可以脱离任何容器直接显示在屏幕上 B. JFrame 是顶层容器,基本组件须加入容器后随窗体可见才能显示 C. JLabel 只能加入 JPanel,不能加入 JFrame D. 窗体创建后默认是可见的,无需额外设置
下列关于 Java 中 sleep() 与 wait() 的说法,正确的是( ) A. sleep() 是 Object 类的方法,wait() 是 Thread 类的静态方法 B. sleep() 休眠时会释放对象锁,wait() 等待时不释放对象锁 C. wait() 必须在 synchronized 同步环境中调用,且需被 notify() 唤醒,而 sleep() 到时间后自动恢复且不释放锁 D. sleep() 和 wait() 都必须放在 synchronized 代码块中调用
某程序需要把 500 条日志记录逐条拼接成一份完整报告文本。方案甲使用 String,在循环中写 report = report + line;方案乙使用 StringBuilder,在循环中调用 append(line),最后调用 toString() 一次得到结果。关于两种方案在拼接过程中对象创建情况的比较,下列说法正确的是: A. 甲方案每次拼接都会新建一个 String 对象来存放结果,循环中产生大量临时对象;乙方案在追加过程中不新建 String,只在最后 toString() 时新建一次 B. 甲、乙两方案的对象创建次数相同,效率没有差别 C. 乙方案每次调用 append 都会新建一个 String 对象,比甲方案开销更大 D. String 内容可变,因此甲方案拼接时不会产生任何新对象
某方法声明为 static void load() throws IOException,方法体内依次写有:① 抛出 new FileNotFoundException("db");② 解引用一个为 null 的引用变量。下列关于编译与运行情况的说法,正确的是哪一项? A. 编译器要求必须处理①抛出的 FileNotFoundException,②则编译通过、运行时才抛出 NullPointerException B. ①和②都必须写 try-catch,否则编译不通过 C. FileNotFoundException 属于非受检异常,编译器不强制处理 D. NullPointerException 属于受检异常,方法必须声明 throws 才能通过编译
下列关于 Java 中 throw 与 throws 的说法,正确的是: A. throw 后面可以跟多个异常类型名,用逗号分隔;throws 后面只能跟一个异常对象 B. throw 只能出现在方法签名中,throws 只能出现在方法体内 C. throw 用于在方法体内抛出一个具体的异常对象,throws 用于在方法签名后声明该方法可能抛出的异常类型,且可一次声明多个 D. throw 抛出的异常会立即被方法自动捕获处理,无需 try-catch 或向上一层调用者传播
某 JFrame 内容面板采用 BorderLayout:北部放入一个使用 FlowLayout 的面板 P1(内含按钮 b1、b2、b3),中部放入一个使用 GridLayout(2,3) 的面板 P2(依次加入按钮 c1 至 c6,按行填充),南部直接加入按钮 s。窗口足够宽,初始显示时按钮 s 位于窗口的哪个位置? A. 最北端 B. 中部区域 C. 最南端 D. 最东端
在 Swing 程序中,用户单击按钮后系统会自动创建一个事件对象并传递给相应的方法进行处理。要实现按钮点击响应,必须完成的核心工作是:为按钮(事件源)注册一个监听器,并在监听器中实现对应的处理方法。关于这一机制,下列说法正确的是: A. 监听器必须注册在窗口上,而不能注册在按钮上 B. 触发事件后,系统回调执行的是监听器中实现的处理方法 C. 事件对象由程序员手动 new 出来并直接调用处理方法 D. 事件源、事件对象、监听器三者彼此独立,无需任何关联
某类 User 实现了 Serializable 接口,字段定义:private String name; private transient int age;。将一个 age=25、name="Tom" 的对象用 ObjectOutputStream 写入文件后,再用 ObjectInputStream 读出并强制类型转换恢复该对象,则恢复后的对象中 name 与 age 的状态分别是( ) A. name="Tom",age=25 B. name="Tom",age=0 C. name=null,age=25 D. name=null,age=0
某类定义了字段 int score = 95 和 transient int token = 12345,其类实现了 Serializable 接口。将该类的一个对象用 ObjectOutputStream 序列化写入文件后,再用 ObjectInputStream 反序列化恢复该对象,恢复后的 token 字段的值为( ) A. 12345 B. 95 C. 0 D. 抛出异常,无法恢复对象
在 Java 集合框架中,若某应用需要频繁按下标随机访问元素,且主要在列表尾部追加元素,应优先选用的实现类是( ) A. ArrayList,其底层数组支持按下标直接访问,尾部追加平均也很快 B. LinkedList,其链表结构在任何情况下都比数组快 C. LinkedList,因为它支持双向遍历 D. ArrayList,因为其底层是链表,头插效率高