Bài giảng Kiểu dữ liệu có cấu trúc

 

Câu 1 : _ Phát biểu nào dưới đây về kiểu mảng là phù hợp ?

A. Là một tập hợp các số nguyên;

B. Độ dài tối đa của mảng là 255;

C. Là một dãy hữu hạn các phần tử cùng kiểu; (*)

Mảng không thể chứa kí tự;

 

doc11 trang | Chia sẻ: vivian | Lượt xem: 1509 | Lượt tải: 2download
Bạn đang xem nội dung tài liệu Bài giảng Kiểu dữ liệu có cấu trúc, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ai chiều ta viết lệnh như sau : For i := 1 to m do For j := 1 to n do Write( A[i,j] : 5 ); For i := 1 to m do Begin For j := 1 to n do Write( A[i,j] : 5 ); End; For i := 1 to m do Begin For j := 1 to n do Writeln; End; For i := 1 to m do Begin For j := 1 to n do Write( A[i,j] : 5 ); Writeln; End; (*) Trong ngôn ngữ lập trình Pascal, để đổi giá trị hai phần tử mảng một chiều A tại hai vị trí i và j , ta viết mã lệnh như sau : A[i] := Tag; A[i] := A[j]; A[j] := Tag; Tag := A[i]; A[i] := A[j]; A[j] := Tag; (*) Tag := A[i]; A[j] := A[i]; A[j] := Tag; Tag := A[i]; A[i] := A[j]; Tag := A[j]; Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc nào trong các việc sau (A là mảng số có N phần tử) ? S := 0 ; For i := 1 to N do S := S + A[i] ; Tính tổng các phần tử của mảng A; (*) In ra màn hình mảng A; Đếm số phần tử của mảng A; Không thực hiện việc nào trong 3 việc trên. Trong ngôn ngữ lập trình Pascal, với khai báo như sau : Type mang = ARRAY[1..100] of integer ; Var a, b : mang ; c : array[1..100] of integer ; Câu lệnh nào dưới đây là hợp lệ ? a := b ; (*) b := c ; c := b ; a := c ; Trong ngôn ngữ lập trình Pascal, xâu kí tự là ? Mảng các ký tự; Dãy các kí tự trong bảng mã ASCII; (*) Tập hợp các chữ cái trong bảng chữ cái tiếng Anh; Tập hợp các chữ cái và các chữ số trong bảng chữ cái tiếng Anh; Trong ngôn ngữ lập trình Pascal, cách khai báo xâu kí tự nào sau đây là đúng ? S := file of string ; S : file of char ; S : string; (*) Cả 3 câu đều đúng ; Trong ngôn ngữ lập trình Pascal, xâu kí tự có tối đa ? 8 kí tự; 256 kí tự; 16 kí tự; 255 kí tự; (*) Trong ngôn ngữ lập trình Pascal, xâu kí tự không có kí tự nào gọi là ? Xâu không; Xâu rỗng; (*) Xâu trắng; Không phải là xâu kí tự; Trong ngôn ngữ lập trình Pascal, phần tử đầu tiên của xâu ký tự mang chỉ số là ? 0 Do người lập trình khai báo 1 (*) Không có chỉ số Trong ngôn ngữ lập trình Pascal, khai báo nào trong các khai báo sau là sai khi khai báo xâu kí tự ? S : string; X1 : string[100]; S : string[256]; (*) X1 : string[1]; Trong ngôn ngữ lập trình Pascal, thủ tục Delete(c, a, b) thực hiện công việc gì trong các việc sau? Xóa trong xâu kí tự c a kí tự bắt đầu từ vị trí b; (*) Xóa trong xâu a b kí tự từ vị trí c; Xóa trong xâu c b kí tự bắt đầu từ vị trí a; Xóa trong xâu b c kí tự bắt đầu từ vị trí a; Trong ngôn ngữ lập trình Pascal, hàm Length(S) cho kết quả gì ? Độ dài xâu S khi khai báo; Số ký tự hiện có của xâu S không tính các dấu cách; Số ký tự của xâu không tính dấu cách cuối cùng Số ký tự hiện có của xâu S. (*) Trong ngôn ngữ lập trình Pascal, sau khi chương trình thực hiện xong đoạn chương trình sau, giá trị của biến S là ? S := ‘Ha Noi Mua thu’; Delete(S,7,8); Insert(‘Mua thu’, S, 1); Ha Noi Mua thu; Mua thu Ha Noi mua thu; Mua thu Ha Noi; (*) Ha Noi; Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc gì? If (ch >= ‘A’) and (ch <= ‘Z’) then ch := chr( ord(ch) + 32 ) ; Xóa ký tự có trong biến ch; Biến ch thành chữ thường nếu ch là chữ hoa; (*) Không thực hiện việc gì; Biến ch thành chữ hoa; Trong ngôn ngữ lập trình Pascal, thủ tục chèn xâu S1 vào xâu S2 bắt đầu từ vị trí vt được viết Insert(vt,S1,S2); Insert(S1,S2,vt); (*) Insert(S1,vt,S2); Insert(S2,S1,vt); Trong ngôn ngữ lập trình Pascal, với xâu kí tự có các phép toán là ? Phép cộng, trừ, nhân, chia Phép cộng và phép trừ Chỉ có phép cộng Phép ghép xâu và phép so sánh (*) Trong ngôn ngữ lập trình Pascal, với xâu kí tự ta có thể ? So sánh hai xâu kí tự Gán biến xâu cho biến xâu Gán một kí tự cho biến xâu Cả ba việc này (*) Trong ngôn ngữ lập trình Pascal, hai xâu kí tự được so sánh dựa trên ? Mã của từng kí tự trong các xâu lần lượt từ trái sang phải (*) Độ dài tối đa của hai xâu Độ dài thực sự của hai xâu Số lượng các kí tự khác nhau trong xâu Trong ngôn ngữ lập trình Pascal, hàm Upcase(ch) cho kết quả là : Chữ cái in hoa tương ứng với ch (*) Xâu ch gồm toàn chữ hoa Xâu ch toàn chữ thường Biến ch thành chữ thường Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì ? (giá trị của biến đếm) dem := 0 ; For ch := ‘a’ to ‘z’ do If pos(ch,S) 0 then dem := + 1 ; Đếm số lượng ký tự khác dấu cách của xâu S Đếm số lượng ký tự là chữ cái in hoa của xâu S Đếm số lượng ký tự là chữ cái thường trong xâu S Đếm số lượng chữ cái thường khác nhau có trong xâu S (*) Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì ? X := length(S) ; For i := X downto 1 do If S[i] = ‘ ’ then Delete(S, i, 1) ; { ‘ ’ là một dấu cách } Xóa dấu cách đầu tiên trong xâu ký tự S Xóa dấu cách thừa trong xâu ký tự S Xóa dấu cách tại vị trí cuối cùng của xâu S Xóa mọi dấu cách của xâu S (*) Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì ? S1 := ‘anh’ ; S2 := ‘em’ ; i := pos(S2, S) ; While i 0 do Begin Delete(S, i, 2) ; Insert(S1, S, i) ; i := pos(S2, S) ; End ; Thay toàn bộ cụm từ ‘anh’ trong xâu S bằng cụm từ ‘em’ ; Thay toàn bộ cụm từ ‘em’ trong xâu S bằng cụm từ ‘anh’ ; (*) Thay cụm từ ‘em’ đầu tiên trong xâu S bằng cụm từ ‘anh’ ; Thay cụm từ ‘anh’ đầu tiên trong xâu S bằng cụm từ ‘em’ ; Trong ngôn ngữ lập trình Pascal, sau khi thực hiện xong đoạn chương trình sau, biến Found có giá trị là gì ? (S là biến xâu ký tự) Found := 0 ; x := length(S) ; For i := 1 to x Div 2 do If S[i] S[x – i + 1] then Found := 1 ; Found bằng 0 nếu S là xâu đối xứng; (*) Found bằng 0 nếu S là xâu không đối xứng; Found bằng 1 nếu S là xâu đối xứng; Found không có giá trị gì; Trong ngôn ngữ lập trình Pascal, để xóa đi ký tự đầu tiên của xâu ký tự S ta viết : Delete(S, 1, 1); (*) Delete(S, i, 1); { i là biến có giá trị bất kỳ } Delete(S, length(S), 1); Delete(S, 1, i); { i là biến có giá trị bất kỳ } Trong ngôn ngữ lập trình Pascal, để tìm vị trí xuất hiện đầu tiên của xâu ‘hoa’ trong xâu S ta có thể viết bằng cách nào trong các cách sau ? S1 := ‘hoa’ ; i := pos(S1, ‘hoa’) ; i := pos(‘hoa’, S) ; (*) i := pos(S, ’hoa’) ; i := pos(‘hoa’, ‘hoa’) ; Trong ngôn ngữ lập trình Pascal, đoạn chương trình thực hiện công việc nào trong các công việc sau : i := pos(‘ ’, S); { ‘ ’ là 2 dấu cách } while i 0 do Begin Delete(S, i, 1) ; i := pos(‘ ’, S) ; End; Xóa 2 dấu cách liền nhau đầu tiên trong xâu; Xóa đi một trong 2 dấu cách đầu tiên trong xâu; Xóa các dấu cách trong xâu S để S không còn 2 dấu cách liền nhau; (*) Xóa các dấu cách liền nhau cuối cùng trong xâu; Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì : i := pos(‘ ’, X) ; while i 0 do Begin Delete(X, i, 1) ; i := pos(‘ ’, X) ; End; Xóa tất cả các dấu cách trong xâu X ; (*) Xóa tất cả các dấu cách phía bên trái trong xâu X ; Xóa tất cả các dấu cách phía bên phải trong xâu X ; Xóa tất cả các dấu cách ở hai đầu của xâu X ; Trong ngôn ngữ lập trình Pascal, sau khi thực hiện đoạn chương trình sau, biến X có giá trị là gì? S := ‘Hoang Anh Tuan’ ; X := ‘ ’ ; i := length(S) ; while S[i] ‘ ’ do Begin X := X + S[i] ; i := i + 1 ; End ; Xâu rỗng ‘Hoang’ ‘Anh’ ‘Tuan’ (*) Trong ngôn ngữ lập trình Pascal, để in một xâu kí tự ra màn hình theo thứ tự ngược lại của các ký tự trong xâu (vd : abcd thi in ra là dcba), đoạn chương nào sau đây thực hiện việc gì ? For i := 1 to length(S) do write(S[i]) For i := length(S) downto 1 do write(S[i]) (*) For i := length(S) downto 1 do write(S) For i := 1 to length(S) div 2 do write(S[i]) Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì? d := 0 ; For i := 1 to length(S) do if S[i] = ‘ ’ then d := d + 1 ; Xóa đi các dấu cách trong xâu; Đếm số ký tự có trong xâu; Đếm số dấu cách có trong xâu; (*) Xóa đi các ký tự số; Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì? d := 0 ; For i := 1 to length(S) do if ( S[i] >= ‘ 0 ’ ) AND ( S[i] <= ‘ 9 ’ ) then d := d + 1 ; Đếm số ký tự là ký tự số trong xâu S; (*) Đếm xem có bao nhiêu ký tự số trong xâu S; Xóa đi các chữ số có trong S; Xóa đi ký tự đầu tiên trong S; Trong ngôn ngữ lập trình Pascal, có thể gán giá trị cho bản ghi bằng cách? Gán giá trị cho từng trường; Gán giá trị cho bảng ghi; Nhập giá trị từ bàn phím; Cả 3 cách trên; (*) Trong ngôn ngữ lập trình Pascal, để khai báo kiểu bản ghi để xử lý danh sách cán bộ của một cơ quan, khai báo kiểu bản ghi nào trong các khai báo sau là sai? ( Bản ghi có cấu trúc gồm 5 trường: Họ tên, năm sinh, địa chỉ, mức lương, phụ cấp ) Type CanBo = Record HoTen : String[30] ; Namsinh : Integer; Diachi : String[100] ; MucLuong : Real ; PhuCap : Real ; End; (*) Type CanBo : Record HoTen : String[30] ; Namsinh : Integer; Diachi : String[100] ; MucLuong : Real ; PhuCap : Real ; End; Type CanBo : Record HoTen : String[30] ; Namsinh : Integer; Diachi : String[100] ; MucLuong : Real ; PhuCap : Real ; Type CanBo : Record HoTen : String[30] ; Namsinh : Integer; Diachi : String[100] ; MucLuong : Real ; PhuCap : Real ; End. Để truy cập vào từng trường của bản ghi ta viết ? . ; . ; . ; (*) . ; Câu lệnh nào trong các câu lệnh sau không dùng để gán giá trị cho trường của bản ghi A? (với bản ghi A có 3 trường là Ten, Lop, Diem) A.Ten := ‘Nguyen Van A’ ; A.Lop := ‘11A7’ ; Readln(A.Diem) ; S := A.Diem ; (*) Trong kiểu dữ liệu bản ghi, mỗi bản ghi thường được dùng để? Mô tả hay lưu trữ thông tin về nhiều đối tượng cần quản lý ; Mô tả hay lưu trữ thông tin về một thuộc tính cần quản lý ; (*) Mô tả hay lưu trữ thông tin về một đối tượng cần quản lý ; Mô tả hay lưu trữ thông tin về nhiều thuộc tính cần quản lý ; Một kiểu bản ghi được khai báo như sau : Type Sach = Record Ten_sach : string[30] ; Tac_gia : byte ; Gia_tien : Real ; End; Var X, Y, Z : Sach ; Câu lệnh nào trong các câu lệnh sau là không phù hợp? Write( ‘ X = ’ , X, ‘ Y = ’, Y, ‘ Z = ’, Z ) ; (*) Writeln( X.Ten_sach, Y.Tac_gia, Z.Gia_tien ) ; X := Y ; Y := Z ;

File đính kèm:

  • docde cuong tin hoc 11 chuong 4.doc