Anda di halaman 1dari 8

LATIHAN MATERI UAS

DASAR PEMROGRAMAN - KELAS A&B


UPN VETERAN JAKARTA

DOSEN : Mayanda Mega Santoni, S.Komp., M.Kom

ARRAY

1. Perhatikan potongan program berikut


int main(){
int A[]={1,2,3,4,5,6,7,8,9,10};
int m,n,i;
scanf("%d %d",&m,&n);
if(m<=10 && m>=n){
for(i=0;i<m;i++){
printf("%2d",A[i]);
if(!((i+1) % n)) printf("\n");
else printf(" ");
}
}
return 0;}

Apakah outputnya jika diinputkan nilai m=10 dan n=4?

A. 1 2 3 4
5 6 7 8

B. 4 4 4 4 4 4 4 4
C. 8 8 8 8
4 4 4 4
8 8

D. 1 2 3 4
5 6 7 8
9 10

E. 1 2 3 4 5
6 7 8 9 10
2. Untuk menjadikan output yang dihasilkan dari program soal nomor 26 (di atas) ketika
dimasukkan m=10 dan n=4 adalah

10 9 8 7
6 5 4 3
2 1

maka bagian kode yang harus diubah adalah...


A. Bagian scanf menjadi scanf(“%d %d”,&n,&m);
B. Bagian for menjadi for(i=m;i>0;i++)
C. Bagian for menjadi for(i=m;i>=0;i++)
D. Bagian printf("%2d",A[i]); menjadi printf("%2d",A[m-i-1]);
Bagian if di dalam for menjadi if((i+1) % n))

3. Untuk mendapatkan nilai penjumlahan elemen diagonal sekunder (kanan atas ke kiri bawah)
dari sebuah matriks persegi A dengan dimensi n x n, dan menyimpannya pada variabel hasil
dapat digunakan bentuk looping? (sebagai catatan variabel hasil sebelumnya sudah
diinisialisasi dengan nilai 0) …

A. for(i=0;i<n;i++)
hasil+=A[i][n-i-1];

B. for(i=0;i<n;i++)
hasil+=A[i][i];

C. for(i=0;i<n;i++)
hasil+=A[i][n-i];

D. for(i=0;i<n;i++)
hasil+=A[i][n-i+1];

E. for(i=n;i>=0;i++)
hasil+=A[i][i];

4. Apakah keluaran program berikut?


#include <stdio.h>
int main() {
int a[4] = {2, -2, 1, 2}, i, j = 1, x = 0;
for (i = 0; i < 4; i++, j *= -1) x += a[i] * j;
printf("%d", x);
return 0;
}

A. 3 B. 2 C. 1 D. 0
POINTER

1. Perhatikan deklarasi variabel berikut:


int x;
int *px = &x;

Instruksi yang menyebabkan nilai x menjadi 11 adalah…..


A. *x = 11; B. *px = 11; C. px = 11; D. &x = 11; E. &px = 11;

2. Perhatikan potongan program berikut:


int a[5] = {2, -1, 5, 7, -8};
int *pa = a;

pa++;
printf(“%d”, *pa);

Nilai yang dicetak adalah:


A. -1 B. 0 C. 1 D. 2 E.3

3. Diketahui deklarasi sebagai berikut:


int b[5] = {-3, 13, 5, -1, -2};
int *bPtr;
bPtr=&b[3];

Manakah dari pernyataan berikut ini yang benar?


A. Nilai dari *(bPtr+1) adalah 0
B. Nilai dari *bPtr adalah 5
C. Nilai dari *bPtr + 2 adalah 1
D. *bPtr++ melakukan increment pada alamat yang ditunjuk bPtr
E. bPtr- - melakukan decrement nilai yang tersimpan pada alamat yang ditunjuk bPtr

4. Diketahui fungsi sebagai berikut:

int fa (int a, int *b) {


int c = a;
a = *b;
*b = c;
return (a + *b);
}

dan potongan program sebagai berikut:


int a = 3, b = 5, c;

c = fa(a, &b);
printf(”%d %d %d”, a, b, c);

Apakah output potongan program tersebut?

A. 3 5 6 B. 5 3 8 C. 3 3 6 D. 3 3 8 E. 3 5 8

KARAKTER DAN STRING

1. Apa output dari program berikut:


#include <stdio.h>
int main()
{
char *s="Algoritme dan Pemrograman";
int i=1;
while(i<10)
{
if(i%3)
printf("%c",s[i]);
i++;
}
return 0;
}
A. lgrim B. lgrime C. algrime D. algrim E. grime

2. Perhatikan fungsi berikut:


int l(char* s)
{
int i=0,c=0;
do c++;
while(s[i++]!='\0');
return c;
}
Jika kita memiliki dua string yang dideklarasikan sebagai berikut:
char* s = "Institut";
char t[] = {'B','o','g','o','r','\0'};
kemudian dilakukan pemanggilan l(s) dan l(t), berapakah nilai yang didapatkan?
A. 9 dan 6 B. 9 dan 5 C. 8 dan 6 D. 8 dan 5 E. 8 dan 7
3. Apakah output dari program berikut:
#include <stdio.h>
void c(char *s1, const char *s2)
{
for (;( *s1=*s2 )!='i'; s1++,s2++ );
}
int main()
{
char s[100];
c(s,"Universitas");
printf("%s",s);
return 0;
}
A. Uni B. Un C. Unverstas D. itas E. versitas

4. Berapakah nilai n agar program berikut menampilkan output itme ?


#include <stdio.h>
int main()
{
int n=....;
char* t="Algoritme";
printf("%s",t+n);
return 0;
}
A. 4 B. 5 C.6 D.7 E.3

STRUCT & ENUMERASI

1. Berikut ini deklarasi tipe data struct yang benar adalah...


A. struct data{ D. struct data{
int x; int x,
int y; int y
} };
B. struct data{ E. struct data{
int x, int x,
int y; int y;
} }
C. struct data{
int x, y;
};

2. Berdasarkan deklarasi enumerasi berikut.


enum bilangan {satu, dua, tiga, empat=4, lima, enam, tujuh,
delapan, sembilan, sepuluh};
Jika diberikan baris program berikut.
printf(“%d\n”, sembilan+dua);
maka output yang muncul adalah...
A. 7 B. 8 C. 9 D. 10 E. 11

3. Perhatikan baris program berikut.


#define N 3
struct mhs {
char nrp[20];
char nama[50];
int usia;
};

int main()
{
struct mhs datamhs[N] = {{"A01", "Agus", 20},
{"A02", "Budi", 21},
{"A03", "Santi", 20}};
int i;
for(i=0; i<N; i++)
{
....
}
return 0;
}
Baris program yang harus disisipkan pada program tersebut, untuk mencetak seluruh isi dari
datamhs adalah..
A. printf("%s %s %d\n", datamhs[nrp], datamhs[nama],
datamhs[usia];
B. printf("%s %s %d\n", nrp, nama, usia);
C. printf("%s %s %d\n", datamhs.nrp[i],
datamhs.nama[i],datamhs.usia[i]);
D. printf("%s %s %d\n", datamhs.nrp, datamhs.nama,
datamhs.usia);
E. printf("%s %s %d\n",
datamhs[i].nrp,datamhs[i].nama,datamhs[i].usia);

4. Agar baris program: printf("%d", A+D+G); meghasilkan output 5, maka deklarasi enumerasi
yang tepat adalah..
A. enum x {A=1, B, C, D, E, F, G};
B. enum x {A, B, C=1, D, E, F=2, G};
C. enum x {A, B, C, D, E, F, G};
D. enum x {A, B, C, D, E, F=2, G};
E. enum x {A=2, B, C=1, D, E, F, G};
INPUT OUTPUT FILE

1. Perhatikan Source Code berikut.


#include <stdio.h>
main() {
[1] FILE *in;
[2] char nim[10];
[3] int uts, uas;
[4] if (( X = fopen("A" , “B")) == NULL)
[5] printf (" C \n");
[6] else {
[7] while (!feof(in)) {
[8] fscanf(in, "%s %d %d", D, E, F);
[9] printf("%s %d %d\n", G, H, I);
[10] }}
[11] fclose(Y);
[12] return 0;
[13] }
Diketahui file input.in sebagai berikut
G64084120 60 80
G64084126 70 50
G64084123 90 80
G64084125 40 30

Untuk dapat membaca file tersebut, nilai X,A,B, D,E,F berturut – turut adalah
A. X=in, A=input.in,B=wb,D=&uts,E=&uas,F=&nim
B. X=input.in, A=in,B=r,D=&nim,E=&uts,F=&uas
C. X=in, A=input.in,B=r,D=&nim,E=&uts,F=&uas
D. X=in, A=input.in,B=w,D=&nim,E=&uts,F=&uas
E. X=input.in, A=in,B=a,D=&nim,E=&uts,F=&uas

2. Setelah melakukan pembukaan file dengan menggunakan pernyataan

FILE* f = fopen("coba.txt","r");

manakah di antara pernyataan berikut yang akan SUKSES ketika dieksekusi?

A. fprintf(f,"x=%d",x);
B. fscanf(f,"%d",&y);
C. fputs("coba",f);
D. fputc('X',f);

3. Perhatikan potongan program berikut


FILE *in, *out;
if (( in = fopen("data.txt" , "a")) != NULL)
fputs("Halo",in);
fclose(in);

if (( out = fopen("data.txt" , "w")) != NULL)


fputs("Hai",out);
fclose(out);

Apa isi dari file data.txt setelah program tersebut dijalankan?

A. HaloHai B. Hai C. HaiHalo D.Hai E. Halo


4. Diketahui suatu file myfile.txt awalnya berisi teks “Rani 2 3 Susi 5 2”. Apa output ketika
program berikut dijalankan?
sum=0;
if (( in = fopen("myfile.txt" , "w")) != NULL)
fputs(" Dina 5 3", in);
fclose(in);
if (( out = fopen("myfile.txt" , "r")) != NULL)
while (!feof(out)) {
fscanf(out, " %s %d %d", &nama, &data1,
&data2);
sum+=data1+data2;
}
fclose(out);
printf("%d", sum);

A. 13 B. 7 C. 8 D. 20 E. 5

Anda mungkin juga menyukai