P. 1
Programare Procedurala - 94Q

Programare Procedurala - 94Q

|Views: 224|Likes:
Published by lawrence_dane
programare procedurala, spiru haret an I, PP, subiecte programare procedurala AN I Sem 1 - 2008
programare procedurala, spiru haret an I, PP, subiecte programare procedurala AN I Sem 1 - 2008

More info:

Published by: lawrence_dane on Sep 01, 2009
Copyright:Public Domain

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/21/2010

pdf

text

original

aegr

Multiple Choice Identify the letter of the choice that best completes the statement or answers the question. ____ 1. Fie expresiile A = 18 - 3 +2; B = 18 + 7 / 3 +2; C = 2.3 + 3%; D = 3 + 7.0/3; E = 3 + 4 % 2.3; F = 24 % (7 + 1); Care din aceste expresii sunt corecte? a. A, B, C, D, E, F. c. A, B, C, D, F b. A, B, D, F d. A, B, C, F 2. Care este valoarea expresiei 20 / 10 * 2 + 30 / 15 * 2 a. 2 c. 8 b. 0 d. 4 3. Care este valoarea expresiei: 4000/10/10*2+4*10*10 / 2 a. 400 c. 240 b. 280 d. 220 4. Se considera secventa: { int a =82, b = 24; a = a % 2 + b / 2 / 2; b = 2 * a % 2; a = a + b; b = a % 2 + b + 10 % 2; } Care sunt valorile finale ale variabilelor a si b? a. a = 5, b = 5 b. a = 6, b = 6 c. a = 0, b = 6 d. a = 6, b = 0 e. a = 0, b = 0 5. Care este ordinea de executare a instructiunilor urmatoare pentru ca in final variabilele intregi x, y si z sa aiba valori egale, indiferent de valorile lor initiale: { /* 1 */ x = x / 10; /* 2 */ z = x / y; /* 3 */ x = 100; /* 4 */ y = x / 10; } a. 2, 4, 1, 3 c. 1, 2, 4, 3 b. 3, 4, 2, 1 d. 3, 1, 2, 4. 6. Care din operatiile urmatoare atribuie variabilei float x media aritmetica a valorilor intregi a, b si c? a. x = (a + b + c) /3; c. x = a / 3.0 + b/3 + c/3; b. x = (a + b + c) / 2.0; d. a = (a + b + c) / 3.0; 7. Care sunt valorile variabilelor intregi x si y dupa executarea in ordine a urmatoarelor trei instructiuni: { x = 0x3; y = x + 0x3; x = x - 3; } a. x = 0 si y = 3 c. x= 6 si y = 0 b. x = 3 si y = 0 d. x= 0 si y = 6

____

____

____

____

____

____

____

____

8. Care sunt valorile variabilelor intregi a si b dupa executarea instructiunilor urmatoare: { a = 1235; b = a % 10; if ((a-b) % 10 == 0) { a = a / 100; b = a % 100;} if (a == b) a = a *100; } (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. a = 1200 si b = 5 b. a = 12 si b = 35 c. a = 1200 si b = 35 d. a = 1200 si b = 12 e. a = 100 si b = 35 9. Care sunt valorile finale ale variabilelor intregi x, y si z dupa executarea operatiei de decizie, if (x>1 && y-z>0) x = y-z; else {y = x-1; z = y+x;} daca initial x = 23, y = 14 si z = 25? (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. x = -11, y = 14, z = 25 b. x = 23, y = 22, z = 37 c. x = 23, y = 22, z = 45 d. x = -11, y = 22, z = 37 e. x = 23, y = -11, z = 25 ____ 10. Ce va fi afisat pe ecran in urma instructiunii printf(“%6.3f\n”, 45.23); ? a. +45.230 c. 045.230 b. 45.230 d. 45.023 ____ 11. Stabiliti care dintre urmatoarele declaratii de variabile sunt corecte: 1) float 1t, 2t; 2) int a[1..10]; 3) int x, y; 4) string s; 5 ) double e; v; a. 1, 2, 3, 4, 5 c. 2, 3, 4, 5 b. 3 d. 2, 3, 4 ____ 12. Daca a, b sunt variabile de tip int, iar x si y sunt variabile de tip float, stabiliti care dintre urmatoarele secvente de atribuiri sunt incorecte: 1) b = 2; a = b/2; 2) x = 8; y = 10; a == x+y; 3) x = 4; b = 2; y = x/b; 4) x == 20; y == 10; x =(x+y)/2; 5) a = b = 5; x = a+b; a. 2, 4, 5 c. 2, 3, 4, 5 b. 1, 2, 3, 4, 5 d. 2, 4 ____ 13. Care dintre urmatoarele declaratii sunt corecte sintactic: 1) int ab=30; 2) int a+b; 3) float a1; 4) char 2ab; 5) int m.n;

a. 1, 3, 5 c. 1, 3 b. 1, 2, 3, 4, 5 d. 1, 3, 4, 5 ____ 14. Fie definitia: int a = 5, b = 3, c = 1, d = 3; Care dintre urmatoarele expresii logice au valoarea 1 (adevarat): 1) a < b || c) 2) (b == d && c || a >= b) 3) (c && d > b) 4) a > b || !(d<a) 5) (a == b) && c (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. 1, 2, 3, 4 c. 1, 4 b. 1, 2, 3, 4, 5 d. 1, 2, 4 ____ 15. Determinati valoarea expresiei fabs(-11.2) + sqrt(floor(16.23)). a. -9.2 c. 14.2 b. 15 d. 15.2 ____ 16. Determinati valoarea expresiei ((int)fabs(-14.2)) % 7 a. 14 c. 0 b. 2 d. 8 ____ 17. Considerand variabila x de tip float si variabila de tip int a, care va fi secventa de caractere afisate in urma executarii secventei de instructiuni(s inseamna un spatiu): x = -4.3; a = (int)fabs(-4.0); printf(“%2d%4.2f%2d”, a, fabs(x), (int)ceil(a+x)); (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. s4s4.300 c. s44.30s0 b. 44.30s0 d. 4s4.30s0 ____ 18. Care vor fi valorile variabilelor intregi a si b dupa executarea urmatoarelor instructiuni: {if (a = 10, b = a+1, a != b) b++; else a++; a*=b;} (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. a = 121, b = 11 c. a = 120, b = 11 b. a = 120, b = 12 d. a = 121, b = 12. ____ 19. Care dintre urmatoarele secvente de instructiuni determina, in mod corect maximul a trei numere? 1) if (a>b && a >c) max = a; else if (b > a && b > c) max = b; else max = c; 2) if (a>b) if (a>c) max = a; else max = c; else max = b; 3) if (a>b) if (a>c) max = a; else if (b>c) max = b; else max = c; 4) if (a>b) if (b>c) max = b; else max = c; else max = a; (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. 1, 2, 3, 4 c. 2,3, 4 b. 1, 3 d. 1, 3, 4 ____ 20. Pentru definitia alaturata a functiei ex(), stabiliti ce se afiseaza la apelul ex(120)? void ex(int x){ if (x != 0){

printf(“%d”, x %10); ex(x/10); } } (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. 012 c. 021 b. 120 d. 21 ____ 21. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). In secventa urmatoare de instructiuni, n si y sunt variabile intregi. {n=156; y = 770; while(n*y > 0) if (n >y) n = n%y; else y = y%n; y = y+n; } Valoarea variabilei y la finalul executarii secventei este: a. 13 c. 2 b. 0 d. 4 ____ 22. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Pentru un tablou x declarat global, cu 10 componente intregi, stabiliti care sunt valorile memorate de componentele tabloului x in urma apelului ex(0, 9), daca functia ex este definita astfel: void ex(int i, int j){ if(i <= j) { x[i] = i; x[j] = j; ex(i+1, j-1); if (i % 2 != 0) {x[i]=j; x[j]=9-x[i];} } } a. (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) b. (0, 8, 2, 6, 4, 5, 3, 7, 1, 9) c. (1, 9, 3, 7, 5, 6, 4, 8, 2, 10) d. (9, 1, 7, 3, 5, 4, 6, 8, 0) ____ 23. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Se considera ca declaratia struct patrat { float latura, aria;} p; defineste in C patrate caracterizate prin latura si arie. Care din urmatoarele expresii atribuie campului aria al variabilei p valoarea ariei patratului respectiv? a. aria = p.laturta * p.latura; b. aria = latura * latura; c. p.aria = p.latura * p.latura; d. p.aria = latura * latura; ____ 24. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Care dintre urmatoarele expresii are valoarea 1 daca si numai daca numarul natural c este un multiplu comun al numerelor naturale nenule (unsigned int) a si b? a. (c%a == 0 ) || (c %b ==0) b. (c%a == 0) | (c%b == 0) c. (c%a == 0) && (c%b ==0) d. (c%a == 0) & (c%b == 0) ____ 25. In secventa urmatoare, variabilele n, x si y sunt de tip intreg. {x = 1; y = x-1; do{ y=x*(x-1)+y;

____ 26.

____ 27.

____ 28.

____ 29.

____ 30.

x++; }while(x <=n); } Daca valoarea variabilei n este un numar naural nenul, de cate ori este evaluata expresia logica x <= n in timpul executarii secventei? a. de n2 ori b. de n ori c. o singura data d. de n+1 ori (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Fie secventa de instructiuni: {x=x-1; y=2*x+y; x=2*x+1;} Care au fost valorile variabilelor x si y, de tip int, la inceputul executarii secventei de instructiuni date, daca la finalul executarii x are valoarea 2007 iar y are valoarea 2009. a. x = 1002 si y = 5 b. x = 3 si y = 1004 c. x = 1004 si y = 3 d. x = 2007 si y = 2009 (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Se considera secventa: {int a = 5, b = 0; do { a--; b +=a*a; }while(a!=0); } Ce valori vor avea variabilele a si b la finalul executarii secventei? a. a = 0 si b = 0 b. a = -1 si b = 25 c. a = 0 si b = 55 d. a = 0 si b = 30 Functia revers(v, p, q) inverseaza ordinea elementelor din tabloul unidimensional v aflate pe pozitiile p, p+1, ..., q-1, q (se presupune ca p <= q). Care dintre urmatoarele secvente de program inverseaza doar prdinea elementelor v[p] si v[q]: a. revers(v, p, q); revers(v, p-1, q+1); b. revers(v, p, q); revers(v, p+1, q-1); c. revers(v, p, q); revers(v, p+1, q+1); d. revers(v, p-1, q-1); revers(v, p, q); (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Fie v un tablou unidimensional format din n numere intregi (n >=2). Stiind ca primul element din tablou se afla pe pozitia 1 (pozitia 0 este utilizata in alte scopuri), indicati care dintre urmatoarele secvente atribuie variabilei intregi max cea mai mare valoare din tabloul v: a. for(int i=2; i<=n; i++) if (v[i-1]<=v[i]) v[i-1] = v[i]; max = v[1]; b. for(int i=2; i<=n; i++)if(v[i-1]>v[i]) v[i] = v[i-1]; max = v[n]; c. for(int i=1; i<n; i++) if(v[i+1]>v[i])v[i] = v[i+1]; max = v[1]; d. for(int i=n; i>=2; i--) if (v[i]>v[i-1]) v[i]=v[i-1]; max = v[n]; (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Fie v un tablou unidimensional format din n componente intregi, numerotate de la 1 la n (pozitia 0 are alta semnificatie), iar p si k doua variabile de tip intreg. In care dintre urmatoarele secvente variabilei p i se atribuie prima valoare strict pozitiva din tabloul v, daca exista o astfel de valoare, sau 0 in caz contrar?

____ 31.

____ 32.

____ 33.

____ 34.

____ 35.

____ 36.

____ 37.

a. {p = 0; k = 1; while(v[k]>=0) k++; p = v[k];} b. {p = 0; k = n; while(v[k]<=0) k--; p = v[k];} c. {p = 0; for(k=1; k<=n; k++) if (v[k]>0 && !p) p = v[k];} d. {p = 0; for(k=1; k<=n; k++) if (v[k]>0) p = v[k]; Care dintre urmatoarele reprezinta o declaratie corecta pentru o variabila x care memoreaza simultan numele si media a maximum 30 de studenti? a. typedef struct {char nume[30]; double media;} x; b. char x.nume[30]; double x.media[30]; c. struct {char nume[30]; double media;} x; d. struct {char nume[30]; double media;} x[30]; (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Care dintre urmatoarele secvente calculeaza suma elementelor de pe linia k a unei matrice a, cu m linii (numerotate de la 1 la m; linia de indice 0 este utilizata in alte scopuri) si n coloane (numerotate de la 1 la n; coloana de indice 0 este utilizata in alte scopuri)? a. s = 0; for (i=m; i>0; i--) s+=a[k][i]; b. s = 0; i = 1; while (i<=m) {s+=a[i][[k]; i++;} c. s = 0; for(i=n; i>0; i--) s+=a[i][k]; d. s = 0; i=1; while(i<=n) {s+=a[k][i]; i++;} Fie instructiunea: if (x>y) if (y>z) if(z>x) s = x+y+z; else p = x*y*z; O secventa de instructiuni echivalenta cu aceasta, dar care foloseste o singura data cavantul cheie if, este: a. if(x>y && y>z) s = x+y+z; else p = x*y*z; b. if(x>y || y>z) s = x+y+z; c. if(x>y && y>z) s = x+y+z; d. if(x>y && y>z) p = x*y*z; (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Care dintre secventele de mai jos conduce la memorarea in variabila max a celei mai mari dintre cele n valori intregi retinute in tabloul unidimensional a (in care a[0] este primul element)? a. for(i=0; i<n-1; i++) if (a[i] > a[i+1]) max = a[i]; b. for(i=0; i<n-1; i++) if (a[i] > a[i+1]) {max = a[i]; a[i] = a[i+1]; a[i+1] = max;} max = a[n-1]; c. max=a[0];for (i=1; i<n; i++) if (a[i] < max) max = a[i]; d. max=0; for (i=0; i<n; i++) if a([i]>max) a[i]=max; Care dintre expresiile de mai jos va avea valoarea 1? a. ‘a’ == ‘A’ c. ‘a’ < ‘b’ b. ‘1’ + ‘2’ == ‘3’ d. ‘1’ > ‘2’ (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Variabile a si b sunt declarate astfel: char a[20,b[20]; Ce se afiseaza in urma executarii secventei urmatoare: { strcpy(a, “examen20”); strcpy(b, “08”); printf(“%s%s”, strcat(a, “*”), b); } a. examen20*08 c. examen20examen2008 b. examen2008 d. examen160 (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Algoritmul urmator testeaza daca sirul de caractere s este palindrom (citit atat de la stanga la dreapta, cat si de la dreapta la stanga, se obtine acelasi sir de caractere). {i=0; j=strlen(s)-1; while(i<j && s[i]==s[j]) {i=i+1; j=j-1;}

____ 38.

____ 39.

____ 40.

____ 41.

____ 42.

____ 43.

if(...) printf(“palindrom”; else printf(“nu este palindrom”); } Care este expresia care poate inlocui punctele de suspensie astfel incat algoritmul sa fie corect? a. i == j c. i<j b. i>=j d. i!=j Dintre tipurile simple de date face parte tipul: a. double c. Tablou b. FILE d. Uniune (union) (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Fie secventa: a = 99; while (a >=1) {printf(“%d\n”, a); a=a-2;} Prin executarea acesteia se afiseaza: a. toate numerele naturale de doua cifre b. numerele naturale impare mai mici ca 100 c. toate numerele intregi mai mici ca 99 d. numerele naturale pare, mai mari decat 1 (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Fie secventa: {char c; for c=’A’; c <=’Z’; c++) printf(“%d”, c);} Prin executarea acesteia se obtin: a. numerele naturale din intervalul [1, 27] b. numerele naturale din intervalul [65, 90] c. literele mari ale alfabetului englez d. literele mari ale alfabetului romanesc Parametrii utilizati la apelul unei functii, se numesc: a. parametri locali c. parametri actuali b. parametri globali d. parametri formali (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Se considera programul #include <stdio.h> void aplic(int x, int *y){x+=3; (*y)-=2; printf(“%d, %d”, x, *y);} void main(void){int x=12, y=20; aplic(x, &x); printf(“,%d,”,x); printf(“%d,”,y);aplic(y,&y); } Ce se va afisa in urma executarii acestuia: a. 13,13,13,13,16,14 b. 15,10,10,20,23,18 c. 15,13,13,13,16,11 d. 15,10,15,20,23,20 (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Fie secventa: for(j=1; j<=5; j++) for (i=1; i<=3; i++) a[i][j] = i+j; Prin executarea acesteia, tabloul a va avea urmatorul continut a. 2 3 4 c. 2 3 4 5 6 34567 345 456 45678 567 678 b. 2 4 5 d. 2 3 4 5 6 345 32345 456 43456

____ 44. Prototipul corect al unei functii care primeste doua numere intregi ca primi doi parametri (de intrare) si determina media aritmetica si produsul celor doua numere, pe care le transmite apelantului prin urmatorii doi parametri este: a. int calcul(int, int, int *); c. void calcul (int, int, double *, int *); b. void calcul(int, int, double, int); d. void calcul(int, int, int *, int *); ____ 45. Fie declaratiile: int a[5] = {1, 2,4, 3, 5}; int b[4] = {4, 2, 1, 3}; atunci a[b[0]] este: a. 3 c. 5 b. 1 d. 4 ____ 46. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Se considera tabloul unidimensional int a[5]={1, 2, 3, 4, 5}; si secventa de instructiuni for(i=0; i<5; i++) {s=0; for(j=0; j<=i; j++) s+=a[j]; printf(“%d”,s);} Care va fi rezultatul afisat in urma executarii secventei de mai sus? a. 1151515 c. 6101315 b. 15 d. 1361015 ____ 47. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Fie tabloul unidimensional v si secventa for (j = k; j>=q; j--) v[...] = v[j]; Cu ce expresie trebuie inlocuite punctele de suspensie astfel incat in urma executarii secventei elementele v[q], v[q+1], ..., v[k] sa se deplaseze cu p-1 vpozitii spre dreapta? a. p-1-j b. j-p+1 c. p-1+j d. p-j+1 ____ 48. Se considera declararea struct fractie {unsigned int x, y;} s, f1, f2; in care campurile x si y reprezinta numaratorul, respectiv numitorul unei fractii. Care dintre urmatoarele variante construieste in variabila s o fractie echivalenta cu suma fractiilor f1 si f2? a. {s.x = f1.x + f2.x; s.y = f1.y + f2.y;} b. {s = f1 + f2;} c. {s.x = f1.x * f2.y + f1.y * f2.x; s.y = f1.y * f2.y;} d. {s.x = f1.x * f1.y + f2.x * f2.y; s.y = f1.y * f2.y;} ____ 49. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Care din urmatoarele secvente de instructiuni va afisa (cu un spatiu intre ele) in ordine descrescatoare toate numerele naturale impare mai mici sau egale cu o valoare naturala data a? a. for (i = 1; i >= a; i += 2) printf(“%d ”, i); b. for (i = 1; i <= a; i--) if (a % 2 == 0) printf(“%d ”, i); c. for (i = a; i >= 1; i--) if (i % 2 != 0) printf(“%d ”, i); d. for (i = a; i <=1; i++) if (a%2 == 1) printf(“%d ”, i); ____ 50. Functia s (scrisa in limbajul C, standard) este utilizata pentru interschimbarea valorilor a doua numere intregi, pozitive. Definitia corecta (in antet) a acesteia trebuie sa fie: a. void s(int x, int y) { ... } b. void s(int *x, int *y) { ... } c. void s(unsigned int *, unsigned int *) { ... } d. void s(unsigned int, unsigned int) { ... }

____ 51. Pentru a atribui variabilei n o valoare egala cu lungimea unui sir de caractere w (ce respecta conventia terminatorului de sir) se utilizeaza instructiunea: a. n = length(w); c. n = (int)w[0]; b. strlen(w) = n; d. n = strlen(w); ____ 52. Care din urmatoarele variante reprezinta antetul corect al unei functii care primeste parametri intregi a si b si intoarce prin cel de-al treilea parametru x, cea mai mare dintre cele doua valori a si b? a. int maxim (int a, int b, int x){ x = (a>b)?a:b; return x;} b. int maxim (int a, int b) {return (a>b)?a:b;} c. void maxim (int a , int b, int x) {x = (a>b)?a:b;} d. void maxim (int a, int b, int * x){ *x = (a>b)?a:b;} ____ 53. Conditia ca doua numere intregi a si b sa fie ambele nenule este: a. (a ! = 0 || b != 0) b. a*b != 0 c. a+b != 0; d. ! (a == 0 && b == 0) ____ 54. Fie functia void f( ... ) {a++; *b--; *c = a + *b;} Se stie ca x, y si z sunt variabile intregi. Intitial x = 11 si y = 6, iar dupa apelul f(x, &y, &z), valorile celor trei variabile sunt x = 11, y = 5 si z = 17. Care dintre urmatoarele constructii reprezint antetul corect al functiei? a. void f(int *a, int b, int *c) b. void f(int a, int b, int c) c. void f(int a, int *b, int *c) d. void f(int *a, int *b, int *c) ____ 55. Daca in cadrul unui program variabila p urmeaza sa memoreze simultan coordonatele reale (abscisa si ordonata) pentru un punct in plan, atunci variabila p trebuie declarata astfel: a. struct punct {float x, y;} p; b. typedef struct punct { float x, y;} p; c. char p[2]; d. float p; ____ 56. Care este rezultatul tiparit de programul urmator? #include <stdio.h> #include <string.h> void f(char s[], int); void main(){f(“examenul”,0);} void f(char s[256], int i){ if(i<strlen(s)) { f(s, i+1); if (strchr(“aeiou”, s[i]) != 0) printf(“%c”, s[i]); } } a. eaeu c. ueae b. examenul d. e ____ 57. Se defineste tipul struct punct {float x, y;}; (pentru a memora coordonatele carteziene - abscisa si ordonata ale unor puncte din planul xOy) si tabloul unidimensional a cu elemente de tip struct punt. Care dintre expresiile de mai jos are valoarea 1 daca si numai daca punctul ale carui coordonate sunt memorate in elementul din tabloul aflat pe pozitia i are abscisa si ordonata egale? a. a[i]->x == a[i]->y c. x[a[i]] == y[a[i]]

____ 58.

____ 59.

____ 60.

____ 61.

b. a[i].x == a[i].y d. a.x[i] == a.y[i] Variabila s a fos declarata prin: char s[32]; Ce se afiseaza dupa executarea urmatoarei secvente? { strcpy(s,”Programare procedurala”); printf(“%c”, s[strlen(s)-3]); } a. u c. a b. r d. 29 Se considera tabloul unidimensional de intregi, notat cu a, in care a[0] = 4, a[1] = 2, a[2] = 5, a[3] = 1, a[4]=3. Care va fi continutul sau dupa executarea secventei urmatoare (in care i si aux sunt de tip int): for (i = 0; i<4; i++) if (a[i] > a[i+1]){ aux = a[i]; a[i] = a[i+1]; a[i+1] = aux; } a. a[0] = 2, a[1] = 4, a[2] = 1, a[3] = 3, a[4]=5 b. a[0] = 4, a[1] = 2, a[2] = 5, a[3] = 1, a[4]=3 c. a[0] = 1, a[1] = 2, a[2] = 3, a[3] = 4, a[4]=5 d. a[0] = 4, a[1] = 2, a[2] = 1, a[3] = 3, a[4]=5 Se considera tabloul unidimensional a = (0, 1, 3, 2). Care este tabloul unidimensional b astfel incat pentru oricare 0 <= i <4 sa existe relatia a[b[i]] = b[a[i]]? a. b = (0, 1, 2, 3) c. b = (2, 3, 0, 1) b. b = (3, 1, 0, 2) d. b = (1, 0, 2, 3) Variabilele a si i sunt declarate astfel: int a[100], i; Care dintre urmatoarele instructiuni este corecta din punct de vedere sintactic? (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. a = i; c. i[1] = a; b. i = a; d. i[a] = 1; ____ 62. Se considera urmatoarea functie recursiva apelata numai pentru numere naturale nenule: int f(int a, int b){ if (a<b) return a; else return f(a-b, b); } Care dintre urmatoarele functii este echivalenta cu functia data? (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. int f(int a, int b){return a*b;} b. int f(int a, int b){return a-b+1;} c. int f(int a, int b){return a%b;} d. int f(int a, int b){return a/b;} ____ 63. Pentru un tablou bidimensional a cu 10 randuri si 10 coloane, stabiliti ce calculeaza secventa de program urmatoare, in variabila s: s = 0; for (i = 0; i<10; i++) for (j = i; j <10; j++) s+=a[i][j]; (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. Suma elementelor situate strict deasupra diagonalei principale b. Suma elementelor situate strict deasupra diagonalei secundare c. Suma elementelor situate deasupra diagonalei principale, inclusiv diagonala principala

d. Suma elementelor situate strict sub diagonala principala ____ 64. Se considera programul C: #include <stdio.h> void F(int *a, int b){ b +=*a; (*a)*=b; printf(“%d %d “, *a, b); } void main(void){ int x = 5, y = 7; F(&x, y); printf(“%d %d“, x, y); } Ce se va afisa in urma executarii? (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. 12 60 5 7 c. 60 12 60 7 b. 60 12 5 7 d. 60 12 60 12 ____ 65. Se considera secventa: {int i, j; for (i = 1; i<n; i++) for(j = i; j < n; j++) if (j%i == 0) printf(“%d%d”, i, j); } De cate ori se va executa instructiunea de decizie (marcata ingrosat: j%i == 0) din secventa de program de mai sus daca valoarea initiala a variabilei intregi n este 8? (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. 16 c. 38 b. 36 d. 28 ____ 66. Se considera secventa de instructiuni: {char a[]=”aabbddeff”; char b[] =”aabbdeeff”’ if (strcmp(a, b) == 0) printf (“egalitate”); else printf(“%s “,b); } Care este rezultatul obtinut in urma executarii? (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. aabbdeeff c. aabbddeff b. nici una dintre variantele propuse d. egalitate ____ 67. Fie v un tablou unidimensional cu n elemente de tip intreg, iar n un numar natural nenul (n <=100) si secventa urmatoare: {i=0; while (i<n) {v[i] = i*i; i++;} } De cate ori se repeta instructiunea i++; in timpul executarii secventei date? (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. n+1 ori c. 0 ori b. n ori d. n-1 ori ____ 68. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Se considera functia f al acarui prototip/antet este bazat pe: void f(int a[100][100], int n, int m, int i, intj);

Functia precizata realizeaza interschimbarea liniilor i si j ale tabloului transmis prin parametrul a, care are n linii si m coloane. Pentru a ordona crescator numerele de pe coloana a 3-a a tabloului a, functia f se apeleaza in timpul executarii secventei: for (i=0; i<n-1;i++) for(j = i+1; j<n; j++) if(a[i][3] >a[j][3]) f(a, n, m, i, j); de un numar de ori egal cu: a. m c. n b. 1 d. cel mult n(n-1)/2 ____ 69. Consideram urmatoarea declaratie: struct produs {char denumire[10]; int pret;} p; Cum se poate accesa prima litera a denumirii unui produs ale carui caracteristici sunt memorate in variabila p? a. p.denumire[1] c. p.denumire[0] b. p->denumire d. p->denumire[1] ____ 70. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Se considera urmatoarele declaratii: int x[5] = {0, 1, 5, 3, 4}; int y, i; si secventa de instructiuni: { y = x[1]; for (i = 0; i<=4; i++) if (y < x[i]) y = x[i]; printf(“%d”, y); } Ce se va afisa in urma executarii acestei secvente? a. 0 c. 13 b. 5 d. valoare nedeterminata ____ 71. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Daca n este un numar natural (intreg pozitiv), ce realizeaza urmatoarea secventa? {p=1; while(n) {p *= n; n--}; } a. Calculeaza in p valoarea n*p c. Calculeaza in variabila p valoarea lui n! p b. Calculeaza in p valoarea n d. Calculeaza in variabila p valoarea lui pn. ____ 72. Care dintre urmatoarele variante realizeaza deschiderea la citire a fisierului text “A.TXT” a. f = fopen(“A.TXT”, “w”); b. f = fopen(“r”, “A. TXT”); c. f = fopen(“A.TXT”, “r”); d. f = fopen(”A.TXT”, r); ____ 73. Care dintre urmatoarele variante realizeaza deschiderea la scriere a fisierului text “B.TXT”? a. f = fopen(“B.TXT”,”r”); b. f = fopen(“B.TXT”,”w”); c. f = fopen(“w”, “B.TXT”); d. f = fopen(“B.TXT”, w); ____ 74. Care dintre urmatoarele secvente au ca efect citirea unui caracter din fisierul “C.TXT”? a. f = fopen(“C.TXT”, “r”); fclose(f); b. f = fopen(“C.TXT”, “r”); scanf(“%c”, &x); fclose(f);

____ 75.

____ 76.

____ 77.

____ 78.

c. f = fopen(“C.TXT”, “r”); fscanf(f, “%c”, &x); fclose(f); d. f = fopen(“C.TXT”, “r”); fscanf( “%c”, &x, f); fclose(f); Considerand ca variabila f este de tip fisier (FILE *), care dintre urmatoarele instructiuni verifica daca s-a ajuns la sfarsitul fisierului indicat de f? a. if (eof(f)) printf(“final”); else printf(“mai este”); b. if (feof(f)) printf(“final”); else printf(“mai este”); c. if (!eof(f)) printf(“final”); else printf(“mai este”); d. if(!feof(f)) printf(“final”); else printf(“mai este”); Stiind ca fisierul “D.TXT” are urmatorul continut: 13 45 23 32 42 234 56 78 32 23 43 32 32 32 32 ce se va afisa in urma executarii programului urmator? #include <stdio.h> FILE *f; int x, y, z; void main(){ f = fopen(“D.TXT”,”r”); fscanf(f, “%d %d %d\n”, &x, &y, &z); fscanf(f, “%d”, &z); printf(“%d %d %d \n”, x, y, z); } (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. 13 45 23 c. 13 32 23 b. 13 32 56 d. 13 45 32 Stiind ca fisierul “E.TXT” are urmatorul continut: 1 2 3 4 67 34 23 567 546 677 1234 3234 4565 6564 12345 12445 12223 ce se va afisa in urma executarii programului urmator? #include <stdio.h> FILE *f, int x, y, z; void main(){ f = fopen(“E.TXT”, “r”); fscanf(f, “%d %d”,&x, &y); fscanf(f, “%d\n”,&z); printf(“%d %d %d \n”, x, y, z); } (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. 1 2 3 c. 1 67 567 b. 1 2 67 d. 2 3 4 Stiind ca fisierul “F.TXT” are urmatorul continut: 12345 12 93 16 32 8.023 322 21 0.823 21 0.21 213.12

ce se va afisa in urma executarii programului urmator? #include <stdio.h> FILE *f, char x, y, z; void main(){ f = fopen(“F.TXT”, “r”); fscanf(f, “%c”, &x); fscanf(f,” %c”, &y); while(getc(f) != ‘\n’); fscanf(f, “%c”, &z); printf(“%c %c %c \n”, x,y,z); } (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. 1 2 3 c. 1 9 8 b. 1 2 9 d. 1 9 3 ____ 79. Stiind ca fisierul “G.TXT” are urmatorul continut: IaEaws S,a.d sdll -dsa Xda dsa asd da sda sad ce se va afisa in urma executarii programului urmator? #include <stdio.h> FILE *f; char x, y, z; void main(){ f = fopen(“G.TXT”,”r”); while(getc(f) != ‘\n’); fscanf(f,”%c”, &x); while(getc(f) != ‘\n’); fscanf(f,”%c”, &y); while(getc(f) != ‘\n’); fscanf(f,”%c”, &z); printf(“%c %c %c \n”, x, y, z); } (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. I S c. S - X b. a S d. I E S ____ 80. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). Care va fi continutul fisierului “H.TXT” in urma executarii programului urmator? #include <stdio.h> FILE *f; char x, y, z; void main(){ f = fopen(“H.TXT”,”w”); fprintf(f,”Ieri %d\n”,13); fprintf(f,”Azi %d”,14); fprintf(f,”Maine %d\n”,15); fclose(f); } a. Ieri c. Ieri 13

13 Azi 14 Maine 15 b. Ieri 13 Azi 14 Maine 15

Azi 14 Maine 15 d. Ieri 13 Azi 14 Maine 15

____ 81. Se considera algoritmul: 1. citeste n; a = 0; b = 1; k = 2; 2. Cat timp k<n executa { scrie a, b; a = a+b; b = a+b; k = k+2;} 3. Daca k = n atunci scrie a, b; altfel scrie a. Ce sir va calcula algoritmul pentru n = 7? a. 0, 1, 1, 1, 2, 2, 3 c. 0, 1, 1, 2, 3, 5, 8 b. 0, 1, 1, 2, 3, 3, 6 d. 0, 1, 0, 1, 0, 1, 0 Care din urmatoarele afirmatii este falsa? a. n2 = O(n2/2) c. 2n = O(n) b. sin(n) = o(n) d. n2+3n ~ n2 Se considera algoritmul: procedure insert_sort(n, x); integer n; integer array x(n); integer i, j, temp; SEQ for i = 2, n, 1 do SEQ temp := x[i]; j := i-1; while ( j>=1) and (x[j] > temp) do SEQ x[j+1] := x[j]; j := j-1; END x[j+1] := temp END; return END Complexitatea algoritmului (la nivelul numarului de comparatii efectuate) este: a. O(n) c. O(n2) b. O(1) d. O(n log2n) Care dintre urmatoarele formule de corectitudine logica este falsa? a. {x = n!} n:=n+1; x := x*n {x = n!} b. {(x = 640) and (y = 480)} t:=x; x:=y; y:=t {(x = 480) and (y=640)} c. {(x = 640) and (y = 480)} x:=x+y; y:=x-y; x:=x-y {(x = 480) and (y=640)} d. {true} if x>y then SEQ t:=x; x:=y; y:=t END {x >y} Se considera algoritmul: integer m, n, x, y; SEQ read m, n ; if (x>0) and (y>0) then SEQ

____ 82.

____ 83.

____ 84.

____ 85.

x:=m; y:=n; while x <> y do if x>y then x:=x-y else y:=y-x; write x END END Care este proprietatea invarianta a buclei while? a. x <> y b. (x = m) and (y = n) c. (cmmdc(x, y) = cmmdc(m, n)) and (x>0) and (y>0) d. (x > 0) and (y > 0) ____ 86. Se considera definitia void f(int n){ int j; if (n>0) for (j=1; j<=n; j++) {printf(“%d”,j); f(n-1);} } Ce se afiseaza ca urmare a apelului f(2)? a. 1122 c. 121 b. 112 d. 1121 ____ 87. Variabila p este declarata astfel: int *p; Stiind ca p retine adresa unei variabile de tip int, care dintre urmatoarele instructiuni afiseaza valoarea respectivei variabile intregi? a. printf(“%p”,p); c. printf(“%d”, p*); b. printf(“%d”,*p); d. printf(“%d”, &p); ____ 88. Se considera definitia: long f(int n){ if (n == 0) return 1; else if (n == 1) return 4; else return f(n-1) - f(n-2); } Stabiliti ce valoasre returneaza apelul f(7). (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. 1 c. -4 b. -3 d. 4 ____ 89. Se considera definitia long f(int n, int k){ if (n == k || k == 1) return 1; if (n < k) return 0; long s=0, i; for (i=1; i<=k; i++) s+=f(n-k,i); return s; } Stabiliti ce valoare returneaza apelul f(6,3). (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. 3 b. 1 ____ 90. Se considera definitia: c. 2 d. 4

long f(int x, int y){ if (x == y || x == 0) return 1; else return f(x,y-1)+f(x-1,y-1); } Ce valoare returneaza apelul f(8,10)? (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. 50 c. 40 b. 45 d. 55 ____ 91. In functia recursiva de mai jos se considera ca tabloul unidimensional v este declarat global. void star(int i){ if(i<10) { printf(“*”); if (v[i] == i+1) star(i+2); else star(i+1); } } Pentru care dintre declaratiile urmatoare, apelul star(0) produce 7 asteriscuri (stelute)? (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului). a. int v[] = {1, 4, 3, 2, 1, 6, 5, 4, 3, 10}; b. int v[] = {3, 2, 1, 4, 3, 6, 7, 2, 9, 2}; c. int v[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; d. int v[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; ____ 92. Pentru o valoare naturala mai mare decat 1 memorata in variabila globala n, subprogramul urmator afiseaza cel mai mare divizor al lui n, mai mic decat n, la apelul divi(n). void divi(long i){ if ( ... == 0) printf(“%ld”, ...); else divi(i-1); } Cu ce expresii trebuie completate punctele de suspensie? a. n % i si i c. n%(i-1)=0 si i b. n% (i-1) si i-1 d. n%i si i-1 ____ 93. Stiind ca p este un vector (tablou unidimensional) cu 3 componente intregi (tabloul este declarat global), M este multimea tuturor cifrelor nenule, iar functia tipar afiseaza valorile elementelot p[0], p[1] si p[2], cu ce trebuie inlocuite simbolurile a, b si c in definitia functiei G astfel incat in urma apelului G(0) sa se afiseze toate elementele produsului cartezian MxMxM? void G(int k){ int i; for (i = a; i<=b; i++) { p[k] = i; if (k == c) tipar(); else G(k+1);} } a. a = 0, b = 10, c = 3 c. a = 1, b = 9, c = 3 b. a = 1, b = 3, c = 9 d. a = 1, b = 9, c = 2 ____ 94. Se considera un tablul unidimensional in care elementele sunt in ordinea: 1, 3, 5, 7, 10, 16, 21.Pentru a afla pozitia pe care se afla valoarea x = 10 se aplica metoda cautarii binre. Care este succesiunea de elemennte care astepau valoarea lui x:. a. 21,16, 10 c. 1, 3, 5, 7, 10 b. 7, 16, 10 d. 5, 7, 10

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->