Tải bản đầy đủ (.docx) (28 trang)

Tổng hợp câu hỏi trắc nghiệm cho intern, fresher java, java core, oop

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (113.14 KB, 28 trang )

CÂU HỎI TRẮC NGHIỆM CHO FRESHER JAVA
Câu 1: Ai là người phát minh Java Programming?
A. Guido van Rossum
B. James Gosling
C. Dennis Ritchie
D. Bjarne Stroustrup
Đáp án: B
Giải thích: Ngơn ngữ lập trình Java được phát triển bởi James Gosling tại Sun
Microsystems vào năm 1995. James Gosling được biết đến là "bố của Java."

Câu 2: Câu nào đúng về Java?
A. Java là ngơn ngữ lập trình phụ thuộc vào chuỗi
B. Java là ngơn ngữ lập trình phụ thuộc vào mã nguồn
C. Java là ngơn ngữ lập trình phụ thuộc vào nền tảng
D. Java là ngơn ngữ lập trình độc lập với nền tảng
Đáp án: D
Giải thích: Java được gọi là "Ngơn ngữ Độc lập với Nền tảng" vì nó hoạt động chủ yếu
dựa trên nguyên tắc "biên dịch một lần, chạy ở mọi nơi."

Câu 3: Thành phần nào được sử dụng để biên dịch, gỡ lỗi và thực thi các chương
trình Java?
A. JRE
B. JIT
C. JDK
D. JVM
Đáp án: C


Giải thích: JDK là một thành phần cốt lõi của Môi trường Java và cung cấp tất cả các
công cụ, tệp thực thi và nhị phân cần thiết để biên dịch, gỡ lỗi và thực thi một Chương
trình Java.



Câu 4: Trong số các tính năng sau, cái nào khơng phải là một tính năng của Java?
A. Hướng đối tượng
B. Sử dụng con trỏ
C. Di động
D. Linh hoạt và Mở rộng
Đáp án: B
Giải thích: Con trỏ khơng phải là một tính năng của Java. Java cung cấp một lớp trừu
tượng hiệu quả để phát triển mà không sử dụng con trỏ.

Câu 5: Cái nào không thể được sử dụng làm tên biến trong Java?
A. Bộ nhận dạng và từ khóa (identifier & keyword)
B. Bộ nhận dạng (identifier)
C. Từ khóa (keyword)
D. Khơng có câu trả lời nào đúng
Đáp án: C
Giải thích: Từ khóa là các từ đặc biệt được dành riêng và khơng thể sử dụng làm tên biến
do chúng có ý nghĩa đặc biệt trong ngôn ngữ.

Câu 6: Phần mở rộng của các tệp mã nguồn Java là gì?
A. .js
B. .txt
C. .class
D. .java
Đáp án: D


Giải thích: Các tệp mã nguồn Java có phần mở rộng là .java.
Câu 7: Đoạn mã Java sau sẽ cho ra kết quả gì?
class increment {

public static void main(String args[])
{
int g = 3;
System.out.print(++g * 8);
}
}
A. 32
B. 33
C. 24
D. 25
Đáp án: A
Giải thích: Tốn tử ++ có ưu tiên cao hơn *, do đó g trở thành 4 và khi nhân với 8 sẽ cho
kết quả là 32.

Câu 8: Biến môi trường nào được sử dụng để đặt đường dẫn của Java?
A. MAVEN_Path
B. JavaPATH
C. JAVA
D. JAVA_HOME
Đáp án: D
Giải thích: JAVA_HOME được sử dụng để lưu trữ đường dẫn đến cài đặt Java.

Câu 9: Chương trình Java sau sẽ cho ra kết quả gì?
class output {


public static void main(String args[])
{
double a, b,c;
a = 3.0/0;

b = 0/4.0;
c=0/0.0;

System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
A. NaN
B. Infinity
C. 0.0
D. Tất cả đều đúng
Đáp án: D
Giải thích: Đối với hằng số dấu chấm động, chúng ta có giá trị hằng số để biểu diễn vơ
cực (ví dụ: 10/0.0) là vô cùng dương hoặc âm và cũng có NaN (khơng phải là một số cho
các giá trị không xác định như 0/0.0), nhưng đối với kiểu số ngun, chúng ta khơng có
bất kỳ hằng số nào, do đó chúng ta nhận được một ngoại lệ tốn học.

Câu 10: Trong số các khái niệm OOPS sau đây, khái niệm nào không phải là một
A. Polymorphism
B. Inheritance
C. Compilation
D. Encapsulation
Đáp án: C


Giải thích: Có 4 khái niệm OOPS trong Java. Inheritance, Encapsulation, Polymorphism
và Abstraction.
Câu 11: Sử dụng của từ khóa "this" trong Java không bao gồm việc:
A. Tham chiếu đến biến instance khi một biến local có cùng tên.

B. Truyền chính nó vào phương thức của cùng một lớp.
C. Truyền chính nó vào một phương thức khác.
D. Gọi một constructor khác trong chuỗi constructor.

Đáp án: B.

Giải thích: Từ khóa "this" trong Java được sử dụng để phân biệt giữa biến local và biến
được truyền vào phương thức. Nó khơng được sử dụng để truyền chính nó vào phương
thức của cùng một lớp.

Câu 12: Kết quả của chương trình Java sau đây là gì?
class variable_scope {
public static void main(String args[]) {
int x;
x = 5;
{
int y = 6;
System.out.print(x + " " + y);
}
System.out.println(x + " " + y);
}
}
A. Lỗi biên dịch
B. Lỗi thời gian chạy


C. 5 6 5 6
D. 5 6 5

Đáp án: A.


Giải thích: Bản in thứ hai khơng có quyền truy cập vào y vì phạm vi của y được giới hạn
trong khối được định nghĩa sau khi khởi tạo x.

Câu 13: Lỗi nào xuất hiện trong đoạn mã Java sau đây?
byte b = 50;
b = b * 50;
A. b không thể chứa giá trị 50
B. b không thể chứa giá trị 100, bị giới hạn bởi phạm vi của nó
C. Khơng có lỗi trong mã này
D. Tốn tử * đã chuyển b * 50 thành int, không thể chuyển đổi thành byte mà khơng cần
ép kiểu

Đáp án: D.

Giải thích: Trong biểu thức chứa int, bytes hoặc shorts, toàn bộ biểu thức được chuyển
thành int sau đó được đánh giá và kết quả cũng là kiểu int.

Câu 14: Loại đa hình nào sau đây là một loại đa hình trong lập trình Java?

A. Đa hình đa
B. Đa hình thời gian biên dịch
C. Đa hình đa cấp
D. Đa hình thời gian thực thi


Đáp án: B.

Giải thích: Có hai loại đa hình trong Java: đa hình thời gian biên dịch (overloading) và đa
hình thời gian thực thi (overriding).


Câu 15: Kết quả của chương trình Java sau đây là gì?
class leftshift_operator {
public static void main(String args[]) {
byte x = 64;
int i;
byte y;
i = x << 2;
y = (byte) (x << 2);
System.out.print(i + " " + y);
}
}
A. 0 256
B. 0 64
C. 256 0
D. 64 0

Đáp án: C.

Giải thích: Khơng có giải thích được cung cấp.
Câu 16: Kết quả của chương trình Java sau đây là gì?


class box
{
int width;
int height;
int length;
}
class main

{
public static void main(String args[])
{
box obj = new box();
obj.width = 10;
obj.height = 2;
obj.length = 10;
int y = obj.width * obj.height * obj.length;
System.out.print(y);
}
}
A. 100
B. 400
C. 200
D. 12

Đáp án: C.

Giải thích: Biến y được tính bằng tích của width, height, và length của đối tượng box obj.
Vì vậy, kết quả là 10 * 2 * 10 = 200.


Câu 17: Trong Java, "Truncation" là gì?

A. Gán giá trị dấu chấm động cho kiểu dữ liệu dấu chấm động
B. Gán giá trị dấu chấm động cho kiểu dữ liệu nguyên
C. Gán giá trị nguyên cho kiểu dữ liệu dấu chấm động
D. Gán giá trị nguyên cho kiểu dữ liệu dấu chấm động

Đáp án: B.


Giải thích: Truncation xảy ra khi một giá trị dấu chấm động được gán cho một biến kiểu
nguyên, và phần thập phân của giá trị dấu chấm động bị loại bỏ.

Câu 18: Kết quả của chương trình Java sau đây là gì?
class Output
{
public static void main(String args[])
{
int arr[] = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length - 2; ++i)
System.out.println(arr[i] + " ");
}
}
A. 1 2 3 4 5
B. 1 2 3 4
C. 1 2
D. 1 2 3


Đáp án: D.

Giải thích: Vịng lặp được thực hiện ba lần vì điều kiện là i < arr.length - 2, và mảng có
độ dài là 5.

Câu 19: Kết quả của đoạn mã Java sau đây là gì?
class abc
{
public static void main(String args[])
{

if(args.length > 0)
System.out.println(args.length);
}
}
A. Đoạn mã biên dịch và chạy nhưng khơng in ra bất cứ điều gì
B. Đoạn mã biên dịch, chạy và in ra 0
C. Đoạn mã biên dịch, chạy và in ra 1
D. Đoạn mã không biên dịch

Đáp án: A.

Giải thích: Vì khơng có đối số được truyền vào mã, độ dài của args là 0, vì vậy khơng có
gì được in ra.

Câu 20: Phần mở rộng của các lớp Java đã được biên dịch là gì?


A. .txt
B. .js
C. .class
D. .java

Đáp án: C.

Giải thích: Các tệp Java đã được biên dịch có phần mở rộng là .class.

Câu 21: Khi Java hết bộ nhớ, ngoại lệ nào được ném?

A. MemoryError
B. OutOfMemoryError

C. MemoryOutOfBoundsException
D. MemoryFullException

Đáp án: B.

Giải thích: Khi Java gặp sự cố với bộ nhớ, nó sẽ ném ngoại lệ OutOfMemoryError.

Câu 22: Kết quả của chương trình Java sau đây là gì?
class String_demo
{
public static void main(String args[])
{
char chars[] = {'a', 'b', 'c'};
String s = new String(chars);


System.out.println(s);
}
}
A. abc
B. a
C. b
D. c

Đáp án: A.

Giải thích: Hàm khởi tạo String(chars) là một constructor của lớp String, nó khởi tạo
chuỗi s với các giá trị được lưu trữ trong mảng ký tự chars, do đó s chứa "abc".

Câu 23: Các câu lệnh lựa chọn nào sau đây là lệnh lựa chọn trong Java?


A. break
B. continue
C. for()
D. if()

Đáp án: D.

Giải thích: Break và continue là các lệnh nhảy, và for là lệnh lặp.

Câu 24: Kết quả của chương trình Java sau đây là gì?
class recursion
{


int func (int n)
{
int result;
if (n == 1)
return 1;
result = func (n - 1);
return result;
}
}
class Output
{
public static void main(String args[])
{
recursion obj = new recursion() ;
System.out.print(obj.func(5));

}
}
A. 1
B. 120
C. 0
D. Khơng có gì được đề cập

Đáp án: A.

Giải thích: Hàm đệ quy tính giai thừa của 5, vì vậy kết quả là 1.

Câu 25: Kết quả của chương trình Java sau đây là gì?


class output
{
public static void main(String args[])
{
String c = "Hello i love java";
boolean var;
var = c.startsWith("hello");
System.out.println(var);
}
}
A. 0
B. true
C. 1
D. false

Đáp án: D.


Giải thích: Phương thức startsWith() là phân biệt chữ hoa chữ thường, vì vậy "hello" và
"Hello" được xem xét khác nhau, do đó giá trị của var là false.
Câu 26: Từ khóa nào sau đây để định nghĩa interfaces trong Java?

A. intf
B. Intf
C. interface
D. Interface

Đáp án: C


Giải thích: Từ khóa "interface" được sử dụng để định nghĩa giao diện trong Java.

Câu 27: Chương trình Java sau đây sẽ xuất ra kết quả gì?
class output
{
public static void main(String args[])
{
StringBuffer s1 = new StringBuffer("Quiz");
StringBuffer s2 = s1.reverse();
System.out.println(s2);
}
}
A. QuizziuQ
B. ziuQQuiz
C. Quiz
D. ziuQ


Đáp án: D

Giải thích: Phương thức reverse() đảo ngược tất cả các ký tự. Nó trả về đối tượng đã được
đảo ngược.

Kết quả:
$ javac output.java
$ java output
ziuQ


Câu 28: Chương trình Java sau đây sẽ xuất ra kết quả gì?
class Output
{
public static void main(String args[])
{
Integer i = new Integer(257);
byte x = i.byteValue();
System.out.print(x);
}
}
A. 257
B. 256
C. 1
D. 0

Đáp án: C

Giải thích: Phương thức i.byteValue() trả về giá trị của wrapper i dưới dạng giá trị byte.
Vì giá trị của i là 257, vượt qua phạm vi của byte là 256, nên giá trị 1 được trả về và lưu

vào biến x.

Kết quả:
$ javac Output.java
$ java Output
1
Câu 29: Chương trình Java sau đây sẽ xuất ra kết quả gì?


class Output
{
public static void main(String args[])
{
double x = 2.0;
double y = 3.0;
double z = Math.pow( x, y );
System.out.print(z);
}
}
A. 9.0
B. 8.0
C. 4.0
D. 2.0

Đáp án: B

Giải thích: Phương thức Math.pow(x, y) trả về giá trị của y mũ x, tức là x^y. Trong
trường hợp này, 2.0^3.0 = 8.0.

Kết quả:

$ javac Output.java
$ java Output
8.0
Câu 30: Lớp nào sau đây không phải là superclass của mọi lớp trong Java?

A. ArrayList


B. Abstract class
C. Object class
D. String

Đáp án: C

Giải thích: Lớp Object là superclass của mọi lớp trong Java.

Câu 31: Chương trình Java sau đây sẽ xuất ra kết quả gì?
class Output
{
public static void main(String args[])
{
double x = 3.14;
int y = (int) Math.ceil(x);
System.out.print(y);
}
}
A. 3
B. 0
C. 4
D. 3.0


Đáp án: C

Giải thích: Phương thức Math.ceil(double X) trả về số nguyên nhỏ nhất lớn hơn hoặc
bằng biến x.


Kết quả:
$ javac Output.java
$ java Output
4
Câu 32: Chương trình Java sau đây sẽ xuất ra kết quả gì?
import java.net.*;
class networking
{
public static void main(String[] args) throws Exception
{
URL obj = new URL(" />URLConnection obj1 = obj.openConnection();
int len = obj1.getContentLength();
System.out.print(len);
}
}
A. 127
B. 126
C. Lỗi thời gian chạy
D. Lỗi biên dịch

Đáp án: A

Giải thích: Khơng có giải thích.


Kết quả:


$ javac networking.java
$ java networking
127
Câu 33: Trong các công cụ sau đây, cái nào không phải là Java Profiler?

A. JProfiler
B. Eclipse Profiler
C. JVM
D. JConsole

Đáp án: C

Giải thích: JVM (Java Virtual Machine) khơng phải là một Java Profiler. Cịn lại là các
cơng cụ Java Profiler.

Câu 34: Chương trình Java sau đây sẽ xuất ra kết quả gì?
import java.net.*;
class networking
{
public static void main(String[] args) throws MalformedURLException
{
URL obj = new URL(" />System.out.print(obj.toExternalForm());
}
}
A. www.sanfoundry.com
B. />



×