30/09/2018, 21:30

Hỏi ngu mấy bài tập ^^

Anh em giúp mình hiểu sâu mấy câu này với ạ?
Em chẳng biết hỏi ai







Tung Dao viết 23:40 ngày 30/09/2018

Nguyễn Tấn Khoa viết 23:37 ngày 30/09/2018
  • Ảnh 1: sai là đương nhiên, #include thiếu < tên thư viện > nên sai => printf trong thư viện stdio mà không khai báo thư viện => sai lun. Tóm lại, sai 2 lỗi.

  • Ảnh 2: hàm cần tham số => C sai, tham số có thể chỉ cần kiểu dữ liệu mà không cần tên tham số.=> A sai. Vậy B đúng.

  • Ảnh 3: ta đổi hexa sang số nguyên 16 bit: 5931 = 22833; AC43 = -21437; B571 = -19087; E755 = -6315. Vậy 5931 lớn nhất => A đúng.

  • Ảnh 4: in ra địa chỉ của biến (mảng). arr là tên mảng trả về địa chỉ của phần tử đầu tiên của mảng. &arr[0] là địa chỉ của phần tử đầu tiên của mảng, &arr là địa chỉ của mảng, nói cách khác là địa chỉ của phần tử đầu tiên của mảng. Vậy arr, &arr[0], &arr đều in ra địa chỉ của phần tử đầu tiên của mảng arr => 3 giá trị bằng nhau (chứ chưa chắc là 1200).

  • Ảnh 5: strcat ghép chuỗi nguồn vào sau chuỗi đích => đúng. strlen xác định độ dài một chuỗi nhập từ bàn phím mà chuỗi 1 dài hơn chuỗi 2 => đúng. strwr chuyển tất cả các kí tự chuỗi về chữ thường, vậy Hello thành hello => đúng. strncmp( str1, str2, size_t num) sẽ so sánh tối đa num kí tự đầu tiên của hai xâustr1 và str2, nó trả về giá trị nguyên K, nếu num ký tự đầu tiên của hai xâu giống nhau thì K = 0, ngược lại K != 0 mà 5 giá trị đầu của 2 biến bằng nhau nên K = 0 => sai.

  • Ảnh 6: sizeof trả về giá trị là số byte của biến, kiểu giá trị và mảng; kiểu char chiếm 1 byte, vậy mảng firstname chiếm 6 bytes, lastname chiếm 10 bytes. 6 + 10 = 16 => B đúng.

  • Ảnh 7: chưa biết

Nếu có gì sai thì xin tha lỗi cho em. Em chỉ là một thằng mới lên lớp 9 nên chưa biết gì hết.
Mà ai biết cách giải ảnh 7 thì giải giùm em lun với nha.

Bé tập Code viết 23:30 ngày 30/09/2018

Ảnh 7 là do cái macro SQUARE define thiếu ngoặc nên khi đưa vào phép tính nó thành ra …/xx thay vì /(xx) dẫn đến -100/22 = -100 thay vì 100/(22) = 25

Nguyễn Tấn Khoa viết 23:34 ngày 30/09/2018

Cảm ơn anh. Có thêm kinh nghiệm bỏ túi.
Mà -100 / (2 * 2) = -25 mà anh.

Thanos viết 23:31 ngày 30/09/2018

Em giải thích ảnh 2 kỹ hơn đi ^^

Bé tập Code viết 23:38 ngày 30/09/2018

Câu 2 đáp án sai, cả a và b đều đúng.

Nguyễn Tấn Khoa viết 23:37 ngày 30/09/2018

Nhưng mà không có khuyến khích đâu.
Kẻo sau này mình làm một chương trình lớn, phân thành nhiều file nhỏ, mình khai báo cái hàm đó ở file này, sau này tìm, không biết lưu trong file nào là chết. Không biết mình đã đặt tên gì cho cái biến đó là xong, tìm hơi mệt đó.
Còn nếu không đặt tên, thì tới phần định nghĩa ưng đặt tên gì thì đặt. Sướng hơn.

Nguyễn Tấn Khoa viết 23:41 ngày 30/09/2018

Công thức của khai báo nguyên mẫu là:
data_type function_name (argument 1, argument 2, …);

Trong đó:

  • data_type là kiểu dữ liệu được trả về của hàm cần khai báo.

  • function_name là tên hàm mà bạn muốn đặt.

  • argument 1, gument 2 là các tham số được sử dụng trong hàm. Một tham số bao gồm hai thành phần: kiểu dữ liệu và tên tham số, nhưng vì đây chỉ là khai báo hàm nên tham số có thể chỉ cần kiểu dữ liệu mà không cần tên tham số.

Bé tập Code viết 23:37 ngày 30/09/2018

Hoàn toàn ngược lại. Làm chương trình lớn thì em phải có tên cho tất cả mọi thứ chứ không riêng gì parameter của hàm. Còn cái việc tìm nơi định nghĩa của hàm thì tất nhiên làm project người ta phải có environment để trace code rồi em.

Thanos viết 23:39 ngày 30/09/2018

Vậy đáp án A thiếu dấu ; hả em?

Thanos viết 23:46 ngày 30/09/2018

và *chuan_hoa và chuan_hoa thì có khác biệt gì vậy??

Nguyễn Tấn Khoa viết 23:31 ngày 30/09/2018

Không đâu anh. Chỉ là tên hàm thui.

Nguyễn Tấn Khoa viết 23:35 ngày 30/09/2018

Cảm ơn anh đã chỉ giáo.
Nhưng cái có tên thiếu dấu chấm phẩy anh ơi. Em ghi thiếu

Bé tập Code viết 23:45 ngày 30/09/2018

ah, tại anh chỉ nhìn vào cách giải thích của em mà không nhìn vào đề kĩ.

Bài liên quan
0