Both your requirements are the same. You need to determine address row with the latest (MAX) date prior to or equal to the event date. You can use two subqueries in the outer query's SELECT clause, each of which is restricted to the relevant date by a further subquery which is correlated with the outer query, e.g.
SELECT Events.cid, Events.event_dte,
(SELECT county
FROM Addresses
WHERE Addresses.cid = Events.cid
AND Addresses.addr_eff_dte =
(SELECT MAX(addr_eff_dte)
FROM Addresses
WHERE Addresses.cid = Events.cid
AND Addresses.addr_eff_dte <= Events.event_dte)) AS EffectiveCounty,
(SELECT zip
FROM Addresses
WHERE Addresses.cid = Events.cid
AND Addresses.addr_eff_dte =
(SELECT MAX(addr_eff_dte)
FROM Addresses
WHERE Addresses.cid = Events.cid
AND Addresses.addr_eff_dte <= Events.event_dte)) AS EffectiveZip
FROM Events;
I've copied and pasted the dummy data you posted into two tables and can confirm that the above query does return the correct values.