mysqlcheck -q doesn't scan through rows. It only goes through indexes. If there are any incorrect links in rows it doesn't check them. I would avoid using -q unless you know there are no incorrect links in rows.
mysqlcheck -r simply repairs the tables. Please check mysqlcheck utility man page for more details.