Tải bản đầy đủ (.docx) (31 trang)

đáp án trắc nghiệm cơ sở lập trình ehou

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (120.83 KB, 31 trang )

Câu hỏi

Đáp án

Giả sử có câu lệnh ch=’A’. Vậy ch sẽ
chứa bao nhiêu byte?
Cho biến x, đâu là câu lệnh để nhập
giá trị cho biến x?
Trong C, các tác vụ xuất nhập chuẩn
được khai báo trong tập tin:
Ngôn ngữ lập trình C có chứa các
thành phần?
Biến là gì?
Chọn phát biểu sai: Một tên bắt đầu
bằng:
Cho khai báo:
int a,b,c;
Anh/chị hãy cho biết đâu là một công
thức (câu lệnh) SAI

1
cin>>x;
stdio.h
Tập tất cả các ký tự ASCII
Tên gọi của một vùng nhớ
Ký tự chữ số
=> c;

Anh/chị hãy cho biết kết quả của 66
chương trình sau:
Int b=’B’;


Printf(“%d”,b);
Khi gán giá trị mới cho một biến thì: Giá trị cũ bị mất đi
Đoạn chương trình sau đây in ra màn A
hình kết quả bao nhiêu?
int main()
{
int i=65;
printf("%c",i);
getch();
}
Kết quả của đoạn mã sau là bao 10
nhiêu:
int a = 5;
a+=a;
Dữ liệu kiểu kí tự bao gồm:
Cả 3 phương án đều đúng
Sự tương ứng () của thành phần trong Khối lệnh Đoạn văn
C và trong tiếng Việt là?
Xâu định dạng nào sau đây dùng để
in ra một số thực có độ chính xác đơn “%f”
(float)?


Cái gì làm thay đổi độ ưu tiên của
tốn tử trong biểu thức?
Tính tuần tự của máy khi thực hiện
chương trình là?
Cấu trúc lệnh nào sau đây thực hiện
kiểm tra điều kiện sau khi thực hiện
nhóm lệnh lặp:

Nếu nhóm lệnh lặp lồng nhau sau đây
được thực hiện, thì k có giá trị bao
nhiêu?

Cặp ngoặc đơn ()
Từ trên xuống và trái sang phải
do..while

25

int i, j, k=0;
for (i=0; i<5; i++)
for (j=0; j<5; j++)
k++;
int n=1;
n+=2;
switch ( n ) {
case 1: cout<<"So Mot"; break;
case 2: cout<<"So Hai"; break;
case 3: cout<<"So Ba"; break;
default: cout<<"So n > 3";
}
int i=1, S=0;
do {
if (i%2!=0) S+=i;
i += 2;
}while (i<10);
printf("%d",S);

So Ba


25

Nếu đoạn đoạn mã sau được thực thi,
giá trị của S là gì?
33
int i=3, j=10 , S=0;
while (2*i+5*j<100)
{ S += i+j;
i+=2;
j += 5;
}


Cấu trúc lệnh nào sau đây sẽ không a.if
thực hiện nhóm lệnh lặp nếu ngay lần
đầu tiên biểu thức điều kiện sai:
b.for
c.while (sai)
d.Cả 3 đáp án đều đúng
Nếu đoạn mã sau được thực thi, nhóm
lệnh lặp sẽ lặp bao nhiêu lần?
4
int a=5, b=8;
while (a!=b)
{
if (a>b)
a=a-b;
else b=b-a;
}

Đâu là đoạn mã SAI khi viết câu lệnh
rẽ nhánh if?
if(a<b&&a>c)
printf(“c - Min”);
printf(“b - Max”);
else
printf(“Khong xac dinh”);
Đoạn chương trình sau in ra màn hình
T bằng bao nhiêu?
10
int i=5, T=10;
do {
if (i%2==0) T+=i;
i += 2;
}while (i<10);
printf("%d",T);
Đoạn đoạn mã sau cho kết quả cuối
cùng của S là bao nhiêu?
13
int S=10;
for (int i=0; i<3;i++)


for (int j=0;j<3;j++)
if ((i+j)%2==1) S+=2;
else S--;
printf("%d",S);
Cho đoạn chương trình:
int n=0,i;
while(1)

{
printf("\nNhap so nguyen: ");
scanf("%d",&i);
if(i<0)
{
continue;
}
else
n=n+i;
if(i==0)
break;
}
Để dừng vòng lặp anh/chị phải nhập
giá trị i là bao nhiêu?
Đoạn mã sau đây : for (;;) là :
Nếu đoạn mã sau được thực thi, kết
quả in ra màn hình sẽ là?
int i=0;
while (i<10)
{ printf("%d ",i);
i=i+1;
if (i>5) break;
}
Nếu đoạn đoạn mã sau đây được thực
thi, thì biến t có giá trị bao nhiêu?
int d=10, t ;
switch (d)
{
case 10: t=100;
case 7 : t=50; break;

default : t=0;
}
Cho chương trình:
#include <stdio.h>
int main()
{

Nhập i là 0

Lặp lại mãi mãi không dừng
012345

50

Chương trình lặp vơ hạn


int i;
for (i=2; ; i++)
printf("%5d",i);
}
Anh/chị hãy cho biết kết quả in ra
màn hình của chương trình
Nếu đoạn mã sau được thực thi, S sẽ 101
có giá trị bao nhiêu?
int i= 1, S=1;
while (i<=20)
{
S+= 2*i+2;
i+=4;

}
Nếu đoạn mã sau được thực thi, số 4
chuỗi "Hello" được xuất ra trên màn
hình là bao nhiêu lần?
int x=10, y=20;
while (x{
printf ("Hello");
x+=3;
}
cho chương trình:
Ước số chung lớn nhất của a và b với
int a,b;
a, b được nhập vào từ bàn phím
printf("\nNhap a: ");
scanf("%d",&a);
printf("\nNhap b: ");
scanf("%d",&b);
while(a!=b){
if(a>b)
a=a-b;
else
b=b-a;
}
printf("%d",a);
Anh/chị hãy cho biết kết quả hiện ra
là gì?
#include <stdio.h>

1234



int main()
{
int i;
for (i=1; i<5; i++)
printf("%5d",i);
}
Anh/chị hãy cho biết kết quả in ra
màn hình của chương trình?
Nếu nhóm lệnh lặp lồng nhau sau đây 100
được thực hiện, thì d có giá trị bao
nhiêu?
int i, j, d=0;
for (i=0; i<10; i++)
for (j=0; j<10; j++)
d++;
Nếu câu lệnh lặp sau được thực hiện 0 3 6 9
thì kết quả in ra màn hình là gì?
int i;
for (i=0; i<10; i++)
{ printf("%d ",i);
i=i+2;
}
Đoạn đoạn mã sau cho kết quả cuối
cùng của S là bao nhiêu?
0
int i= 10, S=0;
for ( ; i<2 ; i++ ) S+= i;
Cấu trúc lệnh rẽ nhánh để yêu cầu

máy tính:
anh/chị hãy cho biết cấu trúc lệnh lặp
for nào sau đây viết sai?

Thực hiện một nhóm lệnh theo điều
kiện tương ứng
a.
for(int i=1,j=0;i<9,j<5;i++,j++)
cout<b.
for(int i = 1; i<10; i++)
cout<< i;
c.
for(int i=0,j=1;i<9;i++)
cout<

d.
for(int j=0, j<10, j++)
cout<Nếu đoạn mã sau được thực thi, S sẽ 166
có giá trị bao nhiêu?
int i= 1, S=1;
do{
S+= 5*i - 2;
i+=3;
}while (i<15);
Anh/chị hãy cho biết đoạn chương a.
trình nào sau đây cho in kết quả là 10 int j=0;
lên màn hình?

while(j<10)
cout<b.
int j=0;
while(j<10)
j++;
cout<c.
int j;
for(j=0;j<10;j++)
j=j+1;
cout<d.
int j;
for(j=0;j<10;j++)
cout<Kết quả in ra màn hình của chương
trình sau là gì?
24
int main()
{
int i;
for (i=2; i<=4; i+=2)
printf("%3d",i);
return 0;
}


Sau khi thực thi đoạn mã sau, giá trị
của x là gì?

1
int i, x=0 ;
for (i=1 ; i<10 ; i++)
{
if ( i%2==1) x = x+i ;
else x++ ;
break;
}
printf ("%d ", x);
int S=10;
for (int i=0; i<3;i++)
for (int j=0;j<3;j++)
if ((i+j)%2==1) S+=2;
else S--;
printf("%d",S);

13

Chọn phát biểu sai: Một tên bắt đầu a.
bằng:
Ký tự gạch nối
b.
Ký tự chữ cái
c.
Ký tự chữ cái - Ký tự gạch nối
d.
Ký tự chữ số
Đoạn chương trình sau đây cho kết Chương trình chạy bình thường cho
quả như thế nào?
đến khi nhập n và nhấn enter thì

int main()
chương trình bị ngắt do lỗi logic
{
int n;
printf("nhap n");
scanf("%d", n);
getch();
}
Để thực hiện tính công thức:

a.(x+y)%(x-z)
b.(x+y):(x-z)
c.(x+y)/(x-z)


d.x+y/x-z

Kiểu dữ liệu nào dưới đây được coi là
kiểu dữ liệu cơ bản trong ngơn ngữ Kiểu double
lập trình C?
Những tên biến nào dưới đây được _diemltC
viết đúng theo quy tắc đặt tên của
ngơn ngữ lập trình C?
Đoạn chương trình sau đây in ra màn Chương trình báo lỗi
hình kết quả bao nhiêu?
int main()
{
float a,b;
a=11; b= 3;
printf("%f", a%b);

getch();}
Đoạn chương trình sau đây in ra màn 2
hình kết quả bao nhiêu?
int main()
(đề sai phải là ‘printf(“%d”,a/b);’ như
{
này mới đúng)
int a, b;
a=10; b=4;
printf("%f",a/b);
getch();
}
Giá trị ban đầu của a là 5, b là 7. Sau 10, 7
khi thực hiện xong hàm sum(int a, int
b) thì a, b có giá trị bao nhiêu?
int sum (int *a, int b)
{
a=a+5;
return a+b;
}
Khi có lời gọi một hàm, máy sẽ làm Tạm dừng phần chương trình đang
gì trước khi chuyển vào thực hiện chạy
hàm đó?
Hãy cho biết lời gọi đúng nhất đối với printf(“%d”,AB(5,6));


hàm sau:
int AB( int x, int y ){ return x+y; }
Chọn lệnh gọi hàm đúng nhất (với a a.
là một biến) của khai báo sau:

H( a, &5);
int H( int *x , int y );
b.
H(&a, a*5); (sai)
c.
H( a, 5);
d.
H(&a, 5);
Hàm sau cho kết quả (trả về) giá trị
28 với lời gọi nào sau đây:
H(8)
int H( int x ){
if (x>0) return x+20;
else return x; }
Cho chương trình sau:
5
#include<stdio.h>
int main(){
int n=5, tg;
int a[5]={1,2,3,4,5};
for(int i=0;iprintf("%5d",a[n-1]);
}
Anh/chị hãy cho biết kết quả của
chương trình trên là bao nhiêu?
Để biết độ dài của xâu s ta sử dụng strlen( s)
lệnh?
Cho chương trình sau:
2
#include<stdio.h>

int main(){
int n=5, t=0;;
int a[5]={1,2,3,4,5};
for(int i=0;iif (a[i]%2==0) t++;
printf("%5d",t);
}
Anh/chị hãy cho biết kết quả của
chương trình trên là bao nhiêu?


Đoạn chương trình sau làm gì (a là Chèn thêm phần tử cuối lên đầu mảng
mảng số nguyên, n là số phần tử):
for( i=n; i > 0; i--)
{ a[i] = a[i-1]; }
a[0] = a[n];
n = n+1;
Đoạn chương trình sau làm gì (a là Đảo ngược các phần tử trong mảng
mảng số nguyên, n là số phần tử):
for( i=0; i < n/2; i++)
{ tg = a[i];
a[i] = a[n-1-i];
a[n-1-i] = tg; }
Các phần tử của mảng sau đây có chỉ Từ 0 đến 99
số:
int a[100];
Đoạn chương trình sắp xếp mảng tăng Thay đổi điều kiện so sánh của lệnh if
dần dưới đây sẽ cần thay đổi gì để là a[i] < a[j]
được sắp xếp giảm dần (a là mảng số
nguyên, n là số phần tử):

for( i=0; i < n-1; i++)
for( j=i+1; j < n; j++)
if( a[i] > a[j] )
{ tg = a[i]; a[i] = a[j]; a[j] = tg; }
Khai báo mảng sau đây có thể chứa Dãy tối đa 100 số nguyên
được:
int a[100];
Khai báo mảng sau đây có thể chứa Bảng số thực tối đa 100 hàng, 200 cột
được:
float a[100][200];
Cho khai báo:
float a[10][20];
Chọn phát biểu đúng?

Mảng a chứa tối đa 200 số thực

Kết quả của biểu thức sau đây là bao 10
nhiêu (10 - (8 - 2)*10)/ ( 5 - 5 *2)?
Cho đoạn chương trình như sau
Sắp xếp danh sách Sinh viên theo tuổi


struct SV
{
char ht[35];
int Tuoi;
float DTB;
};
void Function(SV ds[], int n)
{

for(int i=0;ifor(j=i+1;jff(ds[i].Tuoi>ds[j].Tuoi)
{
tg = ds[i];
ds[i] = ds[j];
ds[j] = tg;
}
}
Vậy đoạn CTC Function thực hiện
thao tác gì?
Đoạn chương trình sau sẽ làm gì trên
mảng (a là mảng số nguyên, n là số
phần tử):
for( i=0; i < n; i++) { printf(“ %d ”,
a[n-1-i]); }
Đọc dữ liệu của tập tin văn bản sử
dụng các hàm nào sau đây
Đọc, ghi dữ liệu của tập tin nhị phân
sử dụng các hàm nào sau đây
Đâu là cú pháp khai báo biến trỏ
trong ngơn ngữ C/C++
Thuật tốn là?
Kiểu truy nhập “a+b” được dùng để
làm gì?
Biến trỏ dùng để làm gì?
Lệnh khai báo sau đây khai báo mảng
có bao nhiêu phần tử?
struct SV
{

char ht[35];
int Tuoi;
float DTB;
}ds[10];
Đâu là khai báo hàm cho phép tính

(Tuoi) tăng dần

Hiện các số từ mảng ra màn hình theo
thứ tự ngược với mảng

fscanf, fgets, fgetc
fread, fwrite
*Tên_biến_trỏ
Các bước để giải quyết một bài toán
Mở tập tin để đọc/ghi bổ sung theo
kiểu nhị phân, chưa có thì tạo mới
Lưu trữ địa chỉ của biến
10

int sum(float a[], int n)


tổng các phần tử của mảng a gồm n
số thực?
Các toán tử tăng (++) giảm (--) sẽ a.Tùy theo kiểu dữ liệu của biến trỏ
dịch chuyển biến trỏ đi 1 bước nhảy
có độ lớn là bao nhiêu bytes?
b.1 byte (sai)
c.4 bytes (sai)

d.8 bytes
Những hàm nào sau đây được sử malloc(), calloc(), realloc().
dụng trong việc cấp phát vùng nhớ
động?
Kiểu truy nhập “wb” được dùng để Mở tập tin để ghi theo kiểu nhị phân,
làm gì?
chưa có thì tạo mới
Tập tin được chia thành mấy loại
2 (tập tin văn bản và tập tin nhị phân)
Ghi dữ liệu của tập tin văn bản sử fprintf, fputc, fputs
dụng các hàm nào sau đây
Đoạn chương trình sau thực hiện
Mở tệp MYFILE.DTA để đọc và hiện
cơng việc gì?
kí tự đọc được lên màn hình
#include <stdio.h>
void main()
{
FILE *file_pointer;
char file_character;
file_pointer =
fopen("MYFILE.DTA","r");
while((file_character =
getc(file_pointer)) != EOF)
printf("%c", file_character);
fclose(file_pointer);
}
Tại sao cần lệnh sau trước khi nhập Xóa bộ đệm (dịng vào) của bàn phím
xâu ký tự:
để nhập dữ liệu hồn tồn mới

fflush(stdin);
Để mở file “SoNguyen.dat” dưới f = fopen(“SoNguyen.dat”, “wt”);
dạng tệp Nhị phân và cho phép ghi
nội dung vào thì câu lệnh là gì?
Hàm getch() được khai báo trong tập conio.h
tin:


Đọc, ghi dữ liệu của tập tin văn bản
sử dụng các hàm nào sau đây
Cho đoạn chương trình như sau
struct SV
{
char ht[35];
int Tuoi;
float DTB;
};
void Function(SV ds[], int n)
{
for(int i=0;ifor(j=i+1;jff(ds[i].DTB>ds[j].DTB)
{
tg = ds[i];
ds[i] = ds[j];
ds[j] = tg;
}
}
Vậy đoạn CTC Function thực hiện
thao tác gì?

Chương trình sau thực hiện nhiệm vụ
gì?
#include <conio.h>
#include <stdio.h>
main()
{
int n;
FILE *f;
f=fopen(“OUT.txt","wt");
scanf("%d",&n);
fprintf(f, “%5d”,n);
fclose(f);
}
Hình elíp để mơ tả thao tác trong
thuật toán là?
Lệnh “return” trong hàm để

fscanf, fprintf, fputc, fputs, fgets,
fgetc
Sắp xếp danh sách Sinh viên theo
điểm trung bình (DTB) tăng dần

Nhập số ngun từ bàn phím và lưu
giá trị đó vào tệp “OUT.txt”

Bắt đầu hoặc kết thúc thuật toán

Trả về một giá trị kết quả và kết thúc
hàm
Chỉ ra tên đúng của các ngơn ngữ lập C/C++, Java, Pascal

trình thơng dụng?
Địa chỉ đầy đủ của một biến nhớ Địa chỉ Segment và địa chỉ Offset của
được tạo ra trong chương trình bao biến đó


gồm những thành phần nào:
Cho chương trình sau:
#include <stdio.h>
int sum(int a, int b);
int main()
{
int a=5, b =9;
printf("\nTong: %d", sum(a,-b));
}
int sum(int a, int b){
return a+b;
}
Anh/chị hãy cho biết kế quả của
chương trình trên?
Cho đoạn chương trình như sau:
typedef struct { int x;int y;} diem;
diem p = {6,11};
diem q;
q = p;
q.x = 9;
Lệnh nào không thể thực hiện trong
cấu trúc lệnh trên:
Các yếu tố cơ bản để viết hàm gồm:
Mảng dùng để chứa cài gì là đúng
nhất trong số:

Cho tệp “SoNguyen.txt” chứa các giá
trị như sau:
“6 7 8 9”
Kết quả của biến x có giá trị bằng bao
nhiêu khi thực hiện các câu lệnh:
fscanf(f,”%d”,&x);
fscanf(f,”%d”,&y);
fscanf(f,”%d”,&z);
fscanf(f,”%d”,&t);
Khai báo hàm sau sẽ có:
int A( int *x , int *y );
Dấu chấm phẩy ở cuối trong khai báo
kiểu cấu trúc có bắt buộc khơng?
Đâu là phép tốn lấy địa chỉ của một
biến nhớ?
Đâu là cú pháp khai báo con trỏ
hằng?

Tong: -4

Khơng lệnh nào

Đầu vào, thuật tốn, đầu ra
Danh sách nhiều dữ liệu cùng kiểu
6

Hai tham biến

Tên_biến_trỏ = &Tên_biến_nhớ;
*const Tên_biến_trỏ;



Cho đoạn chương trình như sau:

typedef struct SV
{char hoten[35];
char quequan[30];
};
void main()
{SV *p;
strcpy(p.hoten,"Nguyen Van A");

Dòng lệnh strcpy(p.hoten,"Nguyen
Van A"); sai ở đâu?
Lập trình nhằm mục đích?
Cho đoạn mã lệnh sau. Dịng lệnh nào
là dòng lệnh sai?
int a = 12, b=14;
int *const p1 = &a;
int const *p2 = &b;
*p1 = b;

Toán tử “.”

Ứng dụng máy tính trong thực tế
a.
2 (sai)
b.
1
c.

3

d.
4
Kết quả đoạn chương trình sau bằng 14 2 7
bao nhiêu?
int sum (int a, int &b)
{
a=a+5;
return a+b;
}
void main ()
{
int a =2 , b= 7;
printf(“%5d”, sum(a,b));
print(“%5d%5d”, a, b);
}
Cho đoạn chương trình như sau
a={“Duy”,34,”Ha Noi”};
typedef struct SV
{char ht[35];
int tuoi;
char quequan[30];
};


SV a;
Khi gán vào chương trình lệnh nào
sau đây khơng gây lỗi:
Phát biểu nào sau đây là sai?

a.Chỉ có con trỏ mới được sử dụng
làm tham số cho hàm
b.Hàm có thể nhận tham số là con trỏ
hoặc biến.
c.Khi gọi hàm địa chỉ của biến nhớ
hoặc con trỏ được truyền vào cho
hàm
d.Con trỏ có thể được sử dụng làm
tham số cho hàm
Đoạn chương trình sau làm gì (a là Đổi chỗ phần tử đầu và cuối cho nhau
mảng số nguyên, n là số phần tử):
tg = a[0];
a[0] = a[n-1];
a[n-1] = tg;
Biên dịch chương trình là để?
Chuyển chương trình từ dạng mã
nguồn về dạng mã máy
Hàm sau cho kết quả (trả về) gì với 15
lời gọi là XYZ(5):
int XYZ( int x )
{ if (x>0) return x+XYZ(x-1); else
return x; }
Sản phẩm của lập trình trên máy tính a.Chương trình phần mềm.
là gì?
b.Hệ điều hành Windows
c.Các tài liệu, văn bản trên máy.
d.Phần cứng máy tính
Chúng ta có thể truyền cho tham biến a.
gồm:
Biến

b.
Địa chỉ của biến (&biến)
c.
Biểu thức


d.
Hằng
Giả sử ta có: int a[5], *p. Câu lênh a.p = a;
nào sau đây sẽ không hợp lệ
b.*(p+1) = a[2];
c.a = p;
d.p = a[0];
Cho khai báo:
int a[ ] = {2, 4, 6, 8};
2
Kết quả của câu lệnh sau là gì?
printf(“%5d”,a[0]);
Cho chương trình sau:
26
#include<stdio.h>
int main(){
int n=6,t=0;
int a[6]={5,6,9,15,4,8};
for(int i=0;iif(a[i]%2==1)
t+=a[i];
}
printf("\n%d",t);
}

Anh/chị hãy cho biết kết quả của
chương trình trên là bao nhiêu?
Thế nào là hằng con trỏ?
a.Là con trỏ, trỏ tới địa chỉ vùng nhớ
là hằng
b.Là con trỏ, tới địa chỉ của mảng là
hằng.
c.Là con trỏ, trỏ tới ơ nhớ có dữ liệu
là hằng
d.Là con trỏ, trỏ tới địa chỉ đầu của
mảng.
Sự khác nhau giữa 2 kiểu khai báo Khác biệt về cách khai báo biến theo
“struct tênkiểu{…};” và “typedef kiểu cấu trúc trong chương trình
struct tênkiểu{…}tênsửdụng;”:
Thuật tốn được mơ tả bằng?
Mơ tả từng bước, sơ đồ khối
Cho biến x, đâu là câu lệnh để in giá cout<trị biến x lên màn hình?


Cho chương trình sau :
#include <stdio.h>
void sum(int a){
int tc=0, tl=0;
for(int i=1;i<=a;i++)
if(i%2==1)
tl=tl+i;
else
tc+=i;
printf("%d - %d",tl,tc);

}
int main( )
{
int a=5;
sum(a);
}
Anh/chị hãy cho biết kết quả của
chương trình?
Giá trị ban đầu của a là 0, b là 0. Sau
khi thực hiện xong hàm nhập với a=5,
b=7 thì a, b có giá trị bao nhiêu?
void nhap(int a, int b)
{
printf(“nhap a:”); scanf(“%d”,&a);
printf(“nhap b:”); scanf(“%d”,&b);
}
Cho khai báo:
int a[ ] = {2, 4, 6, 8};
Mảng a có bao nhiêu phần tử?
Cho khai báo như sau:
enum banbe
{Vy=1,
Oanh=2,
Nam=5,
Manh,
}
Vậy trong khai báo trên “Manh” được
máy tính hiểu là đánh số nào?
Cho khai báo các cấu trúc:
struct S1{

int ngay, thang, nam;
};
struct S2

9-6

0, 0

4 phần tử
6

a.S1 và S2 đều được khởi tạo đúng
b.S1 và S2 đều khởi tạo sai
c.S2 đúng


{
char hoten[10];
struct S1 ngaysinh;
};
S1=(2, 1, 3);
S2={“Ly Ly”, {4, 5, 6}};
Trong các khởi tạo giá trị cho các cấu
trúc, đâu là khởi tạo đúng?
Hãy cho biết kết quả của đoạn
chương trình sau:
int *p;
p = (int*)calloc(5,sizeof(int));
*(p+1)=5;
p = realloc(p,6);

printf(“\n p[1] = %d, size p=%d”,
*(p+1), sizeof(p));
Cho biết chỗ sai của hàm sau
void A@B( int x, y ){ return x+y; }

d.S1 đúng

a.p[1] = 5, size p = 20;
b.p[1] = 6, size p = 24;
c.p[1] = 5, size p = 24;
d.p[1] = 6, size p = 20;
a.Sai tên hàm, kiểu hàm và khai báo
tham số
b.Sai kiểu hàm
c.Khơng có chỗ sai

Các bước để thao tác với tập tin

d.Sai tên hàm
Khai báo biến tập tin - Mở tập tin –
Xử lý dữ liệu – Đóng tập tin
Nhiều hàm
Tham trị x và tham biến y

Trong một chương trình có thể chứa:
Khai báo hàm sau sẽ có:
int A( int x , int *y );
Ngơn ngữ lập trình có chức năng a.Tạo cơ chế biên dịch chương trình
chính?
b.Cung cấp quy tắc viết lệnh


c.Khơng phải ba trường hợp trên
Đoạn chương trình sau làm gì (a là Tính tổng các phần tử có giá trị
mảng số nguyên, n là số phần tử):
dương trên mảng
for( tong=0, i=0; i < n-1; i++)
if( a[i] > 0 ) { tong = tong + a[i]; }
Hình thoi để mô tả thao tác trong Lựa chọn theo điều kiện
thuật toán là?
Hãy cho biết kết quả của đoạn mã
lệnh sau:
3
int *p, a=3, b = 5;


p = &b;
*p = a;
printf("\n %d", *p);
Các giai đoạn cơ bản của việc xây a.Mã hóa chương trình
dựng một sản phẩm phần mềm?
b.Khảo sát bài toán
c.Tất cả các phương án đều đúng
Chương trình dạng mã máy là?
Cho chương trình sau:
#include <stdio.h>
int sum(int a, int b);
int main()
{
int a=5, b =9;
printf("\Max: %d", Max(a,-b));

}
int Max(int a, int b){
if(a>=b)
return a;
else
return b;
}
Anh/chị hãy cho biết kế quả của
chương trình trên?
Cho đoạn mã sau:
int a=6, b=7, c=8, d=9;
f = fopen(“SoNguyen.txt”, “wt”);
fprintf(f, “\n%5d”,a);
fprintf(f, “\n%5d”,b);
fprintf(f, “\n%5d”,c);
fprintf(f, “\n%5d”,d);
Kết quả tệp “SoNguyen.txt” gồm các
giá trị nào?
Khai báo mảng sau đây gồm:
int a[] = {3,2,5,3,2,7,5};
Hai lệnh sau sẽ làm gì (s và t là 2
mảng chứa xâu ký tự):
strcpy( t, s ); strcat( t, s );

d.Phân tích và thiết kế
Chương trình sau khi biên dịch
a.Max: 9
b.Max: 5
c.Max: -9
d.Max: -5


6
7
8
9

7 phần tử
a.Chép xâu t vào s
b.Nhân đôi xâu t chứa vào s
c.Chép xâu s vào t


d.Nhân đôi xâu s chứa vào t
Phần mềm để chuyển nội dung Compiler
chương trình từ mã nguồn về mã máy
là?
Cho biết kết quả đoạn chương trình 1 4 9 16 25
sau:
int F( int x)
{
int y = x*x;
return y;
}
void main ()
{
int i;
for (i = 1; i <= 5; i=i+1)
printf(“%5d”, F(i));
}
Cho chương trình sau:

52341
#include<stdio.h>
int main(){
int n=5, tg;
int a[5]={1,2,3,4,5};
tg = a[0];
a[0] = a[n-1];
a[n-1] = a[0];
for(int i=0;iprintf("%5d",a[i]);
}
Anh/chị hãy cho biết kết quả của
chương trình trên là bao nhiêu?
Lập trình (programming) là?
Viết chương trình cho máy tính
Thuật tốn phải có đặc trưng cơ bản
a.Đúng đắn, phổ dụng, hiệu quả
b.Hữu hạn, đúng đắn, khả dụng, phổ
dụng
c.Hữu hạn, khả dụng, đúng đắn, đơn
giản
d.Hữu hạn, đúng đắn, nhanh gọn
Chương trình dạng mã nguồn là?
Chương trình sau khi biên soạn
Hình chữ nhật để mơ tả thao tác trong Tính toán, xử lý


thuật tốn là?
Hình bình hành để mơ tả thao tác
trong thuật toán là?

Đâu là khai báo thư viện đúng trong
chương trình C/C++?
Cho khai báo:
int a,b,c;
Anh/chị hãy cho biết đâu là một cơng
thức (câu lệnh) SAI?
Trong C, chỉ thị #include địi hỏi:

Nhập/xuất dữ liệu
#include<tên thư viện>
a => c;

a.File phải tồn tại trong đĩa cứng
b.File phải tồn tại trong đĩa CD
c.File phải tồn tại trong thư mục gốc
ổ đĩa cứng C: (sai)

d.File phải tồn tại trong thư mục
include đã được thiết lập bởi người
dùng //
Xâu định dạng nào dưới đây dùng để “%d”
in ra một số nguyên trong lệnh printf?
Phương pháp phân rã bài toán khi giải a.Tổng hợp các bài toán nhỏ thành bài
quyết bài toán là?
toán lớn
b.Tất cả các phương án (sai)
c.Chia một bài toán thành 2 bài toán

Lệnh sau làm gì:
char s[256];


d.Chia nhỏ bài tốn lớn thành các bài
tốn nhỏ //
a.Khai báo mảng chứa ký tự có 255
phần tử
b.Khai báo mảng
c.Khai báo xâu ký tự

d.Khai báo xâu có ký tự là 256
Đoạn chương trình sau làm gì (a là a.Xóa các phần tử giống phần tử đầu
mảng số nguyên, n là số phần tử):
for( i=k=1; ib.Xóa các phần tử sau phần tử đầu
{ if( a[i] != a[0] )
nhưng giống phần tử đầu
{ a[k]=a[i]; k++; }


}

c.Xóa các phần tử khác phần tử đầu

d.Xóa các phần tử sau phần tử đầu
nhưng khác phần tử đầu
Cần khai báo mảng một chiều a gồm float a[20];
tối đa 20 số thực thì đâu là khai báo
đúng?
Cần khai báo mảng hai chiều a gồm int a[5][6];
tối đa 5 hàng và 6 cột chứa các số
nguyên thì đâu là khai báo đúng?

Biến toàn cục là biến được khai báo ở Bên ngồi mọi hàm
đâu là đúng nhất?
Chúng ta có thể truyền cho tham trị a.Hằng
gồm:
b.Tất cả 3 phương án
c.Biểu thức
d.Biến
Giá trị ban đầu của a là 5, b là 7. Sau a.5, 7 //
khi thực hiện xong hàm sum(int a, int
b) thì a, b có giá trị bao nhiêu?
b.10, 7
int sum (int a, int b)
{
c.0, 0
a=a+5;
return a+b;
d.Cả 3 phương án đều sai.
}
Ý nghĩa của phương pháp phân rã bài a.Dễ dàng kiểm sốt, nâng cấp
tốn trong lập trình là:
b.Tất cả các phương án
c.Giúp triển khai theo nhóm thuận lợi
Cho chương trình sau:
#include<stdio.h>
int main(){
int n=5;
int a[5]={1,2,3,4,5};
for(int i=0;ia[i]++;
for(int i=n-1;i>=0;i--)

printf("%5d",a[i]);

d.Giảm thiểu sự lặp lại
65432


}
Anh/chị hãy cho biết kết quả của
chương trình trên là bao nhiêu?
Trong một chương trình có thể chứa: a.Duy nhất một hàm ngồi chương
trình chính
b.Chỉ chứa hàm chương trình chính
c.Nhiều hàm
d.Khơng q 2 hàm trừ chương trình
chính
Cho biết kết quả đoạn chương trình
sau:
55
int F( int x)
{
int y = x*x;
return y;
}
void main ( )
{
int s=0, i;
for (i = 1; i <= 5; i=i+1)
s= s + F(i);
printf(“%5d”, s);
}

Cho khai báo hàm như sau:
a.int a=5, b=7;
int F( int *a , int *b );
F(a, &b);
Đầu là lời gọi hàm đúng?
b.int a=5, b=7; (sai)
F(a, b);
c.int a=5, b=7;
F(&a, b);
d.int a=5, b=7; //
F(&a, &b);
Cho biết kết quả đoạn chương trình 1 4 9 16 25
sau:
int F( int x)
{
int y = x*x;
return y;


×