Untitled
Untitled
În opțiunea (a), operatorul / face împărțirea între y și 100, obținând prima cifră
a numărului, apoi operatorul % face împărțirea între y și 10 și returnează restul
împărțirii, adică ultima cifră a numărului. Operatorul % aplicat pe y însuși și
fără nicio operație ulterioară nu ar putea determina cifra din mijloc, deoarece
acesta ar returna restul împărțirii întregi a lui y la 10, deci ultima cifră a
numărului.
În opțiunea (c), două condiții sunt îndeplinite: z<=w și y>=x. Dacă una dintre
condițiile acestea nu ar fi fost îndeplinită, expresia ar fi avut valoarea 0
(FALSE). Operatorul && are prioritate mai mare decât operatorul ||, deci întâi se
va evalua partea stângă a expresiei, adică (z<=w) && (x>0). Deoarece cele două
condiții sunt îndeplinite, această parte a expresiei are valoarea 1. Apoi, partea
dreaptă a expresiei, y>=x, este evaluată. Această condiție este, de asemenea,
îndeplinită, deci expresia finală are valoarea 1(TRUE).
4.Se consideră algoritmul alăturat. Valoarea care se va afişa pentru n=32751 este:
a) 1
b) 3
c) 7
int n,c; cout<<"n=";cin>>n; c=10; while(n%2==1) { c=n%10; n=n/10; } cout<<c;
Pentru n = 32751, ultima cifră este 1, deci variabila c primește valoarea 1 și apoi
n devine 3275. În continuare, ultima cifră a lui n este 5, care este impară, astfel
încât variabila c primește valoarea 5 și n devine 327. Ultima cifră a lui n este 7,
care este impară, astfel încât variabila c primește valoarea 7 și n devine 32.
Ultima cifră a lui n este 2, care este pară, astfel încât procesul se oprește. În
cele din urmă, instrucțiunea cout<<c; afișează valoarea lui c, adică 3. Prin
urmare, valoarea afișată pentru n = 32751 este 3.
Pentru a afișa valoarea 593, variabila a trebuie să conțină cifrele impare din
245903 în ordine inversă, adică 3952. Dintre opțiunile date, singura care respectă
această condiție este c) 55525. Prin urmare, dacă citim pentru a valoarea 55525, se
va afișa valoarea 593.
La prima iterație, x=1 și y=4. Deoarece x<y, se adaugă cifra x (adică 1) la numărul
n. Astfel, n=1.
La a doua iterație, x=3 și y=0. Deoarece y<x, se adaugă cifra y (adică 0) la
numărul n. Astfel, n=10.
La a treia iterație, x=2 și y=7. Deoarece x<y, se adaugă cifra x (adică 2) la
numărul n. Astfel, n=102.
În final, algoritmul va afișa valoarea 102.
Explicație:
În fiecare iterație a buclei, numărul n este adunat cu ultima sa cifră (n%10), iar
apoi această cifră este eliminată prin împărțirea la 10 (n/10). După primele două
iterații, n va fi 7628. După următoarea iterație, n va fi 763. În următoarele
iterații, n va rămâne 8, iar bucla se va opri. Prin urmare, valoarea afișată va fi
8.
9. Fiecare dintre variabilele declarate alăturat memorează numele şi nota câte unui
elev.
Scrieţi secvenţa de instrucţiuni prin care se citesc de la tastatură numele şi nota
pentru
fiecare dintre variabilele e1 şi e2 şi apoi se afişează numele elevului cu nota cea
mai
mare.
Dacă cele două note sunt egale, se va afişa numele elevului memorat în variabila
e1.
struct elev{
char nume[20];
float nota;
};
elev e1,e2;
#include <iostream>
#include <cstring>
struct elev {
char nume[20];
float nota;
};
int main() {
elev e1, e2;
return 0;
}