1
CHƯƠNG 1
CÁC THAO TÁC VÀO RA CƠ BN VÀ
CÁC CÂU LNH CÓ CU TRÚC
1.1. CÂU HI
1. Cho biết s các bước lp nh nht ca câu lnh while và lnh do...while?
2. Gi s s là mt câu lnh có cu trúc và e1, e2, e3 là các biu thc, có s khác nhau
gì gia đon mã:
for (e1;e2;e3)
s;
đon mã:
e1;
while (e2) {
e;
e3;
}
2. Cho biết giá tr ca x sau khi thc hin câu lnh sau:
for (x = 0; x < 100, x++) ;
3. Cho biết giá tr ca x sau khi thc hin câu lnh sau:
for (ctr = 2; ctr < 10; ctr += 3) ;
5. Có bao nhiêu ký t X được in ra sau khi thc hin đon mã:
for (x = 0; x < 10; x++)
for (y = 5; y > 0; y--)
puts("X");
6. Cho biết đim sai trong đon mã sau:
record = 0;
while (record < 100)
{
printf( "\nRecord %d ", record );
printf( "\nGetting next number..." );
}
7. Cho biết đim sai trong đon mã sau:
for (counter = 1; counter < 10; counter++);
printf("\nCounter = %d", counter );
8. S khác nhau gia lnh break và lnh continue là gì?
9. Vòng lp vô hn là gì? làm thế nào để to nó?
10. Hai s kin gì làm kết thúc vic chy chương trình?
2
11. Hàm exit() dùng để làm gì?
12. Câu lnh làm cho điu khin chương trình chuyn đến bước lp kế tiếp trong mt
lnh lp.
13. Câu lnh chuyn điu khin chương trình đến cui vòng lp.
14.đim gì sai trong đon mã sau?
switch( answer )
{
case 'Y': printf("You answered yes");
break;
case 'N': printf( "You answered no");
}
15.đim gì sai trong đon mã sau?
switch( choice )
{
default:
printf("You did not choose 1 or 2");
case 1:
printf("You answered 1");
break;
case 2:
printf( "You answered 2");
break;
}
16. Viết li câu trên bng cách dùng lnh if.
17. Viết mt vòng lp vô hn do...while.
TR LI:
1. S vòng lp nh nht ca lnh while có th thc hin là 0 và s vòng lp nh nht
ca lnh do...while có th thc hin là 1.
2. Không có s khác nhau gia hai đon mã tr khi s cha câu lnh continue. Ví d
câu lnh for sau đây s lp 4 ln và kết thúc nhưng câu lnh while s lp vô hn:
for (i = 0; i<4; i++)
if (i = =2) continue;
i = 0;
while (i<4)
{ if (i = = 2) continue;
i++; }
3. x = 100.
4. ctr = 11.
5. 50 ký t X.
3
6. Chương trình không bao gi dng
7. Du ; không th đặt cui lnh for
8. Khi gp lnh break, vic x lý s lp tc thoát khi lnh for, do...while hoc while
chc lnh break. Khi gp lnh continue thì bước lp kế tiếp ca vòng lp s thc hin
ngay.
9. Vòng lp vô hn thc thi vĩnh vin. Có th to ra vòng lp vô hn bi các câu lnh
for, do...while, hoc while vi điu kin kim tra luôn đúng
10. Viêc thc thi chương trình s kết thúc khi đạt đến cui hàm main() hoc khi hàm
exit() được gi.
11. Hàm exit() làm kết thúc chương trình. Mt giá tr phi được truyn cho hàm exit().
Giá tr này được tr v cho h điu hành.
12. continue;
13. break;
14. Không có gì sai.
15. Thiếu câu lnh break sau trường hp default.
16.
if( choice == 1 )
printf("You answered 1");
else if( choice == 2 )
printf( "You answered 2");
else
printf( "You did not choose 1 or 2");
17.
do
{
/* các câu l•nh */
} while ( 1 );
1.2. BÀI TP
Bài 1. Viết chương trình nhp d liu cho các biến kiu int, long int, float, chui, sau
đó hin th ra màn hình.
#include <stdio.h>
#include <conio.h>
void main()
{
int a;
long int b;
float x;
4
char st[10];
printf("\n Vao du lieu tu ban phim ");
printf("\n a = "); scanf("%d",&a);
printf("\n b = "); scanf("%ld",&b);
printf("\n x = "); scanf("%f",&x);
printf("\n Nhap vao mot chuoi :");scanf("%s",st);
printf("\n a :%10d\n b :%10ld\n x :%10.2f",a,b,x);
printf("\n Chuoi da nhap :%s",st);
getch();
}
Bài 2. Viết chương trình minh ha vic khai báo và khi gán các biến.
#include<stdio.h>
#include<conio.h>
void main()
{
int a = 20 ; /* Khai bao va khoi dau cac bien */
int b = 15;
float x = 25.678;
clrscr();
printf("\n1:%d %f\n",a,x);
printf("2:%4d %10f\n",b,x);
printf("3:%2d %3f\n",a,x);
printf("4:%10.3f %10d\n",x,b);
printf("5:%-5d %f\n",a,x);
printf("6:%*d\n",b,b);
printf("7:%*.*f\n",12,5,x);
printf("8:%x :%8x :\n",a,a);
printf("9:%o :%8o :\n",a,a);
getch();
}
Bài 3. Cho biết kết qu ca chương trình sau đây:
#include<stdio.h>
#include<conio.h>
void main()
{
int m = 3,p = 5;
int a1,a2,a3,a4,a5;
5
float x1,x2,x3,x4;
clrscr();
printf("\n Tim gia tri gan cho cac bien ");
a1 = m<p;
a2 = m == p;
a3 = p%m + p>m;
a4 = m*(p>m ? m:p);
a5 = m*(p<m ? p:p);
x1 = p/m;
x2 = (float)p/m;
x3 = (p +0.5)/m;
x4 = (int)(p+0.5)/m;
printf("\n a1 = %d ",a1);
printf("\n a2 = %d ",a2);
printf("\n a3 = %d ",a3);
printf("\n a4 = %d ",a4);
printf("\n a5 = %d ",a5);
printf("\n x1 = %10.3f ",x1);
printf("\n x2 = %10.3f ",x2);
printf("\n x3 = %10.3f ",x3);
printf("\n x4 = %10.3f ",x4);
getch();
}
Bài 4. Cho biết kết qu ca chương trình sau đây:
#include <stdio.h>
#include <conio.h>
void main()
{
int a = 10, b = 5,c = 10, d;
clrscr();
printf("\n Minh hoa phep toan tang giam \n");
d=a== (b=c);
printf(" A :a =%d b =%d c =%d d =%d\n",a,b,c,d);
a=b=c=5;
a+=b+=c;
printf(" B :a =%d b =%d c =%d \n",a,b,c);