Sunteți pe pagina 1din 41

A lgo r i tmu l urmato r tes teaza daca s i ru l de ca rac te re s es te

pa l i nd rom ( c i t i t ata t stanga


de l a 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;}


b. i>=j
if(...) printf(“palindrom”; else printf(“nu este palindrom”);

Care este expresia care poate inlocui punctele de suspensie

astfel

incat algoritmul sa fie corect?


Care din operatiile urmatoare atribuie variabilei float x media
a. x = (a + b + c) /3 ;
aritmetica a valorilor intregi a, b si c?
Care din urmatoarele afirmatii despre operatorii din C este falsa? d. <= este operator log ic
Care din urmatoarele expresii are valoarea 1 daca si numai daca d.
strcmp(s ,st rcat (s ,s+5))==
sirul de caractere s, de lungime 10, este obtinut prin
0
concatenarea
Care din urmatoarele secvente de instructiuni va afisa (cu un
c . for ( i = a; i >= 1; i - - ) i f
spatiu intre ele) in ordine descrescatoare toate numerele naturale ( i % 2 != 0) pr int f (“%d ”,
i);
impare mai mici sau egale cu o valoare naturala data a?
Care dintre expresiile C de mai jos este echivalenta cu
c . ! (a<5) && ! (b>7)
expresia !((a<5)&&(b>7)) ?
Care dintre expresiile C de mai jos, are valoarea 1 daca valoarea
a. ! ( (x%2!=0) | | (x<=0))
variabilei intregi x este un numar intreg par si strict pozitiv?
Care dintre expresiile C/C++ de mai jos are valoarea 1 dupa

executarea secventei de instrucţiuni C:

v1=0; v2=0;

for(i=1;i<=3;i++)

{ for (j=1;j<=i;j++) c . v1==v2

v1=v1+1;

for (k=i;k<=3;k++)

v2=v2+1;

in care toate variabilele sunt intregi?


Care dintre expresiile de mai jos are valoarea 1 dupa b. a==b

executarea secventei de instructiuni C, a=11;b=1;

for(i=1;i<=5;i++)

{ b=b+1;
1
a=a-1 ;

i n ca re toa te var i ab i l e l e sun t i n t reg i ?


Care d in t re expres i i l e de mai j o s va avea va loa rea 1? c . ‘a ’ < ‘b ’
Care d in t re expres i i l e urmatoa re , sc r i se i n l imba ju l C, are

va loa rea 1 daca s i numai daca va lo r i l e var i ab i l e l o r i n t reg i x sci . y(x%2==0) | | (y%2==0)

sun t numere pare?


Care d in t re i n s t ruc t i un i l e C de mai j o s dete rmina i n l ocu i rea cu

0 a u l t ime i c i f re a numaru lu i natu ra l , cu ce l put in doua c i f re , memora c . t n=n-n%10;


i n var i ab i l a i n t reaga n?
Care d in t re secvente le de mai j o s conduce l a memora rea i n b. for ( i=0; i<n-1; i++) i f
(a[ i ] > a[ i+1]) {max =
var i ab i l a max a ce le i mai mar i d in t re ce le n va lo r i i n t reg i re t i nu te a[ i ] ; a[ i ] =

i n tab lou l un id imens iona l a ( i n ca re a[0 ] es te pr imu l e lement )?


a[ i+1] ; a[ i+1] = max;}

max = a[n-1] ;
Care d in t re urmatoa re le dec la ra t i i sun t co rec te s in tac t i c :

1) i n t ab=30 ;

2) i n t a+b;
c . 1, 3
3) f l oa t a1 ;

4) char 2ab ;

5) i n t m.n ;
Care d in t re urmatoa re le expres i i are va loa rea 1 daca s i numai
c . (c%a == 0) && (c%b
daca numaru l natu ra l c es te un mul t i p lu comun a l numere lo r natu ra le
==0)
nenu le (uns igned i n t ) a s i b?
Care d in t re urmatoa re le expres i i C are va loa rea 1 daca s i

numai

daca numaru l natu ra l nenu l memora t i n var i ab i l a x , de t i p i n t , d. x%10+x%10/10==0

es te

d iv i z i b i l cu 100?
Care d in t re urmatoa re le expres i i C are va loa rea 1 daca s i

numai d. x/100==0 && x/10!=0

daca numaru l natu ra l memora t de var i ab i l a x de t i p i n t are exac t

doua c i f re?
Care d in t re urmatoa re le expres i i C are va loa rea 1 daca s i numai
d. ( (x - y==2) | | (y - x==2))
daca var i ab i l e l e x s i y memoreaza doua numere natu ra le pare && (x%2==0)
consecu t i ve?
Care d in t re urmatoa re le expres i i C are va loa rea 1 daca s i numai b. (z>x) && (z<y)

daca va loa rea rea la memora ta de var i ab i l a y nu apar t i ne i n te rva lu lu i

desch i s dete rmina t de va lo r i l e rea le d i s t i nc te memora te de var i ab i l e l e

2
x s i z ( x<z )?
Care d in t re urmatoa re le expres i i C are va loa rea 1 daca s i numai daca b. a*a-x*x>0
numaru l rea l memora t i n var i ab i l a x se a f l a i n i n te rva lu l ( - a , a)?

Care d in t re urmatoa re le expres i i C are va loa rea 1 daca var i ab i l a x


a. sqrt (x) == f loor(sqrt (x) )
memoreaza un numar natu ra l pat ra t per fec t ?
Care d in t re urmatoa re le expres i i C are va loa rea 1 dacanumaru l
d. (n%100%4 == 0) &&
natu ra l memora t de var i ab i l a n es te s t r i c t mai mare decat 100 s i
(n%3 == 0)
d iv i z i b i l cu 12?
Care d in t re urmatoa re le expres i i C es te ech iva len ta
c . ( ! (x>=5)) && ( ! (x>10))
cu ! ( ( x>=5)&&(x<10) ) ?
Care d in t re urmatoa re le expres i i C, are ca va loa re ce l mai mare a. (a+b+abs(a-b)) /2

d in t re numere le natu ra le nenu le memora te i n var i ab i l e l e i n t reg ia s i b?


Care d in t re urmatoa re le expres i i C, are ca va loa re ce l mai mic
a. (x+y-abs(x-y)) /2
d in t re numere le natu ra le nenu le , cu ce l mul t 4 c i f re f i eca re ,

memora te i n var i ab i l e l e i n t reg i x s i y?


Care d in t re urmatoa re le i n s t ruc t i un i C at r i bu ie var i ab i l e i i n t reg i t
va loa rea - 1 daca s i numai daca var i ab i l e l e i n t reg i a s i b sun t nenu c .le i fs i (a*b<0) t=-1;
au semne d i fe r i te?
Care d in t re urmatoa re le i n s t ruc t i un i C dete rmina e l im ina rea

c i f re i d in mi j l oc a unu i numar natu ra l , cu exac t 5 c i f re , a. x=x/1000*100+x%100;

memora t i n

var i ab i l a x?
Care d in t re următoa re le i n s t ruc ţ i un i C dete rmina i n se ra rea a.
x=(x /10*10+7)*10+x
c i f re i 7 î n f a ta u l t ime i c i f re a unu i numar natu ra l , cu mai mul t de %10;

2 c i f re , memora t i n var i ab i l a x?
Care d in t re urmatoa re le i n s t ruc t i un i C es te ech iva len ta cu
b. x = x/2 + y/2 + z /2 ;
x

=(x+y+z) /2 ; s t i i nd ca var i ab i l e l e x , y s i z sun t rea le?


Care d in t re urmatoa re le i n s t ruc t i un i C sun t co rec te s in tac t i c a.

daca x s i y sun t doua var i ab i l e de t i p i n t reg? i f (x < 2) && (x > - 5)

{x=x+1; y=y-1;}
Care dintre urmatoarele programe afiseaza diferenta a) #include <stdio.h>
perechilor static int tab[12]={1, 2,
de elemente din orice tablou initializabil tab cu maximum 12 4, 3, 5, 6, 9, 7, 10, 8, 0,
0};
componente?
static int dif[6];

void main(void){

int i=0, id=0;

while (tab[i] != 0)
dif[id++] = tab[i++]-

3
tab[i++];

for(id = 0; id<6; id++)


printf("dif[ %d ] =
%d\n", id, dif[id]);

Care dintre urmatoarele reprezinta o declaratie corecta pentru


d. struct {char nume[30];
o variabila x care memoreaza simultan numele si media a maximum 30
double media;} x[30];
de studenti?
Care dintre urmatoarele secvente au ca efect citirea unui c. f = fopen(“C.TXT”, “r”);
fscanf ( f , “%c”, &x) ;
caracter din fisierul “C.TXT”? fc lose( f ) ;
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 d. s = 0; i=1; while(i<=n)
{s+=a[k][i]; i++;}
(numerotate de la 1 la n; coloana de indice 0 este utilizata in alte

scopuri)?
Care dintre urmatoarele secvente de instructiuni determina, in

mod corect maximul a trei numere?

1) if (a>b && a >c) max = a; else i f (b > a && b > c ) max = b ; e l se


max = c; b. 1, 3
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;


Care dintre urmatoarele variabile nu isi modifica valoarea in

urma executarii secventei de instructiuni:

c=2*a-b; b. doar c

a=a-b; a=c-a;

b=2*a-c;

oricare ar fi valorile lor initiale? (a,b,c sunt variabile de tip int).


Care dintre urmatoarele variante realizeaza deschiderea la
c. f = fopen(“A.TXT”, “r”);
citire a fisierului text “A.TXT”
Care dintre urmatoarele variante realizeaza deschiderea la b. f =
scriere a fisierului text “B.TXT”? fopen(“B.TXT”,”w”);
Care dintre urmatoarele variante reprezinta o declarare corecta

pentru o variabila x care memoreaza simultan varsta in ani impliniti a. struct {float media;

si media la licenta a unui absolvent?


Care dintre urmatoarele variante reprezinta o declarare corecta b. struct { int cod;

pentru o variabila x care memoreaza simultan codul de identificare float media;} x;

4
al unui candidat la un examen, exprimat ca un numar natural de cel

mult 4 cifre si media obtinuta de acesta la examen, exprimata ca un

număr real?
Care dintre urmatoarele variante reprezinta o declarare corecta
a. struct punct {float
pentru o variabila x care memoreaza simultan coordonatele reale
ox,oy;} x;
(abscisa si ordonata) ale unui punct in planul xOy?
Care dintre urmatoarele variante reprezinta o declarare corecta c. struct complex{

pentru o variabila x care memoreaza simultan partea reala si partea float im, re;} x;

imaginara a unui numar complex?


Care dintre urmatoarele variante reprezinta o declarare corecta a. struct fractie{int
pentru o variabila x care memoreaza simultan numaratorul si n1,n2;} x;

numitorul unei fractii ireductibile:


Care dintre variabilele intregi x, y si z vor avea la finalul

executarii secventei de instructiuni,

x = y + z;

z = x – z; b. numai y şi z

y = z;

z = x - y;

aceeasi valoare ca inainte de executare?


Care dintre variantele de mai jos declara constanta x astfel incat
d. const float x=3.14;
aceasta sa memoreze corect numarul real 3,14?
Care este cea mai mica valoare pe care o poate avea expresia C:

x/7-x%7 daca variabila x, de tip int, memoreaza un numar natural cu a. 0

o singură cifra?
Care este instructiunea prin care variabilei x i se atribuie a.
valoarea sumei cifrelor numarului natural format din exact trei x=y/100+y/10%10+y%10;

cifre, memorat de variabila y?


Care este instructiunea prin care variabilei x i se atribuie

valoarea cifrei sutelor numarului natural cu cel putin 4 cifre a. x=y/100%10;

memorat in variabila y?
Care este instructiunea prin care variabilei x i se atribuie
a. x=y%10*10+y/10;
numarul obtinut prin inversarea ordinii cifrelor numarului natural

format din exact 2 cifre, memorat in variabila y?


Care este ordinea de executare a instructiunilor urmatoare pentru ca in b. 3, 4, 2,
final var i ab i l e l e i n t reg i x , y s i z sa a iba va lo r i ega le , i nd i fe ren t de
va lo r i l e l o r i n i t i a l e :

/* 1 */ x = x / 10;

/* 2 */ z = x / y;
5
/* 3 */ x = 100;

/* 4 */ y = x / 10;

}
Care este valoarea expresiei 20 / 10 * 2 + 30 / 15 * 2 c. 8
Care este valoarea expresiei C: (a/b%c<=b)||!(b==a) daca
b. 1
variabilele intregi a, b, c au valorile a=20, b=3, c=5?
Care este valoarea expresiei C: 50-(100–300/2/(2+3))? c. - 20
Care este valoarea expresiei C: 9/2*2-5 a. 3
Care este valoarea expresiei strlen(s) pentru variabila s de tip sir de
a. 7
caractere, declarata si initializata astfel: char

s[15]=”Proba_1”;
Care este valoarea expresiei: 4000/10/10*2+4*10*10 / 2 b. 280
Care este valoarea pe care trebuie să o aiba initial

variabila

intreaga x pentru ca, in urma executarii secventei

while (x!=3){ c. 6

x=x-1;

printf(”HH”);

sa se afiseze sirul HHHHHH?


Care este valoarea tiparita de secventa de program C:

x=30;

y=5;

z=(x+y)/6.0; c. 5.83

z=(int)(z*100);

z=z/100;

printf(“%0.2f”,z);

stiind ca x si y sunt variabile intregi, iar z este o variabila reala?


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; c. x = 23, y = 22, z = 45


else {y = x-1; z = y+x;}

daca initial x = 23, y = 14 si z = 25?


Care sunt valorile variabilelor intregi a si b dupa executarea d. a = 1200 si b = 12

instructiunilor urmatoare:

{ a = 1235; b = a % 10;

if ((a-b) % 10 == 0) { a = a / 100; b = a % 100;}

if (a == b) a = a *100;

6
}
Care sunt valorile variabilelor intregi x si y dupa executarea

in ordine a urmatoarelor trei instructiuni:

x = 0x3; d. x= 0 si y = 6

y = x + 0x3;

x = x - 3;

}
Care va fi continutul fisierului “H.TXT” in urma executarii programului
urmator?

#include <stdio.h>

FILE *f; char x, y, z;

void main(){ b. Ieri 13


f = fopen(“H.TXT”,”w”); Azi 14 Maine 15
fprintf(f,”Ieri %d\n”,13);

fprintf(f,”Azi %d”,14);

fprintf(f,”Maine %d\n”,15);

fclose(f);

}
Care vor fi valorile afisate dupa executarea secventei

char s1[20]=”variabila”, s2[20]=”varianta”;

if(strcmp(s1,s2)<0 && strlen(s1)<strlen(s2))


c. varianta variabila
printf(”%s %s”,s1,s2);

else

printf(”%s %s”,s2,s1);

daca variabilele s1 si s2 sunt de tip sir de caractere?


Care vor fi valorile variabilelor intregi a si b dupa executarea
urmatoarelor instructiuni: b. a = 120, b = 12
{if (a = 10, b = a+1, a != b) b++; else a++; a*=b;}
Cate valori distincte, numere naturale, poate primi

variabila x
b. 4
pentru ca valoarea expresiei x/2/2 scrisa in C sa fie egala cu

1?
Ce se va afisa in urma executarii secventei de instructiuni a. En

char a[10]="Examen";

n=strlen(a);

7
strcpy(a+1,a+n-1);

printf("%s",a);

considerand ca s este o variabila sir de caractere, iar n o

variabila de tip intreg?


Ce se va afisa în urma executarii secventei de program

if(strcmp(x, y) > 0) printf(“%s”,x);

else

if(strcmp(x,y) < 0) printf(“%s”,y); b. examen

else

printf(“imposibil”);

daca variabila x memoreaza cuvantul examen, iar variabila y

memoreaza cuvantul banal?


Ce se va afisa in urma executarii secventei de program:

for(i = 0; i < strlen(x); i++)

if(x[i] >= ‘A’ && x[i] <=’N’)


d. examene
x[i] = x[i] + ‘a’-‘A’;

printf("%s", x);

stiind ca i este o variabila de tip intreg, iar variabila x

memoreaza initial sirul de caractere ExAMeNe?


Ce va fi afisat pe ecran in urma instructiunii

printf(“%6.3f\n”, b. 45.230

45.23); ?
Ce valoare are variabila s de tip sir de caractere dupa executarea
a. amen
instructiunilor de mai jos?

strncpy(s,strstr(″examen″,″am″),4); s[4]='\0'; (4p.)


Ce valoare are variabila s de tip sir de caractere dupa executarea
b. forma
instructiunilor de mai jos?

strncpy(s,strstr("Informatica","form"),strlen("EXA09")); s[5]='\ 0';


Ce valoare are variabila s de tip sir de caractere dupa executarea
b. ada
instructiunii de mai jos?

s=strstr(strnset("Olimpiada",'#',strlen("2009")),"ad");
Ce valoare are variabila s de tip sir de caractere dupa executarea
instructiunilor de mai jos? a. format
s=strncpy(s,strstr("informatica","form"),strlen("LIC009"));

s[6]='\0';
Ce valoare are variabila s de tip sir de caractere dupa executarea
b. infoLIC
instructiunii de mai jos?

s=strcat(strncpy(s,"informatica",strlen("2008")),"LIC");
Consideram ca variabila s memoreaza sirul de caractere examen. c. ExAMeN

8
Care va fi valoarea lui s dupa executarea instrus[0]= ‘E’;s[strlen(s)-1]=
‘N’;s[strlen(s)/2-1]= ‘A’;s[strlen(s)/

2]=

‘M’.
Consideram ca variabila s memoreaza sirul de caractere mama.
a. MAma
Care va fi valoarea lui s dupa executarea instructiunilor de mai jos?

s[0]=′M′; s[strlen(s)-3]= ′A′;


Consideram declararea

struct student{

char nume[10], prenume[20];

float nota1,nota2; a.
} x; m=(x.nota1+x.nota2)/2;

Folosita pentru a memora numele, prenumele si cele 2 note ale unui

student (verificare, laborator). Care dintre instructiunile de mai

jos calculeaza in variabila reala m media aritmetica a notelor

studentului ale carui informatii sunt memorate in variabila x?


Consideram declararea struct student{

char nume[10],prenume[20];

float medie;
a. p.nume[0]
}p;

folosita pentru a memora numele, prenumele si media unui student.

Care dintre expresiile de mai jos are ca valoare prima litera a

numelui unui student ale carui informatii sunt memorate invariabila p?


Consideram declararea: struct punct{

int x,y;
c. p.x=7;
} p;

Care dintre urmatoarele instructiuni este corecta din punct de vedere


sintactic?
Consideram urmatoarea declaratie:

struct produs {char denumire[10]; int pret;} p;


c. p.denumire[0]
Cum se poate accesa prima litera a denumirii unui produs ale carui

caracteristici sunt memorate in variabila p?


Consideram variabila x care memoreaza sirul de caractere
a. printf("%c",x[strlen(x)-
ABAC.
3]);
Care dintre urmatoarele instructiuni conduc la afisarea caracterului B?
Consideram variabilele intregi i si j. Care dintre urmatoarele a.

secvente de instructiuni C determina afisarea pe ecran , in urma i=5; j=6;

9
executarii, a succesiunii de cifre 55? while(j>4){

printf(”%d”,i);

j--;

}
Considerand ca variabila f este de tip fisier (FILE *), care
b. if (feof(f))
dintre urmatoarele instructiuni verifica daca s-a ajuns la sfarsitul printf(“final”); else
printf(“mai este”);
fisierului indicat de f?
Considerand declararea

struct {

int a, b; c. scanf(”%d %d”,


&x.a,&x.b)
} x;

care dintre urmatoarele secvente de instructiuni realizeaza in mod


corect citirea de la tastatura a valorilor celor doua campuri ale
variabilei x?
Considerand declararea

struct {

int a, b; a. printf(”%d %d”,


x.a,x.b);
} x;

care dintre urmatoarele secvente de instructiuni afiseaza valorile

memorate in cele doua campuri ale variabilei x, separate printr –un


spatiu?
Considerand declararile

struct cerc

{float raza;
b. c.x
int x,y;};

cerc c;

care dintre urmatoarele referiri este corecta din punct de vedere


sintactic
Considerand declararile

struct punct{float x,y;};

struct fig

{ char tip; d. e.a.x

punct a,b,c;}

fig e;

care dintre urmatoarele referiri este corecta din punct de

vedere

sintactic ?
10
Considerand variabila x de tip float si variabila de tip int a,

care va fi secventa de caractere afisate in urma executarii secventei de d. 4s4.30s0


instructiuni(s inseamna un spatiu): x = -4.3;
Cum se poate accesa prima litera a denumirii unui material ale

carui caracteristici sunt memorate în variabila m, declarată prin:

struct material{ d. m.denumire[0]

char denumire[20];

int pret;} m;
Cum se poate accesa prima litera a denumirii unui produs ale

carui caracteristici sunt memorate in variabila p, declarata prin:

struct produs{ c. p.denumire[0]

char denumire[15];

int pret;}p;
Cum se poate accesa prima litera a numelui unei persoane ale

carei date de identificare sunt memorate in variabila p, declarata prin:

struct persoana{ a. p.nume[0]

char nume[20],prenume[20];

int varsta;} p;
Cum se poate accesa prima literă a numelui unui student ale carui date
de identificare sunt memorate in variabila e,declarata prin:
b. e.nume[0]
struct student{

char nume[20],prenume[20];

int varsta;}e;
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;
c. 2, 3, 4, 5
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;
Daca n este un numar natural (intreg pozitiv), ce realizeaza

urmatoarea secventa? c. Calculeaza in variabila


{p=1; p

while(n) p *= (n--); valoarea lui n!

}
Daca variabila s de tip sir de caractere memoreaza sirul
d. 11
INFORMATICA atunci strlen(s) are valoarea?
Determinati valoarea expresiei ((int)fabs(-14.2)) % 7 c. 0
11
Determinati va loa rea expres ie i f abs ( - 11 .2
sqrt(floor(16.23)).
) + d. 15.2
Dintre tipurile simple de date face parte tipul: a. double
Elementele tabloului bidimensional

1234

12 13 14 5

11 16 15 6

10 9 8 7
d. 22
cu 4 linii si 4 coloane, sunt toate numerele naturale cuprinse

intre 1 si 16 asezate in spirala, incepand cu primul element al primei

linii si continuand in sens invers trigonometric. Care este cel mai

mare numar situat in zona triunghiulara de sub diagonala secundara

(exclusiv diagonala secundara), in cazul unui tablou bidimensional

cu 5 linii si 5 coloane generat dupa aceeasi regulă?


Fie declararile:

struct student{

char nume[30];
b. printf(“%c“,x.nume[0]);
float nota;};

student x;

Dacă variabila x retine informatii despre un student, precizati care

este varianta corecta ce afisează prima litera din numele acestuia?


Fie declaratiile:

int a[5] = {1, 2,4, 3, 5};


c. 5
int b[4] = {4, 2, 1, 3};

atunci a[b[0]] este:


Fie definitia:

int a = 5, b = 3, c = 1, d = 3;

Care dintre urmatoarele expresii logice au valoarea 1

(adevarat):

1) a < b || c) d. 1, 2, 4

2) (b == d && c || a >= b)

3) (c && d > b)

4) a > b || !(d<a)

5) (a == b) && c
Fie expresia C 10*2/3*3/2. Care este rezultatul evaluarii d. 9

expresiei?
Fie expresia C: ((a>3) && (a<15)) || (a!=b) Care dintre b. !((a<=3) || (a>=15)) ||

12
expresiile C de mai jos ii este echivalentă? (a!=b)
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 b. A, B, D, F

expresii sunt corecte?


Fie instructiunea:

if (x>y) if (y>z) if(z>x) s = x+y+z; else p = x*y*z; d. if(x>y && y>z) p =


O secventa de instructiuni echivalenta cu aceasta, dar care x*y*z;

foloseste o singura data cavantul cheie if, este:


Fie programul C:

#include <stdio.h>

void main(void){
b) Mesajul "Nu"
int a = 7, b=5, c = 2;

if(a > b > c) printf("Da!"); else printf("Nu!");

Care este rezultatul acestuia (ce se afiseaza)?


Fie programul:

#include <stdio.h>

void main(void){

int a=0, b=0; /* definire cu initializare */

int s = 6;

a = 5, /* incarca a b) 0

b=2; incarca b */

s = (a*b)/2;

printf("s= %d\n", s);

Care este valoarea variabilei s la incheierea executarii

programului:
Fie programul: c) 0.00000

#include <stdio.h>

void main(void){

int a=1, b=3;

double f = 0.6;

f = a/b;

printf("f= %7.5lf\n", f);

13
Care este valoarea variabilei f afisata in urma executarii

programului:
Fie secventa C:

p=1; n=279;

while (n>=100)

{ p=p*10;
a. 4
n=n-100;

Cate atribuiri se executa, in total, in secventa alaturata, daca n si p


sunt variabile de tip intreg?
Fie secventa de instructiuni C:

x=4; y=6;

while (y==6) y=y+1;


c. 2
if (x==y) x=x+1;

Care este numarul total de atribuiri efectuate la executarea

secventei de instructiuni?
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 c. x = 1004 si y = 3

executarii secventei de instructiuni date, daca la finalul executarii x are


valoarea 2007 iar y are valoarea 2009.
Fie secventa: b. numerele naturale
a = 99; while (a >=1) {printf(“%d\n”, a); a=a-2;} impare mai mici ca 100

Prin executarea acesteia se afiseaza:


Fie secventa: b. numerele naturale din
{char c; for c=’A’; c <=’Z’; c++) printf(“%d”, c);} intervalul [65, 90]

Prin executarea acesteia se obtin:


Fie secventa: d. 2 3 4 5 6

for(j=1; j<=5; j++) for (i=1; i<=3; i++) a[i][j] = i+j; 32345

Prin executarea acesteia, tabloul a va avea urmatorul continut 43456


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 c. p-1+j


in urma executarii secventei elementele v[q], v[q+1], ..., v[k] sa

se deplaseze cu p-1 vpozitii spre dreapta?


Fie v un tablou unidimensional cu n elemente de tip intreg, iar b. n ori

n un numar natural nenul (n <=100) si secventa urmatoare:

{i=0;
14
while (i<n) {v[i] = i*i; i++;}

De cate ori se repeta instructiunea i++; in timpul executarii secventei


date
Fie v un tablou unidimensional format din n componente

intregi, numerotate de la 1 la n (pozitia 0 are alta semnificatie), iar p si


c. {p = 0; for(k=1; k<=n;
k doua variabile de tip intreg. In care dintre urmatoarele secvente k++) if (v[k]>0 && !p) p =
v[k];}
variabilei p i se atribuie prima valoare strict pozitiva din tabloul

v, daca exista o astfel de valoare, sau 0 in caz contrar?


Fie v un tablou unidimensional format din n numere intregi

(n
b. for(int i=2; i<=n;
>=2). Stiind ca primul element din tablou se afla pe pozitia 1 i++)if(v[i-1]>v[i]) v[i] =
v[i-1]; max =
(pozitia 0 este utilizata in alte scopuri), indicati care dintre
v[n];
urmatoarele secvente atribuie variabilei intregi max cea mai mare

valoare din tabloul v:


Fie x o variabila care memoreaza un numar natural. Care dintre
c. (1-x%3)*(2-x%3)
urmatoarele expresii C are valoarea 0 daca si numai daca numarul
memorat de x nu este divizibil cu 3?
Fie x un număr natu ra l cu exact 4 cifre. Care dintre urmatoarele
instructiuni C/C++ determina, in urma executarii, eliminarea cifrei d. x=x/1000*100+x%100;
sutelor numarului memorat de variabila x?
Fiecare dintre variabilele intregi x si y memoreaz cate un numar

natural. Care dintre expresiile C de mai jos are valoarea 1 daca si c. x*(y-5)>=0

numai daca numarul memorat in x este strict mai mare decat 0 si

numarul memorat in y este strict mai mare decat 5?


Fiecare dintre variabilele intregi x, y si t memoreaza cate un

numar natural de cel mult 4 cifre. Stiind ca x<y, care dintre


b. (t>=x) && (t<=y)
urmatoarele expresii C este egala cu 1 daca si numai daca numarul

memorat de variabila t apartine intervalului inchis [x,y]?


Fiecare dintre variabilele intregi x, y si t memoreaza cate un

numar natural de cel mult 4 cifre. Stiind ca x<y, care dintre a. (t<=x) || (t>=y)

urmatoarele expresii C este egala cu 1 daca si numai daca numarul


memorat de variabila t nu apartine intervalului deschis (x,y)?
Fiind dat un tablou bidimensional cu 20 linii şi 20 coloane,
d. 210
cate elemente se gasesc strict deasupra diagonalei secundare a
tabloului?
Functia predefinita care returneaza modulul unui numar
c. mod
intreg este:
Functia revers(v, p, q) inverseaza ordinea elementelor din b. revers(v, p, q);
revers(v, p+1, q-1);
tabloul unidimensional v aflate pe pozitiile p, p+1, ..., q-1, q
15
(se presupune ca p <= q). Care dintre urmatoarele secvente de

program inverseaza doar prdinea elementelor v[p] si v[q]:


Functia s (scrisa in limbajul C, standard) este utilizata
c. void s(unsigned int *,
pentru interschimbarea valorilor a doua numere intregi, pozitive.
unsigned int *) { ... }
Definitia corecta (in antet) a acesteia trebuie sa fie:
In declararea

struct p{

int a,b;} x,y;

int t;
a. t=x.b; x.b=y.b; y.b=t;
campul a al structurii memoreaza numaratorul, iar campul b
memoreaza

numitorul unei fractii. Care dintre urmatoarele secvente de

instructiuni determina, in urma executarii, interschimbarea

numitorului fractiei x cu numitorul fractiei y?


In declararea

struct punct

float x,y;

}P;

campurile x si y ale inregistrarii pot memora coordonatele

carteziene ale unui punct din planul xOy. Care dintre urmatoarele b. P.y==0

expresii are valoarea 1 daca si numai daca punctul P este situat pe axa
Ox ?
In expresia C: x%2+(x+1)%2 variabila x este de tip intreg. a. are valoarea 1 pentru
Aceasta expresie: orice numar natural x.
In functia recursiva de mai jos se considera ca tabloul

unidimensional v este declarat global.

void star(int i){

if(i<10) {
a. int v[] = {1, 4, 3, 2, 1,
printf(“*”);
6, 5, 4, 3, 10};
if (v[i] == i+1) star(i+2); else star(i+1);

}}

Pentru care dintre declaratiile urmatoare, apelul star(0) produce 7

asteriscuri (stelute)?
In secventa a. eliminarea liniei k din
matrice
for ( i=k+1; i<=n; i++)

16
for (j=1; j<=n; j++)

v[i-1][j] = v[i][j];

n=n-1;

variabila v memoreaza elementele unei matrice cu liniile si

coloanele numerotate de la 1 la n, iar toate celelalte variabile

sunt intregi. Daca 1<=k<n, atunci executarea secventei determina:


In secventa

if(!(strcmp(s1,s2) || strcmp(s1,s3)))

val=1; a. s1, s2, s3 retin siruri


identice de caractere
else

val=2;

variabilele s1, s2 si s3 retin siruri de caractere. Dupa executarea


acesteia, variabila intreaga val primeste valoarea 1 daca
In secventa

for(i=0;i<=strlen(x)-1;i=i+3) printf(“%c”,x[i]);

variabila x memoreaza un sir cu cel mult 100 de caractere, iar


a. 7
variabila i este de tip intreg. Care este numarul maxim de

caractere

pe care il poate avea sirul x astfel încat secventa alaturata sa afiseze


exact 3 caractere ale acestuia?
In secventa

for(i=0; i<8; i++)

for(j=0; j<8; j++)

a[i][j] = (i+j)%8; a. 28

i, j si n sunt variabile intregi, iar a este o matrice formata din 8

linii şi 8 coloane, numerotate de la 0 la 7. Care este suma

elementelor de pe ultima linie a matricei, in urma executării acestei


secvenţe?
In secventa

for(i=0; i<n; i++)

for(j=0; j<n; j++)


d. 56
a[i][j] = (i+j)%n;

i, j si n sunt variabile intregi, iar a este o matrice patratica formata din


n linii si n coloane numerotate de la 0 la n-1. Care este suma
elementelor de pe diagonala secundara din matricea a, in urma
executarii acestei secvente, daca n=8?
In secventa a. 24

17
for(i=0; i<n; i++)

for(j=0; j<n; j++)

a[i][j] = (i+j)%n;

i, j si n sunt variabile intregi, iar a este o matrice patratica formata din


n linii si n coloane, numerotate de la 0 la n-1. Care este suma
elementelor de pe diagonala principala din matricea a, in urma
executarii acestei secvente, daca n=8?
In secventa alaturata de program:

for (i=1;i<=3;i++)

for (j=10;j>=i+1;j--)
a. 24
printf(”%d”,j);

instructiunea de afisare se va executa de un numar de ori egal

cu:
In secventa de instructiuni C:

x=20; y=5;

x=x+y;

y=x-2*y; d. 40

x=y+x;

variabilele x si y sunt intregi. Ce valoare va retine variabila x dupa


executarea acesteia?
In secventa de instructiuni,

y=1;

if (k>0)

if (i!=j)
a. k=0; i=5; j=5
y=0;

else y=2;

variabilele i, j, k si y sunt de tip intreg. Pentru care dintre

urmatoarele seturi de valori ale variabilelor i,j si k variabila y

va avea valoarea 1 in urma executarii secventei?


In secventa de instructiuni, d. k=0; i=5; j=5

if (k>0)

if (i!=j) x=0;

else x=1;

else x=2;

if (i!=j)

if (k>0) y=0;

18
else y=2;

else y=1;

variabilele i, j, k, x si y sunt de tip intreg. Pentru care

dintre urmatoarele seturi de valori ale variabilelor i, j si k

variabilele x si y vor primi valori diferite intre ele in urma

executarii acestei secvente?


In secventa de instructiuni,

if (k>0)

if (i!=j) y=0;

else y=1;
c. k=10; i=5; j=5
else y=2;

variabilele i, j, k si y sunt de tip intreg. Pentru care dintre

urmatoarele seturi de valori ale variabilelor i, j si k variabila y

va avea valoarea 1 in urma executarii secventei?


In secventa de instructiuni:

y=x;

while(x<=3)

printf("*");
a.0
y=y+1; x=x+y;

variabilele x si y sunt de tip int. Care este valoarea pe care

trebuie să o aiba initial variabila x daca la finalul executarii

secventei s-a afisat un singur caracter asterisc (*)?


In secventa urmatoare de instructiuni, n si y sunt variabile

intregi.

{n=156; y = 770;
c. 2
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:


In secventa urmatoare, variabilele n, x si y sunt de tip intreg. a. de n2 ori

{x = 1; y = x-1;

do{

y=x*(x-1)+y;
19
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?
În secvenţa:

p=1;

for(i=1;i<=4;i++)

....

variabila a memoreaza un tablou bidimensional cu 4 linii si 4 a. p=p*a[5-i][i]*a[i][5-i];

coloane, numerotate de la 1 la 4, cu elementele reale. Variabila p

este reală, iar i este de tip întreg.

Care dintre instructiunile de mai jos poate inlocui punctele de

suspensie astfel incat secventa sa determine memorarea in variabila

p a valorii produsului celor 8 elemente aflate pe diagonalele matricei


In secventele C urmatoare toate variabilele sunt de tip intreg si
memoreaza numere cu cel mult 3 cifre. Care dintre variantele de mai b. a=a+b; b=a-b; a=a-b;
jos determina interschimbarea valorilor memorate de variabilele
Parametrii utilizati la apelul unei functii, se numesc: c. parametri actuali
Pentru a memora simultan numele şi media la ‚Programare
d. struct {char a[40];
Procedurala’ a unui student in variabila e, se poate utiliza
float b;} e;
declararea;
Pentru care dintre perechile de valori de mai jos expresia C: a. a=1003 şi b=3

(a%100==b%100) && (a>99) || (b>99) are valoarea 1?


Pentru declararea struct student

{char nume[20]; a. e1=e2+1;

int nota;} e1,e2;

precizati care dintre instructiunile de atribuire este gresita:


Pentru declararea unei variabile care memoreaza un cuvant avand c. char c[26];

maximum 25 caractere, putem utiliza sintaxa:


Pentru definitia alaturata a functiei ex(), stab i l i t i ce se a f i seaza l a
ape lu lex(120)?

void ex(int x){

if (x != 0){
c. 021
printf(“%d”, x %10);

ex(x/10);

}
20
Pentru o matrice t cu 8 linii si 8 coloane, numerotate de la 0 la 7, cu
elemente numere intregi, secventa de program

z=0;
d. strict sub diagonala
for(i=0;i<8;i++)
secundara
for(j=8-i;j<8;j++)

z=z+t[i][j];

determina memorarea in variabila intreaga z a sumei tuturor


elementelor situate:
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){ a. n % i si i

if ( ... == 0) printf(“%ld”, ...); else divi(i-1);

Cu ce expresii trebuie completate punctele de suspensie?


Pentru un tablou bidimensional a cu 10 randuri si 10

coloane, c. Suma elementelor


situate deasupra
stabiliti ce calculeaza secventa de program urmatoare, in
diagonalei principale,
variabila
inclusiv diagonala
s: principala

s = 0;

for (i = 0; i<10; i++) for (j = i; j <10; j++) s+=a[i][j];


Pentru un tablou x declarat global, cu 10 componenteintregi,

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){ c. (1, 9, 3, 7, 5, 6, 4, 8, 2,


if(i <= j) { 10)

x[i] = i; x[j] = j; ex(i+1, j-1);

if (i % 2 != 0) {x[i]=j; x[j]=9-x[i];}

}
Prototipul corect al unei functii care primeste doua numere

intregi ca primi doi parametri (de intrare) si determina media c. void calcul (int, int,

aritmetica si produsul celor doua numere, pe care le transmite double *, int *);

apelantului prin urmatorii doi parametri este:


Se considera algoritmul: c. 0, 1, 1, 2, 3, 5, 8

21
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?


Se considera ca declaratia

struct patrat { float latura, aria;} p;


c. p.aria = p.latura *
defineste in C patrate caracterizate prin latura si arie. Care din
p.latura;
urmatoarele expresii atribuie campului aria al variabilei p valoarea

ariei patratului respectiv?


Se considera declararea

struct fractie {unsigned int x, y;} s, f1, f2;


c. {s.x = f1.x * f2.y + f1.y
in care campurile x si y reprezinta numaratorul, respectiv numitorul
* f2.x; s.y = f1.y * f2.y;}
unei fractii. Care dintre urmatoarele variante construieste in

variabila s o fractie echivalenta cu suma fractiilor f1 si f2?


Se considera declararile:

struct A {

int x;

char y;

float z;}; d. char

struct B {

struct A x;

long y;};

B x, y;.

Care este tipul expresiei x.x.y


Se considera definitia

void f(int n){

int j;
d. 1121
if (n>0) for (j=1; j<=n; j++) {printf(“%d”,j); f(n-1);}

Ce se afiseaza ca urmare a apelului f(2)?


Se considera definitia a.3

long f(int n, int k){

if (n == k || k == 1) return 1;

if (n < k) return 0;

long s=0, i;

22
for (i=1; i<=k; i++) s+=f(n-k,i);

return s;

Stabiliti ce valoare returneaza apelul f(6,3).


Se considera definitia:

long f(int n){

if (n == 0) return 1;
d. 4
else if (n == 1) return 4;

else return f(n-1) - f(n-2);

Stabiliti ce valoasre returneaza apelul f(7).


Se considera definitia:

long f(int x, int y){

if (x == y || x == 0) return 1; b. 45

else return f(x,y-1)+f(x-1,y-1);

Ce valoare returneaza apelul f(8,10)?


Se considera fisierul MAIN.CPP al carui continut este:

#include <stdio.h>

extern char *a;

void main(void){ a) Se afiseaza:


printf("%s\n", *a); Programare procedurala

si fisierul F1.CPP al carui continut este:

char a[] = "Programare procedurala\n";

Prin analiza programului se constata:


Se considera functia f al acarui prototip/antet este bazat pe: c. n

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);


23
de un numar de ori egal cu:
Se considera programul

#include <stdio.h>

void main(void){

int s;

int k; b) intotdeauna 55
for (k = 1; k <= 10; ++k) s += k;

printf("Suma primelor 10 de numere naturale nenule este %d\n",

s);

Ce afiseaza programul:
Se considera programul

#include <stdio.h>

void main(void){

int s=0;

int k; b) intotdeauna 11

for (k = 1; k <= 10; ++k); s += k;

printf("Suma primelor 10 de numere naturale nenule este %d\n",

s);

Ce afiseaza programul:
Se considera programul

#include <stdio.h>

void main(void){

int s=0;

int n, k;
d) 65
printf("N = "); scanf("%d", &n);

for (k = 1; k <= n; s+=++k);

printf("Suma primelor %d numere naturale nenule este %d\n", n,

s);

Valoarea variabilei s pentru n = 10 este:


Se considera programul

#include <stdio.h>

void aplic(int x, int *y){x+=3; (*y)-=2; printf(“%d, %d”, x, b. 15,10,10,20,23,18


24
*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:


Se considera programul C:

#include <stdio.h> b)

int f(void){ int i = 0; return (i++); } F0

int g(void){static int x = 0; return (x++); } F0

void main(void){ int k; F0

for (k = 0; k < 3; k++) printf("F %d\n", f()); G0

for (k = 0; k < 3; k++) printf("G %d\n", g()); G1

} G2

Analizati modul de functionare si precizati care este iesirea

acestui program
Se considera programul C:

#include <stdio.h>

void main(void){
d) 2, 3, 4, 5, 7
int k[5] = {1, 2, 3, 4, 5}, i=7;

for(i = 1; i<= 5; i++) printf("%d, ", k[i]);

printf("\n");

}Care este rezultatul obtinut in urma executarii programului:


Se considera programul C:

#include <stdio.h>

void main(void){ char c;


b) Nu
c = 0xFF;

if(c == 0xFF) printf("Da\n"); else printf("Nu\n");

Ce se afiseaza?
Se considera programul C: d) 8

#include <stdio.h>

void main(void){ int x, y=10;

x = 1; y = x << 2 + 1;

printf("%d\n", y);

y = 7;

}
25
Care este valoarea variabilei y ce se afiseaza prin executarea

programului?
Se considera programul C:

#include <stdio.h>

void main(void){ int x, y=10;

x = 7;
a) -5
y = (x = 1)? (-5) : 7;

printf("%d\n", y), y = 8;

Care este valoarea variabilei y ce se afiseaza prin executarea

programului:
Se considera programul C:

#include <stdio.h>

void main(void){ int k; a)

clrscr(); k = 2, Da

for(k = 2; k<=10; ++k){ k = 3, Da

switch(k){ k = 4, Nu

case 2: k = 5, Da

case 3: k = 6, Nu

case 5: k = 7, Da

case 7: printf("k = %d, Da\n", k); break; k = 8, Nu

defualt: printf("k = %d, Nu\n", k); break; k = 9, Nu

} k = 10, Nu

Ce afiseaza programul in urma executarii?


Se considera programul C:

#include <stdio.h>

void main(void){ int k;


b) k = 11, sqr(k) = 121
for (k = 1; k<= 10; k++);

printf("k = %d , sqr(k) = %d\n", k, k*k);

In urma executarii acestuia se afiseaza:


Se considera programul C: b) Afiseaza pe 10 rinduri
secventa Succes!
#include <stdio.h>
26
#define MAX 10;

void main(void){

int k;

for (k=MAX k>0; --k) printf("Succes!\n");

Atunci:
Se considera programul C:

#include <stdio.h>

void main(void){
a) Mesajul redat prin "Cel
int k1 = 12, k2 = 3; putin un numar este
zero\n"
if (k1 & k2) printf("Ambele numere sint nenule\n");

else printf("Cel putin un numar este zero\n");

Prin executarea acestui program se obtine:


Se considera programul C:

#include <stdio.h>

int a[3][3]={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};


d) O valoare din
void main(void){ memoria volatila din
afara spatiului
printf("Elementul de pe rindul cu indicele 1\n"),

printf(" si coloana cu indicele 2 este %d\n", a[1,2]);

La executarea programului, valoarea afisata este:


Se considera programul C: b) ---------------- (16
simboluri)
#include <stdio.h>

#include <conio.h>

void bit(const unsigned short int k){

unsigned short int x = (1 << 16);

int i;

for(i = 0; i<16; i++) {

if ((x & k) != 0) printf("%c", '*'); else printf("%c",'-');

x >>= 1;

printf("\n");

27
void main(void){

bit(0x55AF);

La executare acesta afiseaza:


Se considera programul C:

#include <stdio.h>

void F(int *a, int b){

b +=*a; (*a)*=b;

printf(“%d %d “, *a, b);


c. 60 12 60 7
}

void main(void){

int x = 5, y = 7; F(&x, y);

printf(“%d %d“, x, y);

Ce se va afisa in urma executarii?


Se considera programul. Analizati textul si identificati a)

rezultatele obtinute in urma executarii acestuia. 40 18 42

#include <stdio.h> 14 13 20

static void mp( 52 34 62

int c[3][3], int a[3][3], int b[3][3]){

int i, j, k;

for(i = 0; i < 3; ++i){

for(j = 0; j < 3; ++j){

c[i][j] = 0;

for(k = 0; k < 3; ++k){

result[i][j] += a[i][k] * b[k][j];

}}

}}

static void pm( int m[3][3]){

int i, j;

for (i = 0; i < 3; ++i){

for (j = 0; j < 3; ++j) printf("%o \t", m[i][j]); printf("\n");

}}

void main(void){

28
int x[3][3] = {{4, 8, 2}, {3, 1, 1}, {8, 8, 2} };

int y[3][3] = {{3, 4, 5}, {3, 0, 2}, {2, 1, 3} };

int z[3][3];

mp(z, x, y);

pm(z);

}
Se considera programul:

#include <stdio.h>

void main(void){

int n1, n2;

printf("n1 = "), scanf("%d", &n1); b) n1/n2 = 8

printf("n2 = "), scanf("%d", &n2);

if (n2 =! 0) printf("n1/n2 = %d\n", n1/n2);

else printf("Impartire prin ZERO\n");

Ce se afiseaza pentru n1 = 8 si n2 = 16?


Se considera programul:

#include <stdio.h>

void main(void){

float treime = 1.0/3.0; c) Afiseaza "Nu!"

float unu = 1.0;

if ((treime+treime+treime) == unu) printf("Da!\n"); else

printf("Nu\n");

}
Se considera secventa C:

y=0;

do{

x=x/10;
b. 5000
y++;

} while(x%100==0);

Care este valoarea pe care poate sa o aiba initial variabila

intreaga x daca, la sfarsitul executării secventei, variabila

intreaga y are valoarea 2?


Se considera secventa de instructiuni: a. aabbdeeff

{char a[]=”aabbddeff”;
29
char b[] =”aabbdeeff”’

if (strcmp(a, b) == 0) printf (“egalitate”); else printf(“%s “,b);

Care este rezultatul obtinut in urma executarii?


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);
d. 28
}

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?


Se considera secventa:

{int a = 5, b = 0;

do {

a--; b +=a*a; d. a = 0 si b = 30

}while(a!=0);

Ce valori vor avea variabilele a si b la finalul executarii secventei?


Se considera secventa:

{ int a =82, b = 24;

a = a % 2 + b / 2 / 2;

b = 2 * a % 2; d. a = 6, b = 0

a = a + b;

b = a % 2 + b + 10 % 2;

Care sunt valorile finale ale variabilelor a si b?


Se considera tabloul bidimensional a cu n linii numerotate de

la 0 la n-1 si m coloane numerotate de la 0 la m-1. Ce reprezinta

elementul a[n-1][p] dupa executarea secventei de program: a. cel mai mare element
p=0; de pe linia n-1

for (i=1;i<m;i++)

if (a[n-1][p]<a[n-1][i])

p=i
Se considera tabloul unidimensional int a[5]={1, 2, 3, 4, 5}; d. 1361015

30
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?
Se considera textul C:

#include <stdio.h>

static int div(int *x){

int k = 5;

k = k/*x;
a) Programul afiseaza
return k;
valoarea 1
}

void main(void){

int n = 5;

printf("%d\n", div(&n));

Atunci:
Se considera un tablou bidimensional a cu n linii si n coloane,

numerotate de la 1 la n, cu elemente numere intregi. Ce reprezinta

valoarea variabilei intregi x, dupa executarea secventei de

program:
a. Suma elementelor de
x=0; pe diagonala pr inc ipa lă a
tab loulu i a
for(i=1;i<=n; i++)

x=x+a[i][i];
Se considera un tablou bidimensional a, format din numere

naturale, cu n linii si n coloane, numerotate de la 1 la n. Ce

reprezinta valoarea variabilei x, dupa executarea secventei de

program:

x=a[n][1];
b. cel mai mare număr de
for(i=n;i>=1;i--) pe diagonala secundară a
tabloului a
if (x<a[i][n-i+1])

x=a[i][n-i+1];
Se considera un tablul unidimensional in care elementele sunt b. 7, 16, 10

in ordinea: 1, 3, 5, 7, 10, 16, 21.Pentru a afla pozitia pe care se

afla valoarea x = 10 se aplica metoda cautarii binare. Care este


31
succesiunea de elemente care astepau valoarea lui x:
Se considera urmatoarea functie recursiva apelata numai pentru

numere naturale nenule:

int f(int a, int b){ c. int f(int a, int b){return


if (a<b) return a; else return f(a-b, b); a%b;}

Care dintre urmatoarele functii este echivalenta cu functia data?


Se considera urmatoarele declaratii:

int x[5] = {0, 1, 5, 3, 4};

int y, i;

si secventa de instructiuni:

{ b. 5

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?


Se considera variabila a care memoreaza un numar cu exact 6

cifre. Care dintre expresiile C de mai jos are ca valoare


b. a/100%100
numarul

format din cele doua cifre din mijloc ale valorii memorate in a?
Se presupune ca lucrati pentru o casa de software americana si
d) {char a[]="1,000,000";
vi se cere sa afisati 'un milion' in scrierea americana , adica 1,000, puts(a);}
0000.

Secventa de cod potrivita este:


Stabiliti care dintre urmatoarele declaratii de variabile sunt corecte:

1) float 1t, 2t;

2) int a[1..10];
d. 2, 3, 4
3) int x, y;

4) string s;

5 ) double e; v;
Stabiliti care dintre urmatoarele expresii C are valoarea 1

daca
a. (x<=-a) || ((x<c)|| (x>=-
si numai daca numarul intreg memorat in variabila x nu apartine
b)) || (x>d)
intervalului (-a,-b)u[c,d], unde a, b, c si d sunt numere reale

pozitive.

32
Stabiliti care dintre urmatoarele expresii C are valoarea 1

daca

si numai daca numarul intreg memorat in variabila x nu apartine d. (x<=-a) && (x>b)

intervalului (-a,-b], unde a si b sunt valori reale pozitive

astfel

incit b < a.
Stabiliti care dintre urmatoarele expresii C are valoarea 1 daca si
numai daca numarul intreg x, nu apartine intervalului a. (x<=-10) || (x<50 &&
x>=-2) || (x>100)
A=(- 10 , - 2)u [50 ,100]?
Stabiliti ce se afiseaza in urma executarii secventei de instructiuni C

y=10.1234;

x=(int)(y*100)/100; d. 10

printf(”%d”,x);

daca y este o variabila reala, iar x o variabila intreaga.


Stiind ca fiecare dintre variabilele var1, var2 memoreaza

numele si nota unui student in forma data de declararea:

struct student
a.
{ char nume[30];
m=(var1.nota+var2.nota)/
float nota; 2;

}var1,var2;

Indicati care dintre urmatoarele expresii atribuie variabilei reale m


media aritmetica a notelor celor doi studenti.
Stiind ca fisierul “D.TXT” are urmatorul continut: d. 13 45 32

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);


33
}
Stiind ca fisierul “E.TXT” are urmatorul continut:

1234

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> a. 1 2 3

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);

}
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>
a. 1 2 3
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);

}
Stiind ca fisierul “G.TXT” are urmatorul continut: a. I S -

34
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);

}
Stiind ca in urma executarii secventei x=strlen(s);

for (i=0;i<x/2;i++) printf(“%c%c”,s[i],s[x-i-1]); a. EAENMX

s-a afisat succesiunea de caractere EXAMEN, care este sirul de


caractere memorat de variabila s?
Stiind ca initial variabilele intregi x, y si z au valorile

x=1,

y=2 respectiv z=3, in ce ordine trebuie scrise atribuirile urmatoare d. I III II

astfel incat, in final, expresia x+y+z sa aiba valoarea maxima?

I) x=x+y-z; II) y=x-y+z; III) z=z-x+y;


Stiind ca p este un vector (tablou unidimensional) cu 3 a. a = 0, b = 10, c = 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){


35
int i;

for (i = a; i<=b; i++) { p[k] = i; if (k == c) tipar(); else

G(k+1);}

}
Stiind ca variabila intreaga n memoreaza un numar natural cu

cel putin 3 cifre, care dintre urmatoarele expresii C are ca valoare c. n/100

numarul obtinut dupa eliminarea ultimelor 2 cifre ale lui n?


Stiind ca variabila intreaga nr memoreaza valoarea 5, stabiliti ce mesaj
se va afisa in urma executarii secventei de instructiuni C urmatoare.

if (nr<7) if (nr>3)
d. Bine
printf(”Bine”);

else printf(”Foarte bine”);

else printf(”Rau”);
Stiind ca variabilele x si y sunt de tip intreg, care este
c. x=y%10;
instrucţiunea prin care variabilei x i se atribuie ultima cifra a

numarului natural memorat in variabila y?


Stiind ca variabilele x si y sunt de tip intreg, care este
a. x=y/10%10;
instructiunea prin care variabilei x i se atribuie cifra zecilor

numarului natural cu cel putin doua cifre memorat de variabila y?


Toate variabilele din secventa de instructiuni C
b. Secventa contine o
if (a>b) instructiune alternativa
urmata de o
{ aux=a;a=b; b=aux;}
instructiune repetitiva.
for(i=a;i<=b;i++) printf(“%d”,i);

sunt intregi. Care dintre urmatoarele afirmatii este adevarata?


Un sir de caractere se numeste palindrom daca sirul citit de la

stanga la dreapta este identic cu sirul citit de la dreapta spre

stanga. Care dintre urmatoarele expresii C are valoarea 1 daca si


numai daca sirul de caractere memorat în variabila s, avand exact 3
c. s[0]==s[2]
caractere, este palindrom?

Variabila a memoreaza un numar natural care are exact 3

cifre.

Care dintre expresiile C de mai jos are ca valoare numarul c. a/100*10+a%10

format

din prima si ultima cifra a numarului memorat de a?


Variabila a, de tip int, memoreaza un numar natural impar, iar

variabila b, de tip int, memoreaza un numar natural par. Care dintre b. !(!(a%2) || b%2);
urmatoarele expresii C are valoarea 1?

36
Variabila d, declarata prin

struct dreptunghi

float a,b,p; c. d.p=2*d.a+2*d.b;

}d;

memoreaza in campurile a si b latimea si, respectiv, lungimea unui

dreptunghi. Care dintre urmatoarele instructiuni atribuie campului p


Variabila d, declarata prin

struct dreptunghi

float a,b,aria;
d. d.aria=d.a*d.b;
}d;

memoreaza in campurile a si b latimea si, respectiv, lungimea unui

dreptunghi. Care dintre urmatoarele instructiuni atribuie campului

aria al variabilei d valoarea ariei dreptunghiului respectiv?


Variabila intreaga a memoreaza un numar natural format din exact trei c.
cifre, toate cifrele fiind nenule si distincte. Care dintre urmatoarele e=a*10/1000+a/10%10+a
instructiuni C atribuie variabilei e suma cifrelor lui a? %10;

Variabila întreaga n memoreaza un numar natural cu exact 4 cifre.


Care dintre expresiile C de mai jos este echivalenta cu expresia b. n%1000%2==0
n/100%10%2==0 ?
Variabila intreaga n memoreaza un numar natural de exact 5

cifre. Instructiunea care determina eliminarea din numarul n a primei si b. n=n/10%1000;


ultimei cifre este:
Variabila intreaga n memoreaza un numar natural de exact 7
a.
cifre. Instructiunea care determina eliminarea din numarul n a celor
n=n/100000*100+n%100;
3 cifre din mijlocul lui este:
Variabila intreaga n memoreaza un numar natural format din exact
doua cifre nenule. Care dintre urmatoarele instructiuni C determina
a. t=n%10*10+n/10;
memorarea in variabila intreaga t a numarului care are aceleasi cifre ca
si n, dar in ordine inversa?
Variabila intreaga n memoreaza un numar natural impar. Care
c. n%2!=0
dintre urmatoarele expresii C are valoarea 1?
Variabila intreaga x memoreaza o valoare mai mare ca 1000, formata d. printf("%d",x%10/1);
doar din cifre distincte. Care dintre urmatoarele instructiuni C afisează
o singura cifra?
Variabila intreaga x retine un numar natural cu cel putin doua cifre.
Care dintre urmatoarele expresii C are valoarea egala cu cifra c. x / 10 % 10
zecilornumarului natural memorat in variabila x?
Variabila p este declarata astfel: b. printf(“%d”,*p);

int *p;

37
Stiind ca p retine adresa unei variabile de tip int, care dintre

urmatoarele instructiuni afiseaza valoarea respectivei variabile intregi?


Variabila reala x memoreaza numarul 2.682. Care dintre urmatoarele b. y = (floor)(x*100)/100 +
instructiuni C va atribui variabilei intregi y valoarea 10? (floor)(x*100%100/10);
Variabila s este de tip sir de caractere, iar variabilele c1 si

c2 sunt de tip char. Care expresie are valoarea 1 daca si numai daca a. strstr(s,c1+c2)!=0

sirul de caractere s contine caracterele memorate de variabilele c1 si


c2?
Variabila s memoreaza un sir de caractere. Care dintre
d. strlen(s)%2==0
urmatoarele expresii C este nenula daca si numai daca lungimea

sirului este un numar par?


Variabila s memoreaza un sir de caractere. Care dintre urmatoarele a. strlen(s)<10
expresii C este nenula daca si numai daca lungimea sirului este strict
mai mică decat 10?
Variabila t este utilizata pentru a memora numarul de exemplare
b. struct carte{
disponibile intr-o biblioteca si titlul unei carti. Numarul de
int nr;
exemplare este un numar natural de cel mult 2 cifre, iar titlul nu
char titlu[21];
poate avea mai mult de 20 de litere. Care dintre urmatoarele declarari
} t;
este corecta?
Variabila t este utilizata pentru a memora pretul (val) si
c. struct carte{ int
numele autorului unei carti. Pretul cartii este un numar natural de
val;char nume[21];} t;
cel mult 3 cifre, iar numele autorului nu poate avea mai mult de 20

de litere. Care dintre urmatoarele declarari este corecta?


Variabila t memoreaza o matrice cu 5 linii si 5 coloane,

numerotate de la 0 la 4, cu elemente numere intregi, iar

celelalte

variabile sunt intregi. Secventa de program

x=0; b. strict deasupra


for(i=0;i<5;i++) diagonalei principale

for(j=i+1;j<5;j++)

x=x+t[i][j];

determina memorarea in variabila x a sumei elementelor situate:


Variabila t memoreaza o matrice cu 8 linii si 8 coloane, d. strict deasupra
diagonalei secundare
numerotate de la 0 la 7, cu elemente numere intregi, iar

celelalte

variabile sunt intregi. Secventa de program z=0;

for(i=0;i<8;i++)

for(j=0;j<8-i;j++)

38
z=z+t[i][j];

determina memorarea in variabila intreaga z a sumei tuturor


elementelor situate:
Variabila t memoreaza o matrice cu 8 linii si 8 coloane, numerotate de
la 0 la 7, cu elemente numere intregi, iar variabilele

i si j sunt intregi. Secventa de program

z=0;

for(i=0;i<8;i++) a. strict sub diagonala


for(j=0;j<i;j++) principala

z=z+t[i][j];

determina memorarea in variabila intreaga z a sumei tuturor


elementelor situate:
Variabila t memoreaza o matrice cu 8 linii si 8 coloane, numerotate de
la 0 la 7, cu elemente numere intregi, iar celelalte variabile sunt
intregi. Secventa de program z=0;

for(i=0;i<8;i++) a. sub diagonala


secundara, inclusiv
for(j=7-i;j<8;j++)
diagonala secundara
z=z+t[i][j];

determina memorarea in variabila intreaga z a sumei tuturor


elementelor situate:
Variabila x es te de t idouble.
p Care dintre urmatoarele expresii

C are valoarea 1 daca si numai daca numarul real memorat in


d. (x<=b) && (x>a)
variabila x apartine intervalului (a,b], unde a si b sunt numere in

virgula mobila date (initializate, citite sau rezultat al unor operatii


preliminare)?
Variabila x este utilizata pentru a memora numele, prenumele si c. struct persoana{
salariul unei persoane. Numele si prenumele pot avea cel mult 20 de char
litere fiecare, iar salariul este un numar natural nenul mai mic nume[21],prenume[21];

decat 30000 . Care dintre urmatoarele declarari este corecta? int sal;} x;
Variabile a si b sunt declarate astfel: char a[20,b[20]; Ce se

afiseaza in urma executarii secventei urmatoare:

{
a. examen20*08
strcpy(a, “examen20”); strcpy(b, “08”);

printf(“%s%s”, strcat(a, “*”), b);

}
Variabile intregi x si y memoreaza cate un numar natural, cu c. 1

exact doua cifre. Care este valoarea expresiei x-y stiind fiecare

dintre expresiile C alaturate are valoarea 1?

39
x/10==y%10

y/10==x%10

x/10==x%10+1
Variabilele a si b sunt de tip int, iar variabilele c si d sunt

de tip double. Care dintre urmatoarele instructiuni de atribuire nu d. b=(d<=c);

este corecta din punct de vedere sintactic?


Variabilele a si i sunt declarate astfel:

int a[100], i;
a. a = i;
Care dintre urmatoarele instructiuni este corecta din punct de

vedere sintactic?
Variabilele a, b si c, de tip int, pot fi initializate cu

oricare numere naturale impare distincte. Stiind ca c este divizor a. !((a % c!=0) || !(b %
al lui a, iar b nu este multiplu al lui c, care dintre urmatoarele c!=0))

expresii scrise in C are valoare 1?


Variabilele a, b si z sunt reale, iar a ≤ b. Care dintre expresiile C
urmatoare are valoarea 1 daca si numai daca valoarea variabilei z nu b. (z<a)||(z>b)
apartine intervalului inchis determinat de valorile variabilelor a si b ?
Variabilele a, b, c si d memoreaza valori reale astfel incat
a. (d<a) || (b<c)
a<b si c<d. Care dintre expresiile C de mai jos are valoarea 1 daca si

numai daca intersectia intervalelor inchise [a,b] si [c,d] este vida?


Variabilele intregi a si b memoreaza numere naturale. Care b. (a%2!=0) &&
(b%2!=0) && (a%2==1)
dintre expre
&& (b%2==1)
Variabilele intregi a si b memoreaza numere naturale. Care a. (a%2==0) &&
dintre expresiile C de mai jos este echivalenta cu expresia (b%2==1)|| (a%2==1) &&
(a+b)%2==1 ? (b%2==0)
Variabilele intregi n si m memoreaza numere naturale nenule

pare, iar n<m. Care dintre expresiile C de mai jos are valoarea b. m/2-n/2

egala cu numarul de valori impare din intervalul inchis [n,m] ?


Variabilele intregi x si y memoreaza cate un numar natural

nenul. Cel mai mic multiplu comun al valorilor lor este egal cu
d. x%y==0
numarul memorat in y daca si numai daca urmatoarea

expresie C are o valoare nenula:


Variabilele intregi x si y memoreaza doua numere naturale cu cel mult
4 cifre fiecare. Care

dintre expresiile de mai jos are valoarea 1, daca si numai daca c. (x<=100 && x>=10)||
(y>=5 && y<=30)
valoarea memorata de x

apartine intervalului [10,100] si valoarea memorata de y apartine

intervalului [5,30]?
Variabilele intregi x si y memoreaza numere naturale nenule. d. (x%10+y%10)%10==0

40
Care dintre urmatoarele expresii C este nenula daca si numai daca

numarul obtinut prin insumarea valorilor variabilelor x si y are ultima


cifra 0?
Variabilele n, z si u sunt intregi, iar n memoreaza un numar
b. u=n%10;
natural cu cel putin 2 cifre. Secventa C care determina
z=n/100%10;
interschimbarea ultimelor doua cifre din scrierea numarului memorat
n=n/100+u*10+z;
de n este:
Variabilele x si s memoreaza siruri cu cel mult 20 de

caractere:

x memoreaza sirul primavara, iar variabila s memoraza sirul a. anotimpprima

anotimp.

Ce se va memora in variabila s în urma executării instrucţiunii:

strncat(s, x, 5);
Variabilele x si y sunt de tip intreg, x memorand valoarea 4, d. !(x==2*y)

iar y valoarea 2. Care dintre expresiile C de mai jos are valoarea 0?


Variabilele x si y sunt de tip intreg, x memorand valoarea 8,
c. !(x/2+2==y)
iar y valoarea 6. Care dintre expresiile C de mai jos are valoarea 0?
Variabilele x s i y sunt tip int. Care dintre expresiile C de mai
c. (x<=y) || (y<=x)
jos are valoarea 1 daca si numai daca valorile intregi nenule

memorate in variabilele x si y sunt egale?


Variabilele x, y si z memoreaza valori reale, iar x<y. Care dintre
expresiile de mai jos, scrise in limbajul C, are valoarea 1 daca valoarea
a. (z>=x) && (z<=y)
variabilei z este situata in intervalul inchis determinat de valorile
memorate in variabilele x si y?
Variabilele x, y si z sunt intregi, x memoreaza valoarea 7, y

memoreaza valoarea 20, iar z memoreaza valoarea 5. Care este b. 28

rezultatul evaluarii expresiei aritmetice C: x+y+x*z/y ?


Variabilele x, y, z si w sunt intregi, x memoreaza valoarea 2, y
memoreaza valoarea 3, z memoreaza valoarea 5, iar w memoreaza c. (z<=w) && (x>0) ||
valoarea 7. Care dintre urmatoarele expresii, scrise în limbajul C, are (y>=x)
valoarea 1?

41