You are on page 1of 53

Universitatea Spiru Haret

Facultatea de Matematica-Informatica
Programare Procedurala
Probleme propuse
1. Se considera programul C:
#include <stdio.h>
int f(void){ int i = 0; return (i++); }
int g(void){static int x = 0; return (x++); }
void main(void){ int k;
for (k = 0; k < 3; k++) printf("F %d\n", f());
for (k = 0; k < 3; k++) printf("G %d\n", g());
}
Analizati modul de functionare si precizati care este iesirea
acestui program.
a)
F 1
F 1
F 1
G 1
G 2
G 3
b)
F 0
F 0
F 0
G 0
G 1
G 2
c)
F 1
F 2
F 3
G 1
G 2
G 3
d)
F 0
F 1
F 2
G 0
G 1
G 2
2. Se considera programul. Analizati textul si identificati
rezultatele obtinute in urma executarii acestuia.
#include <stdio.h>
static void mp(
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){
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);
}
a)
40 18 42
14 13 20
52 34 62
b)
64 28 35
68 40 41
20 10 11
c)
0 2 2
6 5 4
4 2 6
d)
0 4 3
4 0 1
4 2 3
3. Se considera programul
#include <stdio.h>
void main(void){
int s;
int k;
for (k = 1; k <= 10; ++k) s += k;
printf("Suma primelor 10 de numere naturale nenule este %d\n",
s);
}
Ce afiseaza programul:
a) 6
b) intotdeauna 55
c) 10
d) uneori si 55
4. Se considera programul
#include <stdio.h>
void main(void){
int s=0;
int k;
for (k = 1; k <= 10; ++k); s += k;
printf("Suma primelor 10 de numere naturale nenule este %d\n",
s);
}
Ce afiseaza programul:
a) 55
b) intotdeauna 11
c) uneori si 55
d) uneori si 11
5. Se considera programul
#include <stdio.h>
void main(void){
int s=0;
int n, k;
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
a) 55
b) uneori si 65
c) uneori si 55
d) 65
6. Se considera programul C:
#include <stdio.h>
void main(void){
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:
a) 1, 2, 3, 4, 5,
b) 0, 1, 2, 3, 4,
c) 2, 3, 4, 5, 0,
d) 2, 3, 4, 5, 7.
7. Se considera programul C:
#include <stdio.h>
void main(void){ char c;
c = 0xFF;
if(c == 0xFF) printf("Da\n"); else printf("Nu\n");
}
Ce se afiseaza?
a) Da
b) Nu
c) La compilare apare eroare de sintaxa
d) In timpul executarii apare o eroare
8. Fie programul:
#include <stdio.h>
void main(void){
int a=0, b=0; /* definire cu initializare */
int s = 6;
a = 5, /* incarca a
b=2; incarca b */
s = (a*b)/2;
printf("s= %d\n", s);
}
Care este valoarea variabilei s la incheierea executarii
programului:
a) 6
b) 0
c) 5
d) La compilare apare eroare de sintaxa
9. Fie programul:
#include <stdio.h>
void main(void){
int a=1, b=3;
double f = 0.6;
f = a/b;
printf("f= %7.5lf\n", f);
}
Care este valoarea variabilei f afisata in urma executarii
programului:
a) 0.33333
b) 0
c) 0.00000
d) 0.6
10. Se considera fisierul MAIN.CPP al carui continut este:
#include <stdio.h>
extern char *a;
void main(void){
printf("%s\n", *a);
}
si fisierul F1.CPP al carui continut este:
char a[] = "Programare procedurala\n";
Prin analiza programului se constata:
a) Se afiseaza: Programare procedurala
b) La compilare apare eroare de sintaxa
c) La executare executarea programului se incheie cu un mesaj de
eroare
d) Programul afiseaza adresa celului, din memoria volatila, ce
contine sirul "Programare procedurala\n".
11. Se considera programul C:
#include <stdio.h>
void main(void){ int x, y=10;
x = 1; y = x << 2 + 1;
printf("%d\n", y);
y = 7;
}
Care este valoarea variabilei y ce se afiseaza prin executarea
programului?
a) 5
b) 10
c) 7
d) 8
12. Se considera programul C:
#include <stdio.h>
void main(void){ int x, y=10;
x = 7;
y = (x = 1)? (-5) : 7;
printf("%d\n", y), y = 8;
}
Care este valoarea variabilei y ce se afiseaza prin executarea
programului:
a) -5
b) 7
c) 10
d) 8
13. Se considera programul C:
#include <stdio.h>
void main(void){ int k;
clrscr();
for(k = 2; k<=10; ++k){
switch(k){
case 2:
case 3:
case 5:
case 7: printf("k = %d, Da\n", k); break;
defualt: printf("k = %d, Nu\n", k); break;
}
}
}
Ce afiseaza programul in urma executarii?
a)
k = 2, Da
k = 3, Da
k = 4, Nu
k = 5, Da
k = 6, Nu
k = 7, Da
k = 8, Nu
k = 9, Nu
k = 10, Nu
b)
k = 2, Da
k = 3, Da
k = 5, Da
k = 7, Da
c)
k = 2, Da
k = 2, Nu
k = 3, Da
k = 3, Nu
k = 4, Nu
k = 5, Da
k = 5, Nu
k = 6, Nu
k = 7, Da
k = 7, Nu
k = 8, Nu
k = 9, Nu
k = 10, Nu
d)
k = 3, Da
k = 4, Nu
k = 5, Da
k = 6, Nu
k = 7, Da
k = 8, Nu
k = 9, Nu
k = 10, Nu
14. Se considera programul C:
#include <stdio.h>
void main(void){ int k;
for (k = 1; k<= 10; k++);
printf("k = %d , sqr(k) = %d\n", k, k*k);
}
In urma executarii acestuia se afiseaza:
a) Numerele de la 1 la 10 impreuna cu patratele acestora, in
baza 10
b) k = 11, sqr(k) = 121
c) Numerele de la 1 la 10 impreuna cu patratele acestora, in
baza 8
d) Numerele de la 1 la 10 impreuna cu patratele acestora, in
baza 16
15. Se considera textul C:
#include <stdio.h>
static int div(int *x){
int k = 5;
k = k/*x;
return k;
}
void main(void){
int n = 5;
printf("%d\n", div(&n));
}
Atunci:
a) Programul afiseaza valoarea 1
b) La compilare apare o eroare de sintaxa
c) Programul afiseaza valoarea 0
d) Programul afiseaza valoarea 5
16. Se considera programul:
#include <stdio.h>
void main(void){
int n1, n2;
printf("n1 = "), scanf("%d", &n1);
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?
a) n1/n2 = 0
b) n1/n2 = 8
c) n1/n2 = 16
d) n1/n2 = 0.5
17. Se considera programul C:
#include <stdio.h>
#define MAX 10;
void main(void){
int k;
for (k=MAX k>0; --k) printf("Succes!\n");
}
Atunci:
a) La compilare apare eroare de sintaxa in instructiunea for
b) Afiseaza pe 10 rinduri secventa Succes!
c) Afiseaza pe 10 rinduri secventa Succes!\n
d) La compilare apare eroare de sintaxa la directiva #define
18. Se considera programul C:
#include <stdio.h>
void main(void){
int k1 = 12, k2 = 3;
if (k1 & k2) printf("Ambele numere sint nenule\n");
else printf("Cel putin un numar este zero\n");
}
Prin executarea acestui program se obtine:
a) Mesajul redat prin "Cel putin un numar este zero\n"
b) Mesajul redat prin "Ambele numere sint nenule\n"
c) La compilare se obtine eroare de sintaxa
d) La executare se obtine eroare de calcul
19. Se considera programul C:
#include <stdio.h>
int a[3][3]={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
void main(void){
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:
a) 2
b) 6
c) 8
d) O valoare din memoria volatila din afara spatiului alocat
20. Se presupune ca lucrati pentru o casa de software americana
si
vi se cere sa afisati 'un milion' in scrierea americana , adica
1,000, 0000.
Secventa de cod potrivita este:
a) {unsigned long int k = 1,000,000; printf("%ul", k);}
b) {char a[9]={'1', ',', '0', '0', '0', ',', '0', '0', '0'};
puts(a);}
c) {char *a = {'1', ',', '0', '0', '0', ',', '0', '0', '0',
'\0'};
puts(a);}
d) {char a[]="1,000,000"; puts(a);}
21. Se considera programul:
#include <stdio.h>
void main(void){
float treime = 1.0/3.0;
float unu = 1.0;
if ((treime+treime+treime) == unu) printf("Da!\n"); else
printf("Nu\n");
}
a) La compilare apare o eroare de sintaxa in legatura cu
prezenta ;
inaintea cuvintului else
b) Afiseaza "Da!" pentru ca 3 treimi formeaza un intreg
c) Afiseaza "Nu!"
d) In timpul executarii apare eroare de calcul in virgula
mobila.
22. Se considera programul C:
#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");
}
void main(void){
bit(0x55AF);
}
La executare acesta afiseaza:
a) -*-*-*-**-*-****
b) ---------------- (16 simboluri)
c) La compilare apare eroare de sintaxa
d) Executarea programului se incheie fortat.
23. Care dintre urmatoarele programe afiseaza diferenta
perechilor
de elemente din orice tablou initializabil tab cu maximum 12
componente?
a)
#include <stdio.h>
static int tab[12]={1, 2, 4, 3, 5, 6, 9, 7, 10, 8, 0, 0};
static int dif[6];
void main(void){
int i=0, id=0;
while (tab[i] != 0) dif[id++] = tab[i++]-tab[i++];
for(id = 0; id<6; id++) printf("dif[ %d ] = %d\n", id, dif[id]);
}
b)
#include <stdio.h>
#define MAX 12
static int tab[12]={1, 2, 4, 3, 0, 6, 9, 7, 10, 8, 12, 11};
static int dif[6];
void main(void){
int i=0, id=0;
while (i < MAX) dif[id++] = tab[i++]-tab[i++];
for(id = 0; id<6; id++) printf("dif[ %d ] = %d\n", id, dif[id]);
}
c)
#include <stdio.h>
static int tab[12]={1, 2, 4, 3, 5, 6, 9, 7, 10, 8, -1, -1};
static int dif[6];
void main(void){
int i=0, id=0;
while (tab[i] != EOF) dif[id++] = tab[i++]-tab[i++];
for(id = 0; id<6; id++) printf("dif[ %d ] = %d\n", id, dif[id]);
}
d)
#include <stdio.h>
#define MAX 12
static int tab[MAX]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
static int dif[MAX/2];
void main(void){
int n = sizeof(tab)/sizeof(int);
int i=0, id=0;
while (i < n) dif[id++] = tab[i++]-tab[i++];
for(id = 0; id<6; id++) printf("dif[ %d ] = %d\n", id, dif[id]);
}
24. Fie programul C?
#include <stdio.h>
void main(void){
int a = 7, b=5, c = 2;
if(a > b > c) printf("Da!"); else printf("Nu!");
}
Care este rezultatul acestuia (ce se afiseaza)?
a) Mesajul "Da!"
b) Mesajul "Nu"
c) Eroare de compilare la a > b > c
d) Eroare de comparare in timpul executarii
25. Variabila x este de tip double. Care dintre urmatoarele
expresii
C are valoarea 1 daca si numai daca numarul real memorat in
variabila x apartine intervalului (a,b], unde a si b sunt numere
in
virgula mobila date (initializate, citite sau rezultat al unor
operatii preliminare)?
a. (x<b) && (x>=a)
b. (x<=b) || (x>a)
c. (x>b) || (x<=a)
d. (x<=b) && (x>a)
26. Variabilele x si y sunt tip int. Care dintre expresiile C de
mai
jos are valoarea 1 daca si numai daca valorile intregi nenule
memorate in variabilele x si y sunt egale?
a. (x%y==0) && (y%x==0) && (x*y>0)
b. (x<=y) && (y<x)
c. (x<=y) || (y<=x)
d. x*x==y*y
27. Care dintre urmatoarele expresii C are valoarea 1 daca si
numai
daca numarul real
memorat in variabila x se afla in intervalul (-a, a)?
a. x*x-a*a<=0
b. a*a-x*x>0
c. (a<x)&&(x<-a)
d. (x-a)*(x+a)>0
28. Fie expresia C 10*2/3*3/2. Care este rezultatul evaluarii
expresiei?
a. 0
b. 10
c. 1.11
d. 9
29. Care dintre urmatoarele expresii C, are ca valoare cel mai
mic
dintre numerele naturale nenule, cu cel mult 4 cifre fiecare,
memorate in variabilele intregi x si y?
a. (x+y-abs(x-y))/2
b. x+y-abs(x-y)/2
c. (x+y+abs(x-y))/2
d. (x+y+abs(x+y))/2
30. Fiecare dintre variabilele intregi x si y memoreaz cate un
numar
natural. Care dintre expresiile C de mai jos are valoarea 1 daca
si
numai daca numarul memorat in x este strict mai mare decat 0 si
numarul memorat in y este strict mai mare decat 5?
a. x*y-5!=0
b. x*(y-5)!=0
c. x*(y-5)>=0
d. !(x*(y-5)<=0)
31. Care dintre urmatoarele expresii C, are ca valoare cel mai
mare
dintre numerele naturale nenule memorate in variabilele intregi
a si
b?
a. (a+b+abs(a-b))/2
b. a+b+abs(a-b)/2
c. (a+b-abs(a-b))/2
d. (a+b-abs(a+b))/2
32. Fie expresia C: ((a>3) && (a<15)) || (a!=b) Care dintre
expresiile C de mai jos ii este echivalentă?
a. ((a>3) || (a<15)) && (a==b)
b. !((a<=3) || (a>=15)) || (a!=b)
c. ((a>3) || (a<15)) && (a!=b)
d. !(a<3 || a>15) && (a!=b)
33. Care este valoarea expresiei C: 9/2*2-5
a. 3
b. 4
c. -3
d. -3.75
34. Variabilele x si y sunt de tip intreg, x memorand valoarea
8,
iar y valoarea 6. Care dintre expresiile C de mai jos are
valoarea 0?
a. 3*x-4*y==0
b. (x+y)/2 > x%y+1
c. !(x/2+2==y)
d. x-y+3!=0
35. Care dintre urmatoarele expresii C are valoarea 1 daca si
numai
daca variabilele x si y memoreaza doua numere naturale pare
consecutive?
a. (x-y==2) && (y-x==2)
b. (x==2) && (y==4)
c. x-y==2
d. ((x-y==2) || (y-x==2)) && (x%2==0)
36. Care dintre expresiile C de mai jos este echivalenta cu
expresia !((a<5)&&(b>7)) ?
a. (a>=5)&&(b<=7)
b. !(a<5) || !(b>7)
c. !(a<5) && !(b>7)
d. !(a>=5) && !(b<=7)
37. Pentru care dintre perechile de valori de mai jos expresia
C:
(a%100==b%100) && (a>99) || (b>99)
are valoarea 1?
a. a=1003 şi b=3
b. a=35 şi b=35
c. a=1100 şi b=10
d. a=1234 şi b=12
38. Variabilele x si y sunt de tip intreg, x memorand valoarea
4,
iar y valoarea 2. Care dintre expresiile C de mai jos are
valoarea 0?
a. x-y!=0
b. x+y>x%y+1
c. x-2*y==0
d. !(x==2*y)
39. Care dintre următoarele instrucţiuni C determina inserarea
cifrei 7 în fata ultimei cifre a unui numar natural, cu mai mult
de
2 cifre, memorat in variabila x?
a. x=(x/10*10+7)*10+x%10;
b. x=x/10+7+x%10;
c. x=(x%10*10+7)*10+x/10;
d. x=(x/10+7)*10+x%10;
40. Se considera secventa C:
y=0;
do{
x=x/10;
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?
a. 300
b. 5000
c. 120
d. 0
41. Care dintre urmatoarele instructiuni C determina eliminarea
cifrei din mijloc a unui numar natural, cu exact 5 cifre,
memorat in
variabila x?
a. x=x/1000*100+x%100;
b. x=x%1000*100+x/100;
c. x=x/100*100+x%100;
d. x=x/1000+x%100;
42. Fie secventa C:
p=1; n=279;
while (n>=100)
{ p=p*10;
n=n-100;
}
Cate atribuiri se executa, in total, in secventa alaturata, daca
n
si p sunt variabile de tip intreg?
a. 4
b. 6
c. 2
d. 8
43. Care este valoarea tiparita de secventa de program C:
x=30;
y=5;
z=(x+y)/6.0;
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?
a. 5
b. 5.833333
c. 5.83
d. 583
44. 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++)
v1=v1+1;
for (k=i;k<=3;k++)
v2=v2+1;
}
in care toate variabilele sunt intregi?
a. v1>v2
b. v1<v2
c. v1==v2
d. v1+v2==9
45. Care este valoarea expresiei C: (a/b%c<=b)||!(b==a) daca
variabilele intregi a, b, c au valorile a=20, b=3, c=5?
a. 0
b. 1
c. 2
d. true
46. Variabilele a, b, c si d memoreaza valori reale astfel incat
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?
a. (d<a) || (b<c)
b. !(c<a) && !(b<d)
c. (d>a) || (b>c)
d. (a>=c) && (b<=d)
47. Care din urmatoarele afirmatii despre operatorii din C este
falsa?
a. > este operator relaţional
b. % este operator aritmetic
c. && este operator logic
d. <= este operator logic
48. 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
o singură cifra?
a. 0
b. 1.14
c. -6
d. 1
49. In expresia C: x%2+(x+1)%2 variabila x este de tip intreg.
Aceasta expresie:
a. are valoarea 1 pentru orice numar natural x.
b. are valoarea 1 daca si numai daca x este un numar par.
c. are valoarea 1 daca si numai daca x este un numar impar.
d. are o valoare strict mai mare decat 1 pentru orice numar
natural
x.
50. Cate valori distincte, numere naturale, poate primi
variabila x
pentru ca valoarea expresiei x/2/2 scrisa in C sa fie egala cu
1?
a. 1
b. 4
c. 2
d. 0
51. Care dintre urmatoarele expresii C are valoarea 1 daca si
numai
daca numarul natural nenul memorat in variabila x, de tip int,
este
divizibil cu 100?
a. x%10+x/10%10==0
b. x/100==0
c. x%10+x/10==0
d. x%10+x%10/10==0
52. Care dintre urmatoarele expresii C are valoarea 1 daca si
numai
daca numarul natural memorat de variabila x de tip int are exact
doua cifre?
a. x/100==0
b. x/100==0 && x%10==0
c. x/10!=0
d. x/100==0 && x/10!=0
53. Se considera variabila a care memoreaza un numar cu exact 6
cifre. Care dintre expresiile C de mai jos are ca valoare
numarul
format din cele doua cifre din mijloc ale valorii memorate in a?
a. (a%100)/100
b. a/100%100
c. a/1000+a%1000
d. a/100%10+a/1000%10
54. Stabiliti care dintre urmatoarele expresii C are valoarea 1
daca
si numai daca numarul intreg memorat in variabila x nu apartine
intervalului (-a,-b)u[c,d], unde a, b, c si d sunt numere reale
pozitive.
a. (x<=-a) || ((x<c)|| (x>=-b)) || (x>d)
b. (x<=-a) || ((x<=c) && (x>=-b)) || (x>=d)
c. (x<-a) || ((x<c-1) && (x>-b)) || (x>d)
d. (x<=-a) || ((x<c) && (x>=-b)) || (x>d)
55. Variabila a memoreaza un numar natural care are exact 3
cifre.
Care dintre expresiile C de mai jos are ca valoare numarul
format
din prima si ultima cifra a numarului memorat de a?
a. a/10+a%100
b. a/100+a%10
c. a/100*10+a%10
d. a-a/10%10
56. In secventa alaturata de program:
for (i=1;i<=3;i++)
for (j=10;j>=i+1;j--)
printf(”%d”,j);
instructiunea de afisare se va executa de un numar de ori egal
cu:
a. 24
b. 21
c. 3
d. 30
58. Stabiliti care dintre urmatoarele expresii C are valoarea 1
daca
si numai daca numarul intreg memorat in variabila x nu apartine
intervalului (-a,-b], unde a si b sunt valori reale pozitive
astfel
incit b < a.
a. (x<-a) || (x>-b)
b. (x<=-a) || (x>=-b)
c. (x<=-a) || (x>-b)
d. (x<=-a) && (x>b)
59. In secventa de instructiuni:
y=x;
while(x<=3)
{
printf("*");
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 (*)?
a. 0
b. 2
c. 1
d. 4
60. Care este valoarea pe care trebuie să o aiba initial
variabila
intreaga x pentru ca, in urma executarii secventei
while (x!=3){
x=x-1;
printf(”HH”);
}
sa se afiseze sirul HHHHHH?
a. 0
b. 4
c. 6
d. 5
61. Care dintre expresiile urmatoare, scrise in limbajul C, are
valoarea 1 daca si numai daca valorile variabilelor intregi x si
y
sunt numere pare?
a. x-y==0
b. (x+y)%2==0
c. (x%2==0) || (y%2==0)
d. (x%2==0) && (y%2==0)
62. Fie secventa de instructiuni C:
x=4; y=6;
while (y==6) y=y+1;
if (x==y) x=x+1;
Care este numărul total de atribuiri efectuate la executarea
secvenţei de instrucţiuni?
a. 4
b. 3
c. 2
d. 5
63. Care este valoarea expresiei C: 50-(100–300/2/(2+3))?
a. -30
b. 70
c. -20
d. 60
64. Stiind ca variabilele x si y sunt de tip intreg, care este
instrucţiunea prin care variabilei x i se atribuie ultima cifra
a
numarului natural memorat in variabila y?
a. y=x/10;
b. y=x%10;
c. x=y%10;
d. x=x/10;
65. Stiind ca variabilele x si y sunt de tip intreg, care este
instructiunea prin care variabilei x i se atribuie cifra zecilor
numarului natural cu cel putin doua cifre memorat de variabila
y?
a. x=y/10%10;
b. x=y%10/10;
c. x=y%10;
d. x=x/100;
66. Care este instructiunea prin care variabilei x i se atribuie
valoarea sumei cifrelor numarului natural format din exact trei
cifre, memorat de variabila y?
a. x=y/100+y/10%10+y%10;
b. x=y+y/10+y/100;
c. x=y%10+y%10/10+y/100;
d. x=y%10+y%100+y%1000;
67. Care este instructiunea prin care variabilei x i se atribuie
valoarea cifrei sutelor numarului natural cu cel putin 4 cifre
memorat in variabila y?
a. x=y/100%10;
b. x=y/10/10;
c. x=y%100;
d. x=y%10/10;
68. Care este instructiunea prin care variabilei x i se atribuie
numarul obtinut prin inversarea ordinii cifrelor numarului
natural
format din exact 2 cifre, memorat in variabila y?
a. x=y%10*10+y/10;
b. x=y/10*10+y%10;
c. x=y%10+y/10*10;
d. x=y%10+y/10;
69. Variabila intreaga n memoreaza un numar natural impar. Care
dintre urmatoarele expresii C are valoarea 1?
a. !(n%2)
b. n%2==0
c. n%2!=0
d. !((n+1)%2==0)
70. Care dintre urmatoarele variabile nu isi modifica valoarea
in
urma executarii secventei de instructiuni:
c=2*a-b;
a=a-b; a=c-a;
b=2*a-c;
oricare ar fi valorile lor initiale? (a,b,c sunt variabile de
tip
int).
a. niciuna
b. doar c
c. doar a si c
d. doar a si b
71. Variabilele a, b si c, de tip int, pot fi initializate cu
oricare numere naturale impare distincte. Stiind ca c este
divizor
al lui a, iar b nu este multiplu al lui c, care dintre
urmatoarele
expresii scrise in C are valoare 1?
a. !((a % c!=0) || !(b % c!=0))
b. (a % c!=0) && !(b % c!=0)
c. (a % c!=0) || !(b % c!=0)
d. !(c % a!=0) && (c % b!=0)
72. Variabila a, de tip int, memoreaza un numar natural impar,
iar
variabila b, de tip int, memoreaza un numar natural par. Care
dintre
urmatoarele expresii C are valoarea 1?
a. a%2 && b%2;
b. !(!(a%2) || b%2);
c. (a+b+1)%2;
d. !(a%2) || b%2;
73. Variabilele a si b sunt de tip int, iar variabilele c si d
sunt
de tip double. Care dintre urmatoarele instructiuni de atribuire
nu
este corecta din punct de vedere sintactic?
a. c=d+2*c;
b. c=2-d%2*a;
c. c=sqrt(b*b);
d. b=(d<=c);
74. 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
75. 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
76. 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
77. 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);
78. 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
79. Variabilele a si i sunt declarate astfel:
int a[100], i;
Care dintre urmatoarele instructiuni este corecta din punct de
vedere sintactic?
a. a = i; c. i[1] = a;
b. i = a; d. i[a] = 1;
80. 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
81. 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?
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;}
82. 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?
a. n+1 ori c. 0 ori
b. n ori d. n-1 ori
83. 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
84. Daca n este un numar natural (intreg pozitiv), ce realizeaza
urmatoarea secventa?
{p=1;
while(n) p *= (n--);
}
a. Calculeaza in p valoarea n*p c. Calculeaza in variabila p
valoarea lui n!
b. Calculeaza in p valoarea np d. Calculeaza in variabila p
valoarea lui pn.
85. 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);
86. 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
87. 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]
88. 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);
89. 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);
}
a. 13 45 23 c. 13 32 23
b. 13 32 56 d. 13 45 32
90. 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);
}
a. 1 2 3 c. 1 67 567
b. 1 2 67 d. 2 3 4
91. 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);
c. f = fopen(“C.TXT”, “r”); fscanf(f, “%c”, &x); fclose(f);
d. f = fopen(“C.TXT”, “r”); fscanf( “%c”, &x, f); fclose(f);
92. 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”);
93. 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);
}
a. 1 2 3 c. 1 9 8
b. 1 2 9 d. 1 9 3
94. 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
13 Azi 14
Maine
15
c. Ieri 13
Azi 14
Maine 15
b. Ieri 13
Azi 14 Maine 15
d. Ieri
13 Azi 14 Maine
15
95. 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);
}
a. I S - c. S - X
b. a S - d. I E S
96. 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).
a. 1 c. -4
b. -3 d. 4
97. 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?
a. 12 60 5 7 c. 60 12 60 7
b. 60 12 5 7 d. 60 12 60 12
98. 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).
a. 3 c. 2
b. 1 d. 4
99. Se considera definitia:
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)?
a. 50 c. 40
b. 45 d. 55
100. 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];
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
101. 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?
a. 16 c. 38
b. 36 d. 28
102. 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?
a. aabbdeeff c. aabbddeff
b. nici una dintre variantele
propuse
d. egalitate
103. 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)?
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};
104. Variabila d, declarata prin
struct dreptunghi
{
float a,b,p;
}d;
memoreaza in campurile a si b latimea si, respectiv, lungimea
unui
dreptunghi. Care dintre urmatoarele instructiuni atribuie
campului p
al variabilei d valoarea perimetrului dreptunghiului respectiv?
a. p.d=2*(d.a+d.b);
b. p.d=2*a.d+2*b.d;
c. d.p=2*d.a+2*d.b;
d. d.p==2*d.a+2*d.b;
105. Variabila d, declarata prin
struct dreptunghi
{
float a,b,aria;
}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?
a. d.aria==d.a*d.b;
b. aria.d=a.d*b.d;
c. aria.d=d.a*d.b;
d. d.aria=d.a*d.b;
106. In declararea
struct p{
int a,b;} x,y;
int 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?
a. t=x.b; x.b=y.b; y.b=t;
b. t=b.x; b.x=b.y; b.y=t;
c. x.b=y.b;
d. b.x=b.y;
107. 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:
p=0;
for (i=1;i<m;i++)
if (a[n-1][p]<a[n-1][i])
p=i;
a. cel mai mare element de pe linia n-1
b. cel mai mic element de pe linia n-1
c. cel mai mare element de pe coloana n-1
d. cel mai mic element de pe coloana n-1
108. Considerand declararea
struct {
int a, b;
} x;
care dintre urmatoarele secvente de instructiuni realizeaza in
mod
corect citirea de la tastatura a valorilor celor doua campuri
ale
variabilei x?
a. scanf(”%d”, &x);
b. scanf(”%d %d”, &a.x,&b.x);
c. scanf(”%d %d”, &x.a,&x.b);
d. scanf(”%d %d”, &a->x,&b->x);
109. Considerand declararea
struct {
int a, b;
} x;
care dintre urmatoarele secvente de instructiuni afiseaza
valorile
memorate in cele doua campuri ale variabilei x, separate printr-
un
spatiu?
a. printf(”%d %d”, x.a,x.b);
b. printf(”%d %d”, a.x,b.x);
c. printf(”%d”, x);
d. printf(”%d %d”, a->x,b->x);
110. Pentru a memora simultan numele şi media la ‚Programare
Procedurala’ a unui student in variabila e, se poate utiliza
declararea:
a. struct e{
string nume; float media;}
b. char e.nume[40];
float e.media;
c. float e;
d. struct {char a[40]; float b;} e;
111. Care dintre urmatoarele variante reprezinta o declarare
corecta
pentru o variabila x care memoreaza simultan varsta in ani
impliniti
si media la licenta a unui absolvent?
a. struct {float media;
int varsta;} x;
b. struct x {float media;
int varsta;};
c. float x.media;
int x.varsta;
d. struct absolvent {float x.media;
int x.varsta};
112. Care dintre urmatoarele variante reprezinta o declarare
corecta
pentru o variabila x care memoreaza simultan codul de
identificare
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?
a. struct x { int cod;
float media;};
b. struct { int cod;
float media;} x;
c. int x.cod ;
float x.media;
d. struct candidat { int x.cod;
float x.media;};
113. Care dintre urmatoarele variante reprezinta o declarare
corecta
pentru o variabila x care memoreaza simultan coordonatele reale
(abscisa si ordonata) ale unui punct in planul xOy?
a. struct punct {float ox,oy;} x;
b. char x[2];
c. struct x {float ox,oy;};
d. float x;
114. Care dintre urmatoarele variante reprezinta o declarare
corecta
pentru o variabila x care memoreaza simultan partea reala si
partea
imaginara a unui numar complex?
a. struct x {float im,re;};
b. char x[2];
c. struct complex{
float im, re;} x;
d. float x;
115. Care dintre urmatoarele variante reprezinta o declarare
corecta
pentru o variabila x care memoreaza simultan numaratorul si
numitorul unei fractii ireductibile:
a. struct fractie{int n1,n2;} x;
b. char x[2];
c. struct x{int n1,n2;};
d. float x;
116. În secvenţa:
p=1;
for(i=1;i<=4;i++)
....
variabila a memoreaza un tablou bidimensional cu 4 linii si 4
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.
a. p=p*a[5-i][i]*a[i][5-i];
b. p=p*a[i][i]*a[i][4-i];
c. p=p*a[i][i]*a[5-i][5-i];
d. p=p*a[5-i][5-i]*a[i][5-i];
117. Pentru declararea
struct student
{char nume[20];
int nota;} e1,e2;
precizati care dintre instructiunile de atribuire este gresita:
a. e1=e2+1;
b. e1.nume[2]=’x’;
c. e1=e2;
d. e1.nota=e2.nota+1;
118. Care din urmatoarele expresii are valoarea 1 daca si numai
daca
sirul de caractere s, de lungime 10, este obtinut prin
concatenarea
a doua siruri identice?
a. strcmp(s,s+5)==0
b. s==strstr(s,s+5)
c. s==s+5
d. strcmp(s,strcat(s,s+5))==0
119. Functia predefinita care returneaza modulul unui numar
intreg
este:
a. sgn
b. fabs
c. mod
d. abs
120. Care este valoarea expresiei strlen(s) pentru variabila s
de
tip sir de caractere, declarata si initializata astfel: char
s[15]=”Proba_1”;
a. 7
b. 15
c. 6
d. 5
121. Pentru declararea unei variabile care memoreaza un cuvant
avand
maximum 25 caractere, putem utiliza sintaxa:
a. char c;
b. char c[];
c. char c[26];
d. char[26] c;
122. 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]);
s-a afisat succesiunea de caractere EXAMEN, care este sirul de
caractere memorat de variabila s?
a. EAENMX
b. ENXAME
c. NEEXMA
d. NEMAXE
123. Fie declararile:
struct student{
char nume[30];
float nota;};
student x;
Dacă variabila x retine informatii despre un student, precizati
care
este varianta corecta ce afisează prima litera din numele
acestuia?
a. printf(“%c“,x);
b. printf(“%c“,x.nume[0]);
c. printf(“%c“,x.nume);
d. printf(“%c“,nume);
124. Consideram ca variabila s memoreaza sirul de caractere
examen.
Care va fi valoarea lui s dupa executarea instructiunilor?
s[0]= ‘E’;s[strlen(s)-1]= ‘N’;s[strlen(s)/2-1]= ‘A’;s[strlen(s)/
2]=
‘M’.
a. EXAMEN
b. exAMen
c. ExAMeN
d. ExameN
125. Consideram ca variabila s memoreaza sirul de caractere
mama.
Care va fi valoarea lui s dupa executarea instructiunilor de mai
jos?
s[0]=′M′; s[strlen(s)-3]= ′A′;
a. MAma
b. MamA
c. MaAa
d. MAMA
126. In secventa
for ( i=k+1; i<=n; i++)
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:
a. eliminarea liniei k din matrice
b. adaugarea liniei k in matrice
c. eliminarea coloanei k din matrice
d. adaugarea coloanei k in matrice
127. In secventa
if(!(strcmp(s1,s2) || strcmp(s1,s3)))
val=1;
else
val=2;
variabilele s1, s2 si s3 retin siruri de caractere. Dupa
executarea
acesteia, variabila intreaga val primeste valoarea 1 daca
a. s1, s2, s3 retin siruri identice de caractere
b. s1, s2, s3 retin siruri de caractere ordonate lexicografic
c. s1, s2, s3 retin siruri de caractere de lungimi diferite
d. s1 este obtinut prin concatenarea sirurilor retinute in s2 si
s3
128. Fiind dat un tablou bidimensional cu 20 linii şi 20
coloane,
cate elemente se gasesc strict deasupra diagonalei secundare a
tabloului?
a. 180
b. 200
c. 190
d. 210
129. Elementele tabloului bidimensional
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
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ă?
a. 16
b. 15
c. 25
d. 22
130. Consideram declararea
struct student{
char nume[10],prenume[20];
float medie;
}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 in
variabila
p?
a. p.nume[0]
b. p.nume[1]
c. p.nume
d. nume[1]
131. Consideram declararea
struct student{
char nume[10], prenume[20];
float nota1,nota2;
} x;
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?
a. m=(x.nota1+x.nota2)/2;
b. m=(nota1+nota2)/2;
c. x.m=(x.nota1+x.nota2)/2;
d. m=(x,nota1+x,nota2)/2;
132. 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
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?
a. 7
b. 3
c. 9
d. 8
133. Consideram declararea:
struct punct{
int x,y;
} p;
Care dintre urmatoarele instructiuni este corecta din punct de
vedere sintactic?
a. p->y=p->y+1;
b. p=9;
c. p.x=7;
d. p=p+1;
134. Variabila x este utilizata pentru a memora numele,
prenumele si
salariul unei persoane. Numele si prenumele pot avea cel mult 20
de
litere fiecare, iar salariul este un numar natural nenul mai mic
decat 30000 . Care dintre urmatoarele declarari este corecta?
a. float x[3][21]; b. int x[3][21];
c. struct persoana{
char nume[21],prenume[21];
int sal;} x;
d. struct persoana[
char nume[21],prenume[21];
int sal;] x;
135. Variabila t este utilizata pentru a memora pretul (val) si
numele autorului unei carti. Pretul cartii este un numar natural
de
cel mult 3 cifre, iar numele autorului nu poate avea mai mult de
20
de litere. Care dintre urmatoarele declarari este corecta?
a. struct carte{ int val;char nume;} t;
b. struct carte{int val,nume;} t;
c. struct carte{ int val;char nume[21];} t;
d. struct carte{ int val[21][21];char nume;} t;
136. Variabila t este utilizata pentru a memora numarul de
exemplare
disponibile intr-o biblioteca si titlul unei carti. Numarul de
exemplare este un numar natural de cel mult 2 cifre, iar titlul
nu
poate avea mai mult de 20 de litere. Care dintre urmatoarele
declarari este corecta?
a. struct carte {
float nr,titlu;
} t;
b. struct carte{
int nr;
char titlu[21];
} t;
c. struct carte{
char nr; int titlu;
} t;
d. struct carte{
long nr,titlu;
} t;
137. Variabila s memoreaza un sir de caractere. Care dintre
urmatoarele expresii C este nenula daca si numai daca lungimea
sirului este strict mai mică decat 10?
a. strlen(s)<10
b. strlen(s,10)<0
c. leng(s)<10
d. s-’0’<10
138. Variabila s memoreaza un sir de caractere. Care dintre
urmatoarele expresii C este nenula daca si numai daca lungimea
sirului este un numar par?
a. s-2==0
b. strlen(s,2)=0
c. leng(s)%2
d. strlen(s)%2==0
139. Care vor fi valorile afisate dupa executarea secventei
char s1[20]=”variabila”, s2[20]=”varianta”;
if(strcmp(s1,s2)<0 && strlen(s1)<strlen(s2))
printf(”%s %s”,s1,s2);
else
printf(”%s %s”,s2,s1);
daca variabilele s1 si s2 sunt de tip sir de caractere?
a. variabila varianta
b. Variantavariabila
c. varianta variabila
d. variabila variabila
140. Considerand declararile
struct cerc
{float raza;
int x,y;};
cerc c;
care dintre urmatoarele referiri este corecta din punct de
vedere
sintactic ?
a. cerc.x
b. c.x
c. c.cerc.x
d. raza.x
141. 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];
for(i=n;i>=1;i--)
if (x<a[i][n-i+1])
x=a[i][n-i+1];
a. cel mai mare număr de pe diagonalele tabloului a
b. cel mai mare număr de pe diagonala secundară a tabloului a
c. cel mai mare număr de pe diagonala principală a tabloului a
d. cel mai mare număr din tabloul a
142. Considerand declararile
struct punct{float x,y;};
struct fig
{ char tip;
punct a,b,c;}
fig e;
care dintre urmatoarele referiri este corecta din punct de
vedere
sintactic ?
a. e.fig.tip
b. e.a
c. e.punct.x
d. e.a.x
143. 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:
x=0;
for(i=1;i<=n;i++)
x=x+a[i][i];
a. Suma elementelor de pe diagonala principală a tabloului a
b. Suma elementelor de pe diagonala secundară a tabloului a
c. Suma elementelor tabloului a
d. Cel mai mare element de pe diagonala principală a tabloului a
144. Daca variabila s de tip sir de caractere memoreaza sirul
INFORMATICA atunci strlen(s) are valoarea?
a. 10
b. 12
c. TRUE
d. 11
145. Cum se poate accesa prima litera a denumirii unui produs
ale
carui caracteristici sunt memorate in variabila p, declarata
prin:
struct produs{
char denumire[15];
int pret;}p;
a. produs.denumire[0]
b. denumire.p[0]
c. p.denumire[0]
d. P->denumire[0]
146. Cum se poate accesa prima litera a numelui unei persoane
ale
carei date de identificare sunt memorate in variabila p,
declarata
prin:
struct persoana{
char nume[20],prenume[20];
int varsta;} p;
a. p.nume[0]
b. persoana.nume[0]
c. p->nume[0]
d. nume.p[0]
147. Cum se poate accesa prima litera a denumirii unui material
ale
carui caracteristici sunt memorate în variabila m, declarată
prin:
struct material{
char denumire[20];
int pret;} m;
a. denumire.m[0]
b. m->denumire[0]
c. material.denumire[0]
d. m.denumire[0]
148. Cum se poate accesa prima literă a numelui unui student ale
carui date de identificare sunt memorate in variabila e,
declarata
prin:
struct student{
char nume[20],prenume[20];
int varsta;}e;
a. e->nume[0]
b. e.nume[0]
c. student.nume[0]
d. nume.e[0]
149. Stiind ca fiecare dintre variabilele var1, var2 memoreaza
numele si nota unui student in forma data de declararea:
struct student
{ char nume[30];
float nota;
}var1,var2;
Indicati care dintre urmatoarele expresii atribuie variabilei
reale
m media aritmetica a notelor celor doi studenti.
a. m=(var1.nota+var2.nota)/2;
b. m=var1.nota+var2.nota/2;
c. m=(var1+var2).nota/2;
d. m=nota(var1+var2)/2;
150. Variabilele x si s memoreaza siruri cu cel mult 20 de
caractere:
x memoreaza sirul primavara, iar variabila s memoraza sirul
anotimp.
Ce se va memora in variabila s în urma executării instrucţiunii:
strncat(s, x, 5);
a. anotimpprima
b. anotimpprimavara
c. primavara
d. prima
151. Se considera declararile:
struct A {
int x;
char y;
float z;};
struct B {
struct A x;
long y;};
B x, y;.
Care este tipul expresiei x.x.y
a. float
b. int
c. long
d. char
152. 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);
else
printf(“imposibil”);
daca variabila x memoreaza cuvantul examen, iar variabila y
memoreaza cuvantul banal?
a. imposibil
b. examen
c. banal
d. examenimposibil
153. Ce se va afisa in urma executarii secventei de program:
for(i = 0; i < strlen(x); i++)
if(x[i] >= ‘A’ && x[i] <=’N’)
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?
a. exAmeNe
b. ExAmene
c. EXAMENE
d. examene
154. 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;
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
x=x+t[i][j];
determina memorarea in variabila x a sumei elementelor situate:
a. deasupra diagonalei principale, inclusiv diagonala principala
b. strict deasupra diagonalei principale
c. strict sub diagonala principala
d. strict deasupra diagonalei secundare
155. 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++)
for(j=0;j<i;j++)
z=z+t[i][j];
determina memorarea in variabila intreaga z a sumei tuturor
elementelor situate:
a. strict sub diagonala principala
b. deasupra diagonalei principale, inclusiv diagonala principala
c. strict deasupra diagonalei principale
d. strict deasupra diagonalei secundare
156. 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++)
for(j=0;j<8-i;j++)
z=z+t[i][j];
determina memorarea in variabila intreaga z a sumei tuturor
elementelor situate:
a. strict sub diagonala secundara
b. deasupra diagonalei principale, inclusiv diagonala principala
c. deasupra diagonalei secundare, inclusiv diagonala secundara
d. strict deasupra diagonalei secundare
157. 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++)
for(j=7-i;j<8;j++)
z=z+t[i][j];
determina memorarea in variabila intreaga z a sumei tuturor
elementelor situate:
a. sub diagonala secundara, inclusiv diagonala secundara
b. deasupra diagonalei principale, inclusiv diagonala principala
c. strict sub diagonala principala
d. strict deasupra diagonalei secundare
158. 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;
for(i=0;i<8;i++)
for(j=8-i;j<8;j++)
z=z+t[i][j];
determina memorarea in variabila intreaga z a sumei tuturor
elementelor situate:
a. strict deasupra diagonalei principale
b. deasupra diagonalei principale, inclusiv diagonala principala
c. deasupra diagonalei secundare, inclusiv diagonala secundara
d. strict sub diagonala secundara
159. 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
caractere, este palindrom?
a. s[0]==s[1]
b. s[1]==s[2]
c. s[0]==s[2]
d. s[1]==s[3]
160. Ce valoare are variabila s de tip sir de caractere dupa
executarea instructiunilor de mai jos?
strncpy(s,strstr(″examen″,″am″),4); s[4]='\0'; (4p.)
a. amen
b. exam
c. menn
d. men
161. Ce valoare are variabila s de tip sir de caractere dupa
executarea instructiunilor de mai jos?
strncpy(s,strstr("Informatica","form"),strlen("EXA09")); s[5]='\
0';
a. form
b. forma
c. InfoEXA
d. Infor
162. Ce valoare are variabila s de tip sir de caractere dupa
executarea instructiunii de mai jos?
s=strstr(strnset("Olimpiada",'#',strlen("2009")),"ad");
a. Oli2009
b. ada
c. Olimp2009
d. ####2009
163. Ce valoare are variabila s de tip sir de caractere dupa
executarea instructiunilor de mai jos?
s=strncpy(s,strstr("informatica","form"),strlen("LIC009"));
s[6]='\0';
a. format
b. informat
c. inform
d. informLIC
164. Ce valoare are variabila s de tip sir de caractere dupa
executarea instructiunii de mai jos?
s=strcat(strncpy(s,"informatica",strlen("2008")),"LIC");
a. info
b. infoLIC
c. LICinfo
d. InformaticaLIC
165. 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
sirul de caractere s contine caracterele memorate de variabilele
c1
si c2?
a. strstr(s,c1+c2)!=0
b. strchr(s,c1)!=0 && strchr(s,c2)!=0
c. strchr(strchr(s,c1),c2)!=0
d. strchr(s,c1)*strchr(s,c2)!=0
166. 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
expresii are valoarea 1 daca si numai daca punctul P este situat
pe
axa Ox ?
a. P.x==0
b. P.y==0
c. P.x+P.y==0
d. P.x==P.y
167. In secventa
for(i=0; i<8; i++)
for(j=0; j<8; j++)
a[i][j] = (i+j)%8;
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?
a. 28
b. 84
c. 36
d. 21
168. In secventa
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 secundara din matricea a,
in
urma executarii acestei secvente, daca n=8?
a. 8
b. 64
c. 24
d. 56
169. In secventa
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?
a. 24
b. 64
c. 56
d. 8
170. Ce se va afisa in urma executarii secventei de instructiuni
char a[10]="Examen";
n=strlen(a);
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?
a. En
b. Een
c. Exam
d. Exn
171. Consideram variabila x care memoreaza sirul de caractere
ABAC.
Care dintre urmatoarele instructiuni conduc la afisarea
caracterului
B?
a. printf("%c",x[strlen(x)-3]);
b. printf("%c",x[strlen(x)-1]);
c. printf("%c",x[2]);
d. printf("%c",x[strlen(x)]);
172. Fie x un număr natural cu exact 4 cifre. Care dintre
urmatoarele instructiuni C/C++ determina, in urma executarii,
eliminarea cifrei sutelor numarului memorat de variabila x?
a. x=x%10+x/10+x/1000;
b. x=x%1000*100+x/100;
c. x=x%1000+x%100+x%10;
d. x=x/1000*100+x%100;
173. Fie x o variabila care memoreaza un numar natural. Care
dintre
urmatoarele expresii C are valoarea 0 daca si numai daca numarul
memorat de x nu este divizibil cu 3?
a. x%3
b. (1-x%3)+(2-x%3)
c. (1-x%3)*(2-x%3)
d. 3-x%3
174. Care dintre urmatoarele expresii C este echivalenta
cu !((x>=5)&&(x<10)) ?
a. (x<5) || (x>=10)
b. (x<5) || (x>10)
c. (!(x>=5)) && (!(x>10))
d. (x>=5) || (x<10)
175. Variabilele intregi x si y memoreaza cate un numar natural
nenul. Cel mai mic multiplu comun al valorilor lor este egal cu
numarul memorat in y daca si numai daca urmatoarea
expresie C are o valoare nenula:
a. y%x
b. y%x==0
c. x%y
d. x%y==0
176. Variabilele intregi x si y memoreaza numere naturale
nenule.
Care dintre urmatoarele expresii C este nenula daca si numai
daca
numarul obtinut prin insumarea valorilor variabilelor x si y are
ultima cifra 0?
a. x%10+y%10==0
b. y%10==x%10
c. x+y%10==0
d. (x%10+y%10)%10==0
177. Stiind ca variabila intreaga n memoreaza un numar natural
cu
cel putin 3 cifre, care dintre urmatoarele expresii C are ca
valoare
numarul obtinut dupa eliminarea ultimelor 2 cifre ale lui n?
a. n%10/10
b. n%10
c. n/100
d. n/10%10
178. Fiecare dintre variabilele intregi x, y si t memoreaza cate
un
numar natural de cel mult 4 cifre. Stiind ca x<y, care dintre
urmatoarele expresii C este egala cu 1 daca si numai daca
numarul
memorat de variabila t apartine intervalului inchis [x,y]?
a. (t<x) && (t>y)
b. (t>=x) && (t<=y)
c. (t>=x) || (t<=y)
d. (t<x) || (t>y)
179. Fiecare dintre variabilele intregi x, y si t memoreaza cate
un
numar natural de cel mult 4 cifre. Stiind ca x<y, care dintre
urmatoarele expresii C este egala cu 1 daca si numai daca
numarul
memorat de variabila t nu apartine intervalului deschis (x,y)?
a. (t<=x) || (t>=y)
b. (t>x) || (t<y)
c. (t<=x) && (t>=y)
d. (t>x) && (t<y)
180. 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
valoarea memorata de x
apartine intervalului [10,100] si valoarea memorata de y
apartine
intervalului [5,30]?
a. (x<=100 && x>10) && (y>=5 || y<30)
b. (x<=100 && x>=10) && (y<5 && y<=30)
c. (x<=100 && x>=10)|| (y>=5 && y<=30)
d. !((x>100 || x<10) || (y<5 || y>30))
181. Toate variabilele din secventa de instructiuni C
if (a>b)
{ aux=a;a=b; b=aux;}
for(i=a;i<=b;i++) printf(“%d”,i);
sunt intregi. Care dintre urmatoarele afirmatii este adevarata?
a. Secventa contine o instructiune repetitiva inclusa intr-o
instructiune alternativa.
b. Secventa contine o instructiune alternativa urmata de o
instructiune repetitiva.
c. Secventa contine o instructiune alternativa, urmata de o
instructiune repetitiva, urmata de o instructiune de afisare.
d. Secventa contine o instructiune alternativa inclusa intr-o
instructiune repetitiva.
182. Consideram variabilele intregi i si j. Care dintre
urmatoarele
secvente de instructiuni C determina afisarea pe ecran , in urma
executarii, a succesiunii de cifre 55?
a.
i=5; j=6;
while(j>4){
printf(”%d”,i);
j--;
}
b.
i=5; j=6;
while(j>4)
printf(”%d”,j);
j--;
c.
j=5;
for(i=5;i<=5;i++)
printf(”%d”,i);
d.
j=5;
for(i=1;i<2;i++)
printf(”%d”,j);
183. Variabila intreaga a memoreaza un numar natural format din
exact trei cifre, toate cifrele fiind nenule si distincte. Care
dintre urmatoarele instructiuni C atribuie variabilei e suma
cifrelor lui a?
a. e=a%10/10+a/100%10+a%10;
b. e=a/10+a/100+a/1000;
c. e=a*10/1000+a/10%10+a%10;
d. e=a*10/1000+a%100%10+a%10;
184. 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 apartine intervalului inchis
determinat de valorile variabilelor a si b ?
a. (z>a||(z>b)
b. (z<a)||(z>b)
c. z<a && z>b
d. z>=a && z<=b
185. Variabilele x, y si z sunt intregi, x memoreaza valoarea 7,
y
memoreaza valoarea 20, iar z memoreaza valoarea 5. Care este
rezultatul evaluarii expresiei aritmetice C: x+y+x*z/y ?
a. 28.75
b. 28
c. 29
d. 27
186. Variabilele x, y, z si w sunt intregi, x memoreaza valoarea
2,
y memoreaza valoarea 3, z memoreaza valoarea 5, iar w memoreaza
valoarea 7. Care dintre urmatoarele expresii, scrise în limbajul
C,
are valoarea 1?
a. (y>z) || (x>3)
b. (x==z) && ((y==3)||(w==7))
c. (z<=w) && (x>0) || (y>=x)
d. (y>=3) && (w<7)
187. 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 variabilei z este situata in intervalul inchis
determinat de valorile memorate in variabilele x si y?
a. (z>=x) && (z<=y)
b. (z<=x) && (z<=y)
c. (y<x) || (z<=x)
d. (z<x) || (z>y)
188. In secventa de instructiuni C:
x=20; y=5;
x=x+y;
y=x-2*y;
x=y+x;
variabilele x si y sunt intregi. Ce valoare va retine variabila
x
dupa executarea acesteia?
a. -10
b. 25
c. 15
d. 40
189. Care dintre expresiile C de mai jos, are valoarea 1 daca
valoarea variabilei intregi x este un numar intreg par si strict
pozitiv?
a. !((x%2!=0)||(x<=0))
b. (x%2!=0)||(x<0)
c. !((x%2==0)||(x>0))
d. ((x+1)%2==0)&&(x>=2)
190. Variabila intreaga x retine un numar natural cu cel putin
doua
cifre. Care dintre urmatoarele
expresii C are valoarea egala cu cifra zecilor numarului natural
memorat in variabila x?
a. x % 10 / 10
b. x – (x / 10) * 10
c. x / 10 % 10
d. x – (x / 10) % 10
191. Care dintre urmatoarele expresii C are valoarea 1 daca
numarul
natural memorat de variabila n este strict mai mare decat 100 si
divizibil cu 12?
a. (n%4 == 1) || (n%3 == 1)
b. (n%100/4 == 0) && !(n%3)
c. (n%100%4 == 0) && n%3
d. (n%100%4 == 0) && (n%3 == 0)
192. Variabila reala x memoreaza numarul 2.682. Care dintre
urmatoarele instructiuni C va atribui variabilei intregi y
valoarea
10?
a. y = (x*100)/100 + (x*1000%100/10);
b. y = (floor)(x*100)/100 + (floor)(x*100%100/10);
c. y = (floor)(x*100) – (floor)(x*10)*10+(floor)(x);
d. y = (floor)(x*1000)/100 + (floor)(x*100%100/10);
193. Care dintre urmatoarele expresii C are valoarea 1 daca
variabila x memoreaza un numar natural patrat perfect?
a. sqrt(x) == floor(sqrt(x))
b. sqrt(x) != floor(sqrt(x))
c. floor(sqrt(x))!=ceil(sqrt(x))
d. x-floor(x)==ceil(x)
194. Care dintre urmatoarele instructiuni C sunt corecte
sintactic
daca x si y sunt doua variabile de tip intreg?
a.
if (x < 2) && (x > - 5)
{x=x+1; y=y-1;}
b.
if -5 < x < 2
{ x=x+1; y=y-1;}
c.
if x < 2 && x >-5
{ x=x+1; y=y-1;}
d.
if (x < 2 && x > -5)
{x=x+1; y=y-1;}
195. Care dintre urmatoarele expresii C are valoarea 1 daca si
numai
daca valoarea reala memorata de variabila y nu apartine
intervalului
deschis determinat de valorile reale distincte memorate de
variabilele x si z (x<z)?
a. !((z<x) || (z>y))
b. (z>x) && (z<y)
c. !((y>x) && (y<z))
d. (z<x) && (z>y)
196. Variabila intreaga n memoreaza un numar natural de exact 5
cifre. Instructiunea care determina eliminarea din numarul n a
primei si ultimei cifre este:
a. n=n%100/10;
b. n=n/10%1000;
c. n=n/10%10000;
d. n=n%10/1000;
197. Variabila intreaga n memoreaza un numar natural de exact 7
cifre. Instructiunea care determina eliminarea din numarul n a
celor
3 cifre din mijlocul lui este:
a. n=n/100000*100+n%100;
b. n=n%10000/100+n/100;
c. n=n/10%10000;
d. n=n/1000;
198. Stabiliti ce se afiseaza in urma executarii secventei de
instructiuni C
y=10.1234;
x=(int)(y*100)/100;
printf(”%d”,x);
daca y este o variabila reala, iar x o variabila intreaga.
a. 1012.34
b. 10.12
c. 0.12
d. 10
199. Variabilele n, z si u sunt intregi, iar n memoreaza un
numar
natural cu cel putin 2 cifre. Secventa C care determina
interschimbarea ultimelor doua cifre din scrierea numarului
memorat
de n este:
a. n=(n/100*10+n%10)*10+n%100/10;
b. u=n%10;
z=n/100%10;
n=n/100+u*10+z;
c. n=(n/100*10+n%10)*10+n/100%10;
d. u=n%10;
z=n/100%10;
n=n/100*100+z*10+u;
200. Care dintre expresiile de mai jos are valoarea 1 dupa
executarea secventei de instructiuni C, a=11;b=1;
for(i=1;i<=5;i++)
{ b=b+1;
a=a-1;
}
in care toate variabilele sunt intregi?
a. a<b
b. a==b
c. a>b
d. a+b==6
200. Variabilele intregi a si b memoreaza numere naturale. Care
dintre expresiile C de mai jos este echivalenta cu expresia
(a+b)%2==0 ?
a. (a%2==0) && (b%2==0)&& (a%2==1) && (b%2==1)
b. (a%2!=0) && (b%2!=0) && (a%2==1) && (b%2==1)
c. (a%2==1) || (b%2==1) || (a%2==0) && (b%2==0)
d. (a%2==0) && (b%2==0) || (a%2==1) && (b%2==1)
201. Variabilele intregi a si b memoreaza numere naturale. Care
dintre expresiile C de mai jos este echivalenta cu expresia
(a+b)%2==1 ?
a. (a%2==0) && (b%2==1)|| (a%2==1) && (b%2==0)
b. (a%2!=0) && (b%2!=0) && (a%2==1) && (b%2==1)
c. (a%2==1) || (b%2==1) || (a%2==0) && (b%2==0)
d. (a%2==0) && (b%2==0) && (a%2==1) && (b%2==1)
202. Variabila întreaga n memoreaza un numar natural cu exact 4
cifre. Care dintre expresiile C de mai jos este echivalenta cu
expresia n/100%10%2==0 ?
a. n%100/10%2!=1
b. n%1000%2==0
c. n/100%2==0
d. n/10%10!=1
203. Variabilele intregi n si m memoreaza numere naturale nenule
pare, iar n<m. Care dintre expresiile C de mai jos are valoarea
egala cu numarul de valori impare din intervalul inchis [n,m] ?
a. (m-n)/2+1
b. m/2-n/2
c. (m-n)/2-1
d. m%2-n%2
204. Care dintre instructiunile C de mai jos determina
inlocuirea cu
0 a ultimei cifre a numarului natural, cu cel putin doua cifre,
memorat in variabila intreaga n?
a. n=n*(n%10);
b. n=n/10;
c. n=n-n%10;
d. n=n-n/10;
205. Care dintre variantele de mai jos declara constanta x
astfel
incat aceasta sa memoreze
corect numarul real 3,14?
a. const int x=314/100;
b. const char x=3.14;
c. const unsigned int x=3.14;
d. const float x=3.14;
206. In secventele C urmatoare toate variabilele sunt de tip
intreg
si memoreaza numere cu cel mult 3 cifre. Care dintre variantele
de
mai jos determina interschimbarea valorilor memorate de
variabilele
a si b?
a. aux=b; a=b; b=aux;
b. a=a+b; b=a-b; a=a-b;
c. a=b; b=a;
d. a=a+b; b=a-b; a=b-a;
207. Variabila intreaga n memoreaza un numar natural format din
exact doua cifre nenule. Care dintre urmatoarele instructiuni C
determina memorarea in variabila intreaga t a numarului care are
aceleasi cifre ca si n, dar in ordine inversa?
a. t=n%10*10+n/10;
b. t=n/10*10+n%10;
c. t=n%10+n/10;
d. t=n%10*10+t/10;
208. Care dintre urmatoarele instructiuni C atribuie variabilei
intregi t valoarea -1 daca si numai daca variabilele intregi a
si b
sunt nenule si au semne diferite?
a. if ((a>0)||(b<0)) t=-1;
b. if ((a>0)&&(b<0)) t=-1;
c. if (a*b<0) t=-1;
d. if (a*b>0) t=-1;
209. 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)
printf(”Bine”);
else printf(”Foarte bine”);
else printf(”Rau”);
a. BineRau
b. Foarte bine
c. Rau
d. Bine
210. Stabiliti care dintre urmatoarele expresii C are valoarea 1
daca si numai daca numarul intreg x, nu apartine intervalului
A=(-
10,-2)u[50,100]?
a. (x<=-10) || (x<50 && x>=-2) || (x>100)
b. (x<=-10) || (x<=50 && x>=-2) || (x>=100)
c. (x<-10) || (x<50 && x>-2) || (x>100)
d. (x<=-10) || (x<=50 || x>=-2) || (x>100)
211. Variabile intregi x si y memoreaza cate un numar natural,
cu
exact doua cifre. Care este valoarea expresiei x-y stiind
fiecare
dintre expresiile C alaturate are valoarea 1?
x/10==y%10
y/10==x%10
x/10==x%10+1
a. 0
b. 9
c. 1
d. 11
212. In secventa de instructiuni,
y=1;
if (k>0)
if (i!=j)
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?
a. k=0; i=5; j=5
b. k=10; i=5; j=6
c. k=10; i=5; j=5
d. y nu va avea valoarea 1 indiferent de valorile variabilelor
i,j
si k
213. In secventa de instructiuni,
if (k>0)
if (i!=j) x=0;
else x=1;
else x=2;
if (i!=j)
if (k>0) y=0;
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?
a. x şi y primesc aceeaşi valoare indiferent de valorile
variabilelor i,j şi k
b. k=0; i=5; j=6
c. k=10; i=5; j=5
d. k=0; i=5; j=5
214. In secventa de instructiuni,
if (k>0)
if (i!=j) y=0;
else y=1;
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?
a. k=0; i=5; j=5
b. k=10; i=5; j=6
c. k=10; i=5; j=5
d. k=0; i=5; j=6
215. Care dintre variabilele intregi x, y si z vor avea la
finalul
executarii secventei de instructiuni,
x = y + z;
z = x – z;
y = z;
z = x - y;
aceeasi valoare ca inainte de executare?
a. numai x şi z
b. numai y şi z
c. numai x şi y
d. x, y şi z
216. Variabila intreaga x memoreaza o valoare mai mare ca 1000,
formata doar din cifre distincte. Care dintre urmatoarele
instructiuni C afisează o singura cifra?
a. printf("%d",x/1);
b. printf("%d",x/100);
c. printf("%d",x%100);
d. printf("%d",x%10/1);
217. Care dintre urmatoarele instructiuni C este echivalenta cu
x
=(x+y+z)/2; stiind ca variabilele x, y si z sunt reale?
a. x = x/4/2+ y/4/2 + z/4/2;
b. x = x/2 + y/2 + z/2;
c. x = x + y + z/2;
d. x = x/1/2+ y/1/2 + z/1/2;
218. 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
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;
a. III II I
b. I II III
c. III I II
d. I III II
219. 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;
220.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?
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
221.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
222.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
a. 1, 2, 3, 4 c. 1, 4
b. 1, 2, 3, 4, 5 d. 1, 2, 4
223. 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));
a. s4s4.300 c. s44.30s0
b. 44.30s0 d. 4s4.30s0
224. 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);
}
}
a. 012 c. 021
b. 120 d. 21
225. 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
226. 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)
227. 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;
228. 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
229. 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
230. 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
231. 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)
232. 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;}
a. a = 121, b = 11 c. a = 120, b = 11
b. a = 120, b = 12 d. a = 121, b = 12.
233. 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;
a. 1, 2, 3, 4 c. 2,3, 4
b. 1, 3 d. 1, 3, 4
234. In secventa urmatoare, variabilele n, x si y sunt de tip
intreg.
{x = 1; y = x-1;
do{
y=x*(x-1)+y;
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
235. 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
236. 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
237. 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);
238. 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];
239. 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?
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];
240. 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];
241. 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++;}
242. 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;
243. 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;
244. Dintre tipurile simple de date face parte tipul:
a. double c. Tablou
b. FILE d. Uniune (union)
245. 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
246. 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
247. Parametrii utilizati la apelul unei functii, se numesc:
a. parametri locali c. parametri actuali
b. parametri globali d. parametri formali
248. 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
249. 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
250. 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;
}
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
251. 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
3 4 5
4 5 6
5 6 7
6 7 8
3 4 5 6 7
4 5 6 7 8
b. 2 4 5
3 4 5
4 5 6
d. 2 3 4 5 6
3 2 3 4 5
4 3 4 5 6
252. 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 *);
253. 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
254. 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
255. 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);
256. 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) { ... }
257. 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
258. Care este valoarea expresiei 20 / 10 * 2 + 30 / 15 * 2
a. 2 c. 8
b. 0 d. 4
259. Care dintre expresiile de mai jos va avea valoarea 1?
a. ‘a’ == ‘A’ c. ‘a’ < ‘b’
b. ‘1’ + ‘2’ == ‘3’ d. ‘1’ > ‘2’
260. 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
261. 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;}
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
262. Care este valoarea expresiei: 4000/10/10*2+4*10*10 / 2
a. 400 c. 240
b. 280 d. 220
263. 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
264. 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.
265. 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
266. 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;}
267. Determinati valoarea expresiei fabs(-11.2) +
sqrt(floor(16.23)).
a. -9.2 c. 14.2
b. 15 d. 15.2
268. Determinati valoarea expresiei ((int)fabs(-14.2)) % 7
a. 14 c. 0
b. 2 d. 8

You might also like