<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="id6564209">
  <name>Các câu lệnh đơn trong C</name>
  <metadata>
  <md:version>1.1</md:version>
  <md:created>2007/11/07 21:53:44.054 US/Central</md:created>
  <md:revised>2007/11/18 05:33:54.003 US/Central</md:revised>
  <md:authorlist>
      <md:author id="linhnguyen">
      <md:firstname>Nguyễn</md:firstname>
      <md:othername>Văn</md:othername>
      <md:surname>Linh</md:surname>
      <md:email>linhnguyen@vocw.edu.vn</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="linhnguyen">
      <md:firstname>Nguyễn</md:firstname>
      <md:othername>Văn</md:othername>
      <md:surname>Linh</md:surname>
      <md:email>linhnguyen@vocw.edu.vn</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>C</md:keyword>
    <md:keyword>Lệnh đơn</md:keyword>
  </md:keywordlist>

  <md:abstract>Học xong chương này, sinh viên sẽ nắm rõ các vấn đề sau:
- Câu lệnh là gì?
- Cách sử dụng câu lệnh gán giá trị của một biểu thức cho một biến.
- Cách sử dụng lệnh scanf để nhập giá trị cho biến.
- Cách sử dụng lệnh printf để xuất giá trị của biểu thức lên màn hình  và cách định dạng dữ liệu.</md:abstract>
</metadata>
  <content>
    <para id="id6561233">CÁC CÂU LỆNH ĐƠN TRONG C</para>
    <para id="id6561238">Học xong chương này, sinh viên sẽ nắm rõ các vấn đề sau:</para>
    <list type="bulleted" id="id6561245">
      <item>Câu lệnh là gì?</item>
      <item>Cách sử dụng câu lệnh gán giá trị của một biểu thức cho một biến.</item>
      <item>Cách sử dụng lệnh scanf để nhập giá trị cho biến.</item>
      <item>Cách sử dụng lệnh printf để xuất giá trị của biểu thức lên màn hình và cách định dạng dữ liệu.</item>
    </list>
    <section id="id-22576098236">
      <name>CÂU LỆNH</name>
      <section id="id-194183151879">
        <name>Khái niệm câu lệnh</name>
        <para id="id6561297">Một câu lệnh (statement) xác định một công việc mà chương trình phải thực hiện để xử lý dữ liệu đã được mô tả và khai báo. Các câu lệnh được ngăn cách với nhau bởi dấu chấm phẩy (;).</para>
      </section>
      <section id="id-70061985807">
        <name>Phân loại</name>
        <para id="id6561318">Có hai loại lệnh: lệnh đơn và lệnh có cấu trúc.</para>
        <para id="id6561325">Lệnh đơn là một lệnh không chứa các lệnh khác. Các lệnh đơn gồm: lệnh gán, các câu lệnh nhập xuất dữ liệu…</para>
        <para id="id6561341">Lệnh có cấu trúc là lệnh trong đó chứa các lệnh khác. Lệnh có cấu trúc bao gồm: cấu trúc điều kiện rẽ nhánh, cấu trúc điều kiện lựa chọn, cấu trúc lặp và cấu trúc lệnh hợp thành. Lệnh hợp thành (khối lệnh) là một nhóm bao gồm nhiều khai báo biến và các lệnh được gom vào trong cặp dấu {}.</para>
      </section>
    </section>
    <section id="id-569196385045">
      <name>CÁC LỆNH ĐƠN</name>
      <section id="id-13129693015">
        <name>Lệnh gán</name>
        <para id="id6561381">Lệnh gán (assignment statement) dùng để gán giá trị của một biểu thức cho một biến.</para>
        <para id="id6561388">Cú pháp: &lt;Tên biến&gt; = &lt;biểu thức&gt;</para>
        <para id="id6561394">Ví dụ:</para>
        <para id="id6561405">int main() {</para>
        <para id="id6561410">int x,y;</para>
        <para id="id6561414">x =10; /*Gán hằng số 10 cho biến x*/</para>
        <para id="id6561427">y = 2*x; /*Gán giá trị 2*x=2*10=20 cho x*/</para>
        <para id="id6561444">return 0;</para>
        <para id="id6561448">}</para>
        <para id="id6561453">Nguyên tắc khi dùng lệnh gán là kiểu của biến và kiểu của biểu thức phải giống nhau, gọi là có sự tương thích giữa các kiểu dữ liệu. Chẳng hạn ví dụ sau cho thấy một sự không tương thích về kiểu:</para>
        <para id="id6561466">int main() {</para>
        <para id="id6561470">int x,y;</para>
        <para id="id6561474">x = 10; /*Gán hằng số 10 cho biến x*/</para>
        <para id="id6561487">y = “Xin chao”; </para>
        <para id="id6561492">/*y có kiểu int, còn “Xin chao” có kiểu char* */</para>
        <para id="id6561510">return 0;</para>
        <para id="id6561516">}</para>
        <section id="id-463653012965">
          <name>Khi biên dịch chương trình này, C sẽ báo lỗi "Cannot convert ‘char *’ to ‘int’" tức là C không thể tự động chuyển đổi kiểu từ char * (chuỗi ký tự) sang int. </name>
          <para id="id6561520">
            <!--Empty sections are illegal in CNXML 0.5.  This empty paragraph is a place holder that added as a byproduct of the word importer.-->
          </para>
        </section>
        <section id="id-957850597453">
          <name>Tuy nhiên trong đa số trường hợp sự tự động biến đổi kiểu để sự tương thích về kiểu sẽ được thực hiện. Ví dụ:</name>
          <para id="id6561569">int main() {</para>
          <para id="id6561574">int x,y;</para>
          <para id="id6561581">float r;</para>
          <para id="id6561589">char ch;</para>
          <para id="id6561602"> r = 9000;</para>
          <para id="id6561614">x = 10; /* Gán hằng số 10 cho biến x */</para>
          <para id="id6561630">y = 'd'; /* y có kiểu int, còn ‘d’ có kiểu char*/</para>
          <para id="id6561648">r = 'e'; /* r có kiểu float, ‘e’ có kiểu char*/</para>
          <para id="id6561664">ch = 65.7; /* ch có kiểu char, còn 65.7 có kiểu float*/</para>
          <para id="id6561681">return 0;</para>
          <para id="id6561688">}</para>
        </section>
        <section id="id-845785578135">
          <name>Trong nhiều trường hợp để tạo ra sự tương thích về kiểu, ta phải sử dụng đến cách thức chuyển đổi kiểu một cách tường minh. Cú pháp của phép toán này như sau:</name>
          <para id="id6561708">(Tên kiểu) &lt;Biểu thức&gt;</para>
          <para id="id6561718">Chuyển đổi kiểu của &lt;Biểu thức&gt; thành kiểu mới &lt;Tên kiểu&gt;. Chẳng hạn như:</para>
          <para id="id6561727">float f;</para>
          <para id="id6561737">f = (float) 10 / 4; /* f lúc này là 2.5*/</para>
          <para id="id6561750">Chú ý: </para>
          <para id="id6561760">- Khi một biểu thức được gán cho một biến thì giá trị của nó sẽ thay thế giá trị cũ mà biến đã lưu giữ trước đó.</para>
          <para id="id6561770">- Trong câu lệnh gán, dấu = là một toán tử; do đó nó có thể được sử dụng là một thành phần của biểu thức. Trong trường hợp này giá trị của biểu thức gán chính là giá trị của biến.</para>
          <para id="id6561782">Ví dụ:</para>
          <para id="id6561794">int x, y;</para>
          <para id="id6561806">y = x = 3; /* y lúc này cùng bằng 3*/</para>
        </section>
        <section id="id-27317018886">
          <name>- Ta có thể gán trị cho biến lúc biến được khai báo theo cách thức sau:</name>
          <para id="id6561833">&lt;Tên kiểu&gt; &lt;Tên biến&gt; = &lt;Biểu thức&gt;;</para>
          <para id="id6561847">Ví dụ:int x = 10, y=x;</para>
        </section>
      </section>
      <section id="id-138621574499">
        <name>Lệnh nhập giá trị từ bàn phím cho biến (hàm scanf)</name>
        <para id="id6561881">Là hàm cho phép đọc dữ liệu từ bàn phím và gán cho các biến trong chương trình khi chương trình thực thi. Trong ngôn ngữ C, đó là hàm scanf nằm trong thư viện stdio.h.</para>
        <para id="id6561893">Cú pháp: </para>
        <para id="id6561906">scanf(“Chuỗi định dạng”, địa chỉ của các biến);</para>
        <para id="id6561912">Giải thích:</para>
        <para id="id6561924">- Chuỗi định dạng: dùng để qui định kiểu dữ liệu, cách biểu diễn, độ rộng, số chữ số thập phân... Một số định dạng khi nhập kiểu số nguyên, số thực, ký tự.</para>
        <table id="id6561948">
          <tgroup cols="3">
            <colspec colnum="1" colname="c1"/>
            <colspec colnum="2" colname="c2"/>
            <colspec colnum="3" colname="c3"/>
            <tbody>
              <row>
                <entry namest="c1" nameend="c2">Định dạng</entry>
                <entry>Ý nghĩa</entry>
              </row>
              <row>
                <entry namest="c1" nameend="c2">%[số ký số]d</entry>
                <entry>Nhập số nguyên có tối đa &lt;số ký số&gt;</entry>
              </row>
              <row>
                <entry namest="c1" nameend="c2">%[số ký số] f</entry>
                <entry>Nhập số thực có tối đa &lt;số ký số&gt; tính cả dấu chấm</entry>
              </row>
              <row>
                <entry namest="c1" nameend="c2">%c</entry>
                <entry>Nhập một ký tự</entry>
              </row>
              <row>
                <entry namest="c1" nameend="c3">Ví dụ:</entry>
              </row>
              <row>
                <entry>%d</entry>
                <entry namest="c2" nameend="c3">Nhập số nguyên</entry>
              </row>
              <row>
                <entry>%4d</entry>
                <entry namest="c2" nameend="c3">Nhập số nguyên tối đa 4 ký số, nếu nhập nhiều hơn 4 ký số thì chỉ nhận được 4 ký số đầu tiên</entry>
              </row>
              <row>
                <entry>%f</entry>
                <entry namest="c2" nameend="c3">Nhập số thực</entry>
              </row>
              <row>
                <entry>%6f</entry>
                <entry namest="c2" nameend="c3">Nhập số thực tối đa 6 ký số (tính luôn dấu chấm), nếu nhập nhiều hơn 6 ký số thì chỉ nhận được 6 ký số đầu tiên (hoặc 5 ký số với dấu chấm)</entry>
              </row>
            </tbody>
          </tgroup>
        </table>
        <para id="id6691242">- Địa chỉ của các biến: là địa chỉ (&amp;) của các biến mà chúng ta cần nhập giá trị cho nó. Được viết như sau: &amp;&lt;tên biến&gt;.</para>
        <para id="id6691280">Ví dụ:</para>
        <para id="id6691291">scanf(“%d”,&amp;bien1);/*Doc gia tri cho bien1 co kieu nguyen*/</para>
        <para id="id6691306">scanf(“%f”,&amp;bien2); /*Doc gia tri cho bien2 co kieu thưc*/</para>
        <para id="id6691320">scanf(“%d%f”,&amp;bien1,&amp;bien2); </para>
        <para id="id6691331">/*Doc gia tri cho bien1 co kieu nguyen, bien2 co kieu thuc*/</para>
        <para id="id6691351">scanf(“%d%f%c”,&amp;bien1,&amp;bien2,&amp;bien3);</para>
        <para id="id6691357">/*bien3 co kieu char*/</para>
        <para id="id6691369">Lưu ý:</para>
        <list type="bulleted" id="id6691381">
          <item>Chuỗi định dạng phải đặt trong cặp dấu nháy kép (“”).</item>
          <item>Các biến (địa chỉ biến) phải cách nhau bởi dấu phẩy (,).</item>
          <item>Có bao nhiêu biến thì phải có bấy nhiêu định dạng.</item>
          <item>Thứ tự của các định dạng phải phù hợp với thứ tự của các biến.</item>
          <item>Để nhập giá trị kiểu char được chính xác, nên dùng hàm fflush(stdin) để loại bỏ các ký tự còn nằm trong vùng đệm bàn phím trước hàm scanf().</item>
          <item>Để nhập vào một chuỗi ký tự (không chứa khoảng trắng hay kết thúc bằng khoảng trắng), chúng ta phải khai báo kiểu mảng ký tự hay con trỏ ký tự, sử dụng định dạng %s và tên biến thay cho địa chỉ biến. </item>
          <item>Để đọc vào một chuỗi ký tự có chứa khoảng trắng (kết thúc bằng phím Enter) thì phải dùng hàm gets().</item>
        </list>
        <para id="id6691516">Ví dụ: </para>
        <para id="id6691528">int biennguyen;</para>
        <para id="id6691537">float bienthuc;</para>
        <para id="id6691543">char bienchar;</para>
        <para id="id6691552">char chuoi1[20], *chuoi2;</para>
        <para id="id6691559">Nhập giá trị cho các biến:</para>
        <para id="id6691565">scanf(“%3d”,&amp;biennguyen);</para>
        <para id="id6691570">Nếu ta nhập 1234455 thì giá trị của biennguyen là 3 ký số đầu tiên (123). Các ký số còn lại sẽ còn nằm lại trong vùng đệm.</para>
        <para id="id6691579">scanf(“%5f”,&amp;bienthuc); </para>
        <para id="id6691584">Nếu ta nhập 123.446 thì giá trị của bienthuc là 123.4, các ký số còn lại sẽ còn nằm trong vùng đệm.</para>
        <para id="id6691592">scanf(“%2d%5f”,&amp;biennguyen, &amp;bienthuc);</para>
        <para id="id6691598">Nếu ta nhập liên tiếp 2 số cách nhau bởi khoảng trắng như sau: 1223 3.142325</para>
        <para id="id6691608">- 2 ký số đầu tiên (12) sẽ được đọc vào cho biennguyen.</para>
        <para id="id6691616">- 2 ký số tiếp theo trước khoảng trắng (23) sẽ được đọc vào cho bienthuc.</para>
        <para id="id6691626">scanf(“%2d%5f%c”,&amp;biennguyen, &amp;bienthuc,&amp;bienchar)</para>
        <para id="id6691632">Nếu ta nhập liên tiếp 2 số cách nhau bởi khoảng trắng như sau: 12345 3.142325:</para>
        <para id="id6691642">- 2 ký số đầu tiên (12) sẽ được đọc vào cho biennguyen.</para>
        <para id="id6691650">- 3 ký số tiếp theo trước khoảng trắng (345) sẽ được đọc vào cho bienthuc.</para>
        <para id="id6691660">- Khoảng trắng sẽ được đọc cho bienchar.</para>
        <para id="id6691668">Nếu ta chỉ nhập 1 số gồm nhiều ký số như sau: 123456789:</para>
        <para id="id6691674">- 2 ký số đầu tiên (12) sẽ được đọc vào cho biennguyen.</para>
        <para id="id6691682">- 5 ký số tiếp theo (34567) sẽ được đọc vào cho bienthuc.</para>
        <para id="id6691692">- bienchar sẽ có giá trị là ký số tiếp theo ‘8’.</para>
        <para id="id6691699">scanf(“%s”,chuoi1); hoặc scanf(“%s”,chuoi2)</para>
        <para id="id6691708">Nếu ta nhập chuỗi như sau: Nguyen Van Linh  thì giá trị của biến chuoi1 hay chuoi2 chỉ là Nguyen . </para>
        <para id="id6691740">scanf(“%s%s”,chuoi1, chuoi2);</para>
        <para id="id6691745">Nếu ta nhập chuỗi như sau: Duong Van Hieu  thì giá trị của biến chuoi1 là Duong và giá trị của biến chuoi2 là Van.</para>
        <para id="id6691787">Vì sao như vậy? C sẽ đọc từ đầu đến khi gặp khoảng trắng và gán giá trị cho biến đầu tiên, phần còn lại sau khoảng trắng là giá trị của các biến tiếp theo.</para>
        <para id="id6691805">gets(chuoi1);</para>
        <para id="id6691810">Nếu nhập chuỗi : Nguyen Van Linh  thì giá trị của biến chuoi1 là Nguyen Van Linh</para>
      </section>
      <section id="id-136525068587">
        <name>Lệnh xuất giá trị của biểu thức lên màn hình (hàm printf)</name>
        <para id="id6691850">Hàm printf (nằm trong thư viện stdio.h) dùng để xuất giá trị của các biểu thức lên màn hình.</para>
        <para id="id6691870">Cú pháp:</para>
        <para id="id6691882">printf(“Chuỗi định dạng ”, Các biểu thức);</para>
        <para id="id6691888">Giải thích:</para>
        <para id="id6691900">- Chuỗi định dạng: dùng để qui định kiểu dữ liệu, cách biểu diễn, độ rộng, số chữ số thập phân... Một số định dạng khi đối với số nguyên, số thực, ký tự.</para>
        <table id="id6691924">
          <tgroup cols="3">
            <colspec colnum="1" colname="c1"/>
            <colspec colnum="2" colname="c2"/>
            <colspec colnum="3" colname="c3"/>
            <tbody>
              <row>
                <entry namest="c1" nameend="c2">Định dạng</entry>
                <entry>Ý nghĩa</entry>
              </row>
              <row>
                <entry namest="c1" nameend="c2">%d</entry>
                <entry>Xuất số nguyên </entry>
              </row>
              <row>
                <entry namest="c1" nameend="c2">%[.số chữ số thập phân] f</entry>
                <entry>Xuất số thực có &lt;số chữ số thập phân&gt; theo quy tắc làm tròn số.</entry>
              </row>
              <row>
                <entry namest="c1" nameend="c2">%o</entry>
                <entry>Xuất số nguyên hệ bát phân</entry>
              </row>
              <row>
                <entry namest="c1" nameend="c2">%x</entry>
                <entry>Xuất số nguyên hệ thập lục phân</entry>
              </row>
              <row>
                <entry namest="c1" nameend="c2">%c</entry>
                <entry>Xuất một ký tự</entry>
              </row>
              <row>
                <entry namest="c1" nameend="c2">%s</entry>
                <entry>Xuất chuỗi ký tự</entry>
              </row>
              <row>
                <entry namest="c1" nameend="c2">%e hoặc %E hoặc %g hoặc %G</entry>
                <entry>Xuất số nguyên dạng khoa học (nhân 10 mũ x)</entry>
              </row>
              <row>
                <entry namest="c1" nameend="c3">Ví dụ</entry>
              </row>
              <row>
                <entry>%d</entry>
                <entry namest="c2" nameend="c3">In ra số nguyên</entry>
              </row>
              <row>
                <entry>%4d</entry>
                <entry namest="c2" nameend="c3">In số nguyên tối đa 4 ký số, nếu số cần in nhiều hơn 4 ký số thì in hết</entry>
              </row>
              <row>
                <entry>%f</entry>
                <entry namest="c2" nameend="c3">In số thực</entry>
              </row>
              <row>
                <entry>%6f</entry>
                <entry namest="c2" nameend="c3">In số thực tối đa 6 ký số (tính luôn dấu chấm), nếu số cần in nhiều hơn 6 ký số thì in hết</entry>
              </row>
              <row>
                <entry>%.3f</entry>
                <entry namest="c2" nameend="c3">In số thực có 3 số lẻ, nếu số cần in có nhiều hơn 3 số lẻ thì làm tròn.</entry>
              </row>
            </tbody>
          </tgroup>
        </table>
        <para id="id6257326">- Các biểu thức: là các biểu thức mà chúng ta cần xuất giá trị của nó lên màn hình, mỗi biểu thức phân cách nhau bởi dấu phẩy (,). </para>
        <para id="id6257357">Ví dụ:</para>
        <para id="id6257369">include&lt;stdio.h&gt;</para>
        <para id="id6257373">int main(){</para>
        <para id="id6257378">int bien_nguyen=1234, i=65;</para>
        <para id="id6257387">float bien_thuc=123.456703;</para>
        <para id="id6257396">printf(“Gia tri nguyen cua bien nguyen =%d\n”,bien_nguyen);</para>
        <para id="id6257402">printf(“Gia tri thuc cua bien thuc =%f\n”,bien_thuc);</para>
        <para id="id6257408">printf(“Truoc khi lam tron=%f \n </para>
        <para id="id6257415">Sau khi lam tron=%.2f”,bien_thuc, bien_thuc);</para>
        <para id="id6257421">return 0;</para>
        <para id="id6257428">}</para>
        <para id="id6257432">Kết quả in ra màn hình như sau:</para>
        <figure id="id6257442">
          <media type="image/png" src="graphics1.png">
            <param name="height" value="60"/>
            <param name="width" value="338"/>
          </media>
        </figure>
        <para id="id6257466">Nếu ta thêm vào dòng sau trong chương trình:</para>
        <para id="id6257472">printf(“\n Ky tu co ma ASCII %d la %c”,i,i);</para>
        <para id="id6257480">Kết quả ta nhận được thêm:</para>
        <para id="id6257485">
        ***SORRY, THIS MEDIA TYPE IS NOT SUPPORTED.***
      </para>
        <para id="id6257512">printf(“ So nguyen la %d \n So thuc la %f”,i, (float)i );</para>
        <para id="id6257530">
        ***SORRY, THIS MEDIA TYPE IS NOT SUPPORTED.***
      </para>
        <para id="id6257556">printf(“\n So thuc la %f \n So nguyen la %d”,bien_thuc, </para>
        <para id="id6257562">(int)bien_thuc);</para>
        <para id="id6257578">
        ***SORRY, THIS MEDIA TYPE IS NOT SUPPORTED.***
      </para>
        <para id="id6257604">printf(“\n Viet binh thuong =%f \n Viet kieu khoa </para>
        <para id="id6257610">hoc=%e”,bien_thuc, bien_thuc);</para>
        <para id="id6257616">Kết quả in ra màn hình:</para>
        <para id="id6257621">
        ***SORRY, THIS MEDIA TYPE IS NOT SUPPORTED.***
      </para>
        <para id="id6257647">Lưu ý: Đối với các ký tự điều khiển, ta không thể sử dụng cách viết thông thường để hiển thị chúng.</para>
        <para id="id6257661">Ký tự điều khiển là các ký tự dùng để điều khiển các thao tác xuất, nhập dữ liệu. </para>
        <para id="id6257669">Một số ký tự điều khiển được mô tả trong bảng:</para>
        <table id="id6257677">
          <tgroup cols="4">
            <colspec colnum="1" colname="c1"/>
            <colspec colnum="2" colname="c2"/>
            <colspec colnum="3" colname="c3"/>
            <colspec colnum="4" colname="c4"/>
            <tbody>
              <row>
                <entry>Ký tự điều khiển</entry>
                <entry>Giá trị thập lục phân</entry>
                <entry>Ký tự được hiển thị</entry>
                <entry>Ý nghĩa</entry>
              </row>
              <row>
                <entry>\a</entry>
                <entry>0x07 </entry>
                <entry>BEL</entry>
                <entry>Phát ra tiếng chuông</entry>
              </row>
              <row>
                <entry>\b</entry>
                <entry>0x08 </entry>
                <entry>BS</entry>
                <entry>Di chuyển con trỏ sang trái 1 ký tự và xóa ký tự bên trái (backspace)</entry>
              </row>
              <row>
                <entry>\f</entry>
                <entry>0x0C</entry>
                <entry>FF</entry>
                <entry>Sang trang</entry>
              </row>
              <row>
                <entry>\n</entry>
                <entry>0x0A</entry>
                <entry>LF</entry>
                <entry>Xuống dòng</entry>
              </row>
              <row>
                <entry>\r</entry>
                <entry>0x0D</entry>
                <entry>CR</entry>
                <entry>Trở về đầu dòng</entry>
              </row>
              <row>
                <entry>\t</entry>
                <entry>0x09</entry>
                <entry>HT</entry>
                <entry>Tab theo cột (giống gõ phím Tab)</entry>
              </row>
              <row>
                <entry>\\</entry>
                <entry>0x5C</entry>
                <entry>\</entry>
                <entry>Dấu \</entry>
              </row>
              <row>
                <entry>\’</entry>
                <entry>0x2C</entry>
                <entry>‘</entry>
                <entry>Dấu nháy đơn (‘)</entry>
              </row>
              <row>
                <entry>\”</entry>
                <entry>0x22</entry>
                <entry>“</entry>
                <entry>Dấu nháy kép (“)</entry>
              </row>
              <row>
                <entry>\?</entry>
                <entry>0x3F</entry>
                <entry>?</entry>
                <entry>Đấu chấm hỏi (?)</entry>
              </row>
              <row>
                <entry>\ddd</entry>
                <entry>ddd</entry>
                <entry namest="c3" nameend="c4">Ký tự có mã ACSII trong hệ bát phân là số ddd </entry>
              </row>
              <row>
                <entry>\xHHH</entry>
                <entry>oxHHH</entry>
                <entry namest="c3" nameend="c4">Ký tự có mã ACSII trong hệ thập lục phân là HHH</entry>
              </row>
            </tbody>
          </tgroup>
        </table>
        <para id="id6258254">Ví dụ:</para>
        <para id="id6258266">#include &lt;stdio.h&gt;</para>
        <para id="id6258270">#include&lt;conio.h&gt;</para>
        <para id="id6258275">int main ()</para>
        <para id="id6258279">{ clrscr();</para>
        <para id="id6258288">printf("\n Tieng Beep \a");</para>
        <para id="id6258294">printf("\n Doi con tro sang trai 1 ky tu\b");</para>
        <para id="id6258306">printf("\n Dau Tab \tva dau backslash \\");</para>
        <para id="id6258317">printf("\n Dau nhay don \' va dau nhay kep \"");</para>
        <para id="id6258330">printf("\n Dau cham hoi \?");</para>
        <para id="id6258335">printf("\n Ky tu co ma bat phan 101 la \101");</para>
        <para id="id6258341">printf("\n Ky tu co ma thap luc phan 41 la \x041");</para>
        <para id="id6258347">printf("\n Dong hien tai, xin go enter");</para>
        <para id="id6258358">getch();</para>
        <para id="id6258364">printf("\rVe dau dong");</para>
        <para id="id6258370">getch();</para>
        <para id="id6258375">return 0;</para>
        <para id="id6258380">}</para>
        <para id="id6258385">Kết quả trước khi gõ phím Enter:</para>
        <figure id="id6258393">
          <media type="image/png" src="graphics2.png">
            <param name="height" value="113"/>
            <param name="width" value="311"/>
          </media>
        </figure>
        <para id="id6258422">Kết quả sau khi gõ phím Enter:</para>
        <figure id="id6258430">
          <media type="image/png" src="graphics3.png">
            <param name="height" value="125"/>
            <param name="width" value="313"/>
          </media>
        </figure>
      </section>
    </section>
    <section id="id-755420392548">
      <name>BÀI TẬP</name>
      <section id="id-222772767258">
        <name>Mục đích yêu cầu</name>
        <para id="id6258476">Làm quen và nắm vững các lệnh đơn giản (printf, scanf), các kiểu dữ liệu chuẩn (int, long, char, float...), các phép toán và các hàm chuẩn của ngôn ngữ lập trình C. Thực hiện viết các chương trình hoàn chỉnh sử dụng các lệnh đơn giản và các kiểu dữ liệu chuẩn đó.</para>
      </section>
      <section id="id-144426826452">
        <name>Nội dung</name>
        <para id="id6258498">1. Viết chương trình in lên màn hình một thiệp mời dự sinh nhật có dạng:</para>
        <para id="id6258505">*******************************************</para>
        <para id="id6258513">THIEP MOI</para>
        <para id="id6258521">Thân mời bạn : Nguyễn Mạnh Hùng</para>
        <para id="id6258526">Tới dự lễ sinh nhật của mình</para>
        <para id="id6258532">Vào lúc 19h ngày 12/10/2005</para>
        <para id="id6258538">Tại 05/42 Trần Phú - Cần Thơ</para>
        <para id="id6258544">Rất mong được đón tiếp !</para>
        <para id="id6258549">Hồ Thu Hương</para>
        <para id="id6258562">*******************************************</para>
        <para id="id6258570">2. Viết chương trình nhập vào bán kính r của một hình tròn. Tính chu vi và diện tích của hình tròn theo công thức :</para>
        <para id="id6258579">Chu vi CV = 2*Pi*r</para>
        <para id="id6258588">Diện tích S = Pi*r*r</para>
        <para id="id6258597">In các kết quả lên màn hình</para>
        <para id="id6258602">3. Viết chương trình nhập vào độ dài 3 cạnh a, b, c của một tam giác. Tính chu vi và diện tích của tam giác theo công thức:</para>
        <para id="id6258611">Chu vi CV = a+b+c</para>
        <para id="id5874287">Diện tích  S = sqrt(p*(p-a)*(p-b)*(p-c))</para>
        <para id="id5874298">Trong đó: p=CV/2</para>
        <para id="id5874303">In các kết quả lên màn hình </para>
        <para id="id5874308">4. Viết chương trình tính logax với a, x là các số thực nhập vào từ bàn phím, và x&gt;0, a&gt;0, a != 1.( dùng logax=lnx/lna)</para>
        <para id="id5874336">5. Viết chương trình nhập vào tọa độ của hai điểm (x1, y1) và (x2, y2)</para>
        <para id="id5874343">a) Tính hệ số góc của đường thẳng đi qua hai điểm đó theo công thức:</para>
        <para id="id5874351">Hệ số góc = (y2 - y1) /(x2 - x1)</para>
        <para id="id5874366">b) Tính khoảng cách giữa hai điểm theo công thức:</para>
        <para id="id5874373">Khoảng cách = 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msqrt><m:mrow><m:msup><m:mfenced open="" close=""><m:mrow><m:msub><m:mi>y</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>2</m:mn></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">−</m:mo><m:msub><m:mi>y</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>1</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mfenced><m:mstyle fontsize="8pt"><m:mrow><m:mn>2</m:mn></m:mrow></m:mstyle></m:msup><m:mo stretchy="false">+</m:mo><m:msup><m:mfenced open="" close=""><m:mrow><m:msub><m:mi>x</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>2</m:mn></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">−</m:mo><m:msub><m:mi>x</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>1</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mfenced><m:mstyle fontsize="8pt"><m:mrow><m:mn>2</m:mn></m:mrow></m:mstyle></m:msup></m:mrow></m:msqrt></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{ sqrt { left (y rSub { size 8{2} }  - y rSub { size 8{1} }  right ) rSup { size 8{2} } + left (x rSub { size 8{2} }  - x rSub { size 8{1} }  right ) rSup { size 8{2} } } } {}</m:annotation></m:semantics></m:math></para>
        <para id="id5874522">6. Viết chương trình nhập vào một ký tự:</para>
        <para id="id5874528">a) In ra mã Ascii của ký tự đó.</para>
        <para id="id5874533">b) In ra ký tự kế tiếp của nó.</para>
        <para id="id5874539">7. Viết chương trình nhập vào các giá trị điện trở R1, R2, R3 của một mạch điện :</para>
        <para id="id5874547">Tính tổng trở theo công thức: 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mfrac><m:mn>1</m:mn><m:mi>R</m:mi></m:mfrac><m:mo stretchy="false">=</m:mo><m:mrow><m:mrow><m:mfrac><m:mn>1</m:mn><m:msub><m:mi>R</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>1</m:mn></m:mrow></m:mstyle></m:msub></m:mfrac><m:mo stretchy="false">+</m:mo><m:mfrac><m:mn>1</m:mn><m:msub><m:mi>R</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>2</m:mn></m:mrow></m:mstyle></m:msub></m:mfrac></m:mrow><m:mo stretchy="false">+</m:mo><m:mfrac><m:mn>1</m:mn><m:msub><m:mi>R</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>3</m:mn></m:mrow></m:mstyle></m:msub></m:mfrac></m:mrow></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{ {  {1}  over  {R} } = {  {1}  over  {R rSub { size 8{1} } } } + {  {1}  over  {R rSub { size 8{2} } } } + {  {1}  over  {R rSub { size 8{3} } } } } {}</m:annotation></m:semantics></m:math></para>
        <para id="id5874662">8. Viết chương trình nhập vào điểm ba môn Toán, Lý, Hóa của một học sinh. In ra điểm trung bình của học sinh đó với hai số lẻ thập phân.</para>
        <para id="id5874673">9. Viết chương trình nhập vào ngày, tháng, năm. In ra ngày tháng năm theo dạng dd/mm/yy. (dd: ngày, mm: tháng, yy : năm. Ví dụ: 20/11/99 )</para>
        <para id="id5874682">10. Viết chương trình đảo ngược một số nguyên dương có đúng 3 chữ số.</para>
      </section>
    </section>
  </content>
</document>
