Dunque dalle dispense che sto studiando ho intuito che il problema
riguarda lo scambio di parametri, ma non capisco le definizioni:

"nello scambio per valore la funzione chiamante passa alla funzione chiamata
i valori dei parametri attuali, non i parametri attuali"

"nello scambio per riferimento la funzione chiamante passa alla funzione chiamata
il riferimento dei parametri attuali".

nella riga
void test(int a, int& b)
cosa indica la &???, il tipo di passaggio del parametro???

e poi gli operatori /= *=
o anche ++ -- += -=

non ci crederete, ma non ho trovato ancora una spiegazione!!!
Vi assicuro che ci sto provando a risolvere da me, infatti, sono partito dal non sapere affatto usare visual studio, a scrivere semplici programmi con costrutti condizionali e iterativi, facili operazioni di calcolo...E tutto anche grazie a voi.

ma proprio questa parte non riesco a capirla