Câu 1: Hãy chọn phương án đúng. Biểu thức: 25 mod 3 + 5 / 2 * 3 có giá trị là : A. 8.0; B. 15.5; C. 15.0; D. 8.5;
Trả lời: + Trong Pascal phép Mod là phép chia lấy phần dư, phép (/) là phép chia, (*) là phép nhân trong toán học. + Thứ tự thực hiện: Trong ngoặc trước, nếu không có ngoặc thực hiện nhân, chia, lấy phần nguyên (div), lấy phần dư (mod) thực hiện trước và cộng, trừ thực hiện sau. Vậy giá trị của biểu thức là : 25 mod 3 + 5 / 2 * 3 = 1 + 2.5 x 3= 1+ 7.5 = 8.5 Đáp án: D Câu 2: Những biểu thức nào sau đây có giá trị TRUE ? A. ( 20 > 19 ) and ( ‘B’ < ‘A’ ); B. ( 4 > 2 ) and not( 4 + 2 < 5 ) or ( 2 >= 4 div 2 ); C. ( 3 < 5 ) or ( 4 + 2 < 5 ) and ( 2 < 4 div 2 ); D. 4 + 2 * ( 3 + 5 ) < 18 div 4 * 4 ;
Trả lời: Trong pascal phép and, or, not có nghĩa là phép và, hoặc, phủ định trong toán học. vì vậy phép toán 4 > 2→ đúng Phép toán not( 4 + 2 < 5 ) nghĩa là phủ định của 6 <5 là 6 > 5 → đúng. Phép toán ( 2 >= 4 div 2 ) nghĩa là 2>=2→ đúng ⇒ Biểu thức có giá trị TRUE (đúng) là ( 4 > 2 ) and not( 4 + 2 < 5 ) or ( 2 >= 4 div 2 ); Đáp án: B Câu 3: Biểu thức nào sau kiểm tra "n là một số nguyên dương chẵn"? A. (n>0) and (n mod 2 = 0) B. (n>0) and (n div 2 = 0) C. (n>0) and (n mod 2 <> 0) D. (n>0) and (n mod 2 <> 0)
Trả lời: N là một số nguyên dương chẵn → n>0 và n chia hết cho 2 hay số dư bằng 0. Tương đương với phép mod trong Pascal ( n mod 2 = 0). Đáp án: A Câu 4: Cho biểu thức sau: (a mod 3 = 0) and (a mod 4 = 0) Số a nhận giá trị nào sau đây để biểu thức cho kết quả là TRUE? A. 24 B. 16 C. 20 D. 15
Trả lời: Ta có : a mod 3 = 0→ phần dư bằng 0 → a chia hết cho 3 a mod 4 = 0 → Phần dư bằng 0 → a chia hết cho 4 ⇒ a chia hết cho 12 Đáp án: A Câu 5: Cho đoạn chương trình: Begin a := 100; b := 30; x := a div b ; Write(x); End. Cho biết kết quả sau khi thực hiện lệnh : A. 10 B. 33 C. 3 D. 1
Trả lời: Ta có a := 100; gán cho a giá trị là 100 b := 30 ; gán cho b giá trị là 30 x := a div b =100 div 30 =3 ( div là phép lấy nguyên) Đáp án: C Câu 6: Trong Pascal, phép toán MOD với số nguyên có tác dụng gì ? A. Chia lấy phần nguyên B. Chia lấy phần dư C. Làm tròn số D. Thực hiện phép chia
Trả lời: Trong Pascal, phép toán MOD với số nguyên có tác dụng chia lấy phần dư còn phép toán DIV với số nguyên có tác dụng chia lấy phần nguyên. Đáp án: B Câu 7: Để thực hiện gán giá trị 10 cho biến X. Phép gán nào sau đây là đúng ? A. X = 10; B. X := 10; C. X =: 10; D. X : = 10;
Trả lời: Để thực hiện gán giá trị 10 cho biến X là X := 10; Cấu trúc câu lệnh gán là: <tên biến> := <giá trị>; Đáp án: B Câu 8: Hàm cho giá trị bằng bình phương của x là : A. Sqrt(x); B. Sqr(x); C. Abs(x); D. Exp(x);
Trả lời: Trong Pascal : + Hàm cho giá trị bằng bình phương của x là Sqr(x). + Hàm Sqrt(x) là hàm căn bậc hai + Hàm Abs(x) là hàm giá trị tuyệt đối + Hàm exp(x) là hàm lũy thừa của số e. Đáp án: B Câu 9: Trong ngôn ngữ lập trình Pascal, biểu thức số học nào sau đây là hợp lệ ? A. 5a + 7b + 8c; B. 5*a + 7*b + 8*c; (*) C. {a + b}*c; D. X*y(x+y);
Trả lời: Trong ngôn ngữ lập trình Pascal, không được bỏ dấu nhân (*) trong tích và chỉ dùng cặp ngoặc tròn để xác định trình tự thực hiện phép toán → loại A. C. D. Đáp án: B Câu 10: Biểu diễn biểu thức A. (a+b) + sqrt(a*a+2*b*c) / ( c – a / (a+b) ) B. (a+b) + sqr(a*a+2*b*c) / c – a / (a+b) C. (a+b) + sqrt( sqr(a) + 2*b*c / c – a / (a+b) D. (a+b) + sqr( sqrt(a) + 2*b*c) / (c – a / (a+b) )
Trả lời: Thứ tự thực hiện phép toán: + Thực hiện trong ngoặc trước; + Trong dãy các phép toán không chứa ngoặc thì thực hiện từ trái sang phải, theo thứ tự nhân, chia, chia nguyên, lấy phần dư thực hiện trước và các phép cộng, trừ thực hiện sau. Đáp án: A Xem thêm các bài Câu hỏi trắc nghiệm Tin học 11 chọn lọc, có đáp án khác:
Giới thiệu kênh Youtube VietJack
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Nhóm học tập facebook miễn phí cho teen 2k5: fb.com/groups/hoctap2k5/ Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Nếu thấy hay, hãy động viên và chia sẻ nhé! Các bình luận không phù hợp với nội quy bình luận trang web sẽ bị cấm bình luận vĩnh viễn. Trong điện toán, phép toán modulo là phép toán tìm số dư của phép chia 2 số (đôi khi được gọi là modulus).
Cho hai số dương, (số bị chia) a và (số chia) n, a modulo n (viết tắt là a mod n) là số dư của phép chia có dư Euclid của a cho n. Ví dụ, biểu thức "5 mod 2" bằng 1 vì 5 chia cho 2 có thương số là 2 là số dư là 1, trong khi "9 mod 3" bằng 0 do 9 chia 3 có thương số là 3 và số dư 0; không còn gì trong phép trừ của 9 cho 3 nhân 3. (Lưu ý rằng thực hiện phép chia bằng máy tính cầm tay sẽ không hiển thị kết quả giống như phép toán này; thương số sẽ được biểu diễn dưới dạng phần thập phân.) Mặc dù thường được thực hiện khi a và n đều là số nguyên, nhiều hệ tính toán cho phép sử dụng các kiểu khác của toán học bằng số. Giới hạn của một modulo nguyên của n là tù 0 đến n − 1. (a mod 1 luôn bằng 0; a mod 0 là không xác định, có thể trả về lỗi chia cho số 0 trong nhiều ngôn ngữ lập trình.) Xem số học mô-đun để tìm các quy ước cũ hơn và liên quan được áp dụng trong lý thuyết số. Khi hoặc a hoặc n là số âm, định nghĩa cơ bản bị phá vỡ và các ngôn ngữ lập trình khác nhau trong việc định nghĩa các kết quả này.
Trong toán học, kết quả của phép toán modulo là số dư của phép chia có dư. Tuy vậy các quy ước khác vẫn tồn tại. Máy vi tính và máy tính có nhiều cách khác nhau để lưu trữ và đại diện cho các số; do đó định nghĩa của chúng về phép toán modulo phụ thuộc vào ngôn ngữ lập trình hoặc phần cứng máy tính bên dưới cơ bản. Trong hầu hết các hệ thống máy tính, thương số q và số dư r của phép chia a cho n thỏa mãn
Tuy nhiên, vẫn còn sự nhập nhằng về dấu nếu số dư khác không: hai lựa chọn có thể cho số dư xảy ra, một âm và một dương, và hai lựa chọn cho thương số xảy ra. Trong lý thuyết số, thông thường số dư dương luôn được chọn, nhưng lựa chọn của các ngôn ngữ lập trình tùy thuộc vào ngôn ngữ và dấu của a hoặc n.[6] Ngôn ngữ Pascal và ALGOL 68 tiêu chuẩn chọn số dư dương (hoặc 0) kể cả khi số chia là các số âm, đối với một vài ngôn ngữ lập trình như C90 thì dấu tùy thuộc vào cài đặt khi hoặc n hoặc a là số âm. Xem bảng để biết chi tiết. a modulo 0 là không xác định trong hầu hết các hệ thống, mặc dù một số hệ thống định nghĩa là a.
Theo mô tả của Leijen,
Tuy nhiên, Boute tập trung vào các tính chất của chính phép toán modulo và không đánh giá sự thật là phép chia rút gọn (tiếng Anh: truncated division) cho thấy sự đối xứng của (-a) div n = -(a div n) và a div (-n) = -(a div n), mà cũng giống phép chia thông thường. Bởi vì cả hai phép chia sàn và phép chia có dư đều không có tính đối xứng này, phán đoán của Boute ít nhất là không toàn diện.[cần dẫn nguồn]
Nếu kết quả của phép chia modulo có dấu của số bị chia thì sẽ dẫn đến các sai lầm đáng ngạc nhiên. Ví dụ, để kiểm tra tính lẻ của một số nguyên, ta có thể kiểm tra số dư khi chia cho có bằng 1: bool is_odd(int n) { return n % 2 == 1; } Khi ngôn ngữ lập trình có số dư có dấu của số bị chia, việc kiểm tra sẽ sai, do khi n (số bị chia) là số âm lẻ, n mod 2 trả về −1, và hàm trả về false. Có thể sửa lại sai lầm đó bằng cách kiểm tra rằng kết quả khác 0 (do số dư bằng 0 được xem xét như nhau bất kể dấu): bool is_odd(int n) { return n % 2 != 0; } Hay là, bằng việc hiểu trước rằng với bất kỳ số lẻ nào, số dư modulo có thể hoặc bằng 1 hoặc −1: bool is_odd(int n) { return n % 2 == 1 || n % 2 == -1; } Một số máy tính cầm tay có nút của hàm mod(), và nhiều ngôn ngữ lập trình khác có hàm tương tự, biểu diễn cho mod(a, n). Một vài ngôn ngữ hỗ trợ các biễu thức mà dùng "%", "mod", hoặc "Mod" là toán tử modulo hoặc toán tử lấy số dư, chẳng hạn a % nhoặc a mod nhoặc tương đương cho môi trường thiếu hàm mod() (chú ý rằng kiểu 'int' vốn đã sinh ra giá trị rút gọn a/n) a - (n * int(a/n))Phép toán modulo có thể được cài đặt sao cho mỗi lần phép chia với số dư được tính. Đôi với nhu cầu đặc biệt, trên vài phần cứng, tồn tại các phép toán tương tự nhưng nhanh hơn. Ví dụ, modulo cho lũy thừa của 2 có thể biễu diễn tương đương bởi phép toán bitwise AND: x % 2n == x & (2n - 1)Ví dụ (giả sử x là số nguyên dương): x % 2 == x & 1 x % 4 == x & 3 x % 8 == x & 7Trong các thiết bị và phần mềm mà cài đặt toán tử bitwise hiệu quả hơn toán tử modulo, các dạng thay thế này có thể dẫn đến tính toán nhanh hơn.[10] Các trình biên dịch tối ưu hóa có thể nhận diện các biểu thức có dạng expression % constant trong đó constant là lũy thừa của 2 và tự động cài đặt chúng thành expression & (constant-1). Điều này cho phép viết mã rõ ràng hơn mà không ảnh hưởng đến hiệu suất. Cách tối ưu hóa này không áp dụng cho các ngôn ngữ mà kết quả của phép toán modulo có cùng dẫu với số bị chia (bao gồm C), trừ phi số bị chia là kiểu số nguyên không dấu. Bởi vì nếu số bị chia là số âm thì modulo sẽ là số âm trong khi expression & (constant-1) sẽ luôn dương. Một số phép toán modulo có thể được mở rộng tương tự sang các phép toán toán học khác. Điều này có tính hữu dụng trong các chứng minh mật mã học, chẳng hạn trao đổi khóa Diffie-Hellman.
|