Is it always true that an acid or base reacts with metals to give hydrogen gas?

1 Answer
May 18, 2016

I would hesitate to say it's always true...

Two examples that match your description for the reactants are:

(1)

stackrel("metal")overbrace(2"Al"(s)) + stackrel("acid")overbrace(6"HCl"(aq)) -> stackrel("acid salt")overbrace(2"AlCl"_3(aq)) + stackrel("hydrogen gas")overbrace(3"H"_2(g))

(2)

stackrel("metal")overbrace("K"(s)) + stackrel("base")overbrace("NaOH"(aq)) -> stackrel("metal")overbrace("Na"(s)) + stackrel("base, not a salt")overbrace("KOH"(aq)) larr Nope, no hydrogen gas produced!

Well, I found a counterexample. So either you were unclear or I misunderstood you.


Let's say you meant that acid + metal produces hydrogen gas and one other product, and that strong acid + strong base gives a salt and water.

Okay, fine, those usually work. But a metal plus a base does not necessarily give hydrogen gas, as shown in the counterexample above.


Here's how I got the products. When an acid or base reacts with a metal, it will be a redox reaction (a single-replacement reaction, if you will...).

(1)

"Cl"^(-) is a counterion and does nothing. All we have is:

2("Al"(s) -> "Al"^(3+)(aq) + cancel(3e^(-)))
3(2"H"^(+)(aq) + cancel(2e^(-)) -> "H"_2(g))
"----------------------------------------"
2"Al"(s) + 6"H"^(+)(aq) -> 2"Al"^(3+)(aq) + 3"H"_2(g)

When you add back the "Cl"^(-) counterion, you would get:

color(blue)(2"Al"(s) + 6"HCl"(aq) -> 2"AlCl"_3(aq) + 3"H"_2(g))

(2)

The base reaction is similar. The counterion is "OH"^(-).

"K"(s) -> "K"^(+)(aq) + cancel(e^(-))
"Na"^(+)(aq) + cancel(e^(-)) -> "Na"(s)
"---------------------------------"
"K"(s) + "Na"^(+)(aq) -> "K"^(+)(aq) + "Na"(s)

Or, adding back the counterion...

color(blue)("K"(s) + "NaOH"(aq) -> "KOH"(aq) + "Na"(s))