So if C has just the five variables, ID and VAR1-VAR4 then a simple MERGE will do the trick.
You can use the IN= dataset option to make a variable you can use to make sure that merging in C does not add observations. In case C has other variables you don't want you can use the KEEP= dataset option to only keep the variables you want. Note this assumes that ID is unique identifier in both datasets. That is for any value of ID there is at most one observation in B and at most one observation in C that has that value.
data new_b ;
merge b(in=inb) c (keep=id var1-var4);
by id;
if inb;
run;
... View more