Sunteți pe pagina 1din 2

UNIVERSITATEA "TITU MAIORESCU" NR.

2
FACULTATEA DE INFORMATIC




EXAMEN LA DISCIPLINA "PROGRAMARE PROCEDURAL (II)"
AN I ZI SESIUNEA MAI/IUNIE 2013


I. Pentru fiecare dintre cele 6 ntrebri de mai jos, scriei pe foaia de examen rspunsul pe care l considerai corect:

1. Considernd definiiile structurilor alturate i variabila a de tip
Punct_3D care memoreaz coordonatele unui punct din spaiu,
indicai instruciunea prin care toate cele 3 coordonate ale punctului a
se iniializeaz cu valoarea 0.

typedef struct{
int x,y;
}Punct_2D;
typedef struct {
Punct_2D p;
int z;
}Punct_3D;

a. a.p.x = a.p.y = a.p.z = 0; c. a.x = a.y = a.z = 0;
b. a.p.x = a.p.y = a.z = 0; d. a.p = a.z = 0;

2. Ce se afieaz n urma executrii secvenei de program alturate, dac
variabila s memoreaz irul de caractere "abcdabcd"?
char *p = strchr(s+1,s[0]);
printf("%d",p - s);


a. abcd b. 3 c. bcd d. 4

3. Ce va afia urmtorul program?

#include <stdio.h>
#include <string.h>
void sch(char *a, char b)
{
char aux;
aux = *a;
*a = b;
b = aux;
}
int main()
{
char x = '1',y = '2';
sch(&x,y);
printf("%c %c",x,y);
return 0;
}
a. 1 1 b. 2 1 c. 2 2 d. 1 2

4. Considerm funcia int suma(int x,int y) care returneaz suma numerelor ntregi x i y, precum i funcia
int prod(int x,int y) care returneaz produsul numerelor ntregi x i y. tiind c a,b i c sunt 3 variabile de
tip ntreg, care dintre expresiile de mai jos calculeaz valoarea expresiei a*b+a*c+b*c?

a. suma(suma(prod(a,b),prod(a,c)),prod(b,c))
b. suma(prod(a,b),prod(a,c),prod(b,c))
c. suma(prod(a,b),prod(a,c)*prod(b,c))
d. suma(suma(prod(a,b),prod(a,c)),prod(a,c))

5. Ce se afieaz n urma executrii secvenei de program alturate, dac
variabila s memoreaz irul de caractere "abcdefg"?
strcpy(s,s+2);
strncat(s,s+3,3);
printf("%d",strlen(s));

a. 8 b. 10 c. 7 d. 9


6. Care dintre urmtoarele secvene de cod poate fi utilizat pentru a aloca dinamic un tablou bidimensional a cu 100 de
linii, 20 de coloane i elemente numere ntregi?

a. a = (int **)malloc(100*sizeof(int *));
for(int i=0;i<100;i++)
a[i]=(int *)malloc(200*sizeof(int));

b. a = (int *)malloc(100*sizeof(int));
for(int i=0;i<100;i++)
a[i]=(int *)malloc(20*sizeof(int));
c. a = (int **)malloc(20*sizeof(int *));
for(int i=0;i<20;i++)
a[i]=(int *)malloc(100*sizeof(int));

d. a = (int **)malloc(100*sizeof(int *));
for(int i=0;i<100;i++)
a[i]=(int *)malloc(20*sizeof(int));

II. a) Scriei definiia complet a unui subprogram care primete prin intermediul parametrului un numr natural
nenul , iar prin intermediul parametrului un tablou unidimensional format din numere ntregi cu maxim
cifre fiecare. Subprogramul furnizeaz prin intermediul parametrului suma elementelor negative din tabloul ,
prin intermediul parametrului numrul elementelor negative din , iar prin intermediul parametrului suma tuturor
elementelor din tabloul .
b) Scriei un program C care citete de la tastatur o valoare natural nenul , apoi cele elemente,
numere ntregi, ale unui tablou unidimensional . Fiecare dintre aceste elemente este un numr natural avnd cel mult
patru cifre i cel puin dou dintre ele sunt pozitive. Folosind apeluri utile ale subprogramului , programul trebuie s
calculeaz i s afieze pe ecran media aritmetic a elementelor pozitive din tabloul , cu dou zecimale. De exemplu,
dac i , programul trebuie s afieze valoarea .

III. Fiierul text exemplu.txt conine pe prima linie dou cuvinte s i t, iar pe urmtoarele linii un text n care cuvintele sunt
desprite prin spaii, virgul sau punct. Scriei un program C care creeaz fiierul text rezultat.txt nlocuind toate apariiile
cuvntului s n fiierul exemplu.txt cu cuvntul t, restul cuvintelor rmnnd neschimbate.



PUNCTAJ:
Subiectul 1: 3 p. (6 x 0.5 p.)
Subiectul 2: 3 p. (2 p. + 1 p.)
Subiectul 3: 3 p.
Din oficiu: 1 p.

S-ar putea să vă placă și