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