i) inta radius =5;
5 valid tokens, 2 matching to identifier, one to constant, 1 to operator and 1 to punctuator.
https://docs.microsoft.com/en-us/cpp/c-language/punctuation-and-special-characters
But this generates a syntax error as two identifiers cannot come together without some other token in between.
ii) x=127b + z;
127b -- causes lexical error as it won't match an identifier which is required to begin with a letter. Also 'b' suffix can be used only for numbers having 0 and 1 -- this also works only in GNU C and not with standard C.
iii) printf("%d=%d\n", x);
7 tokens - printf and x being identifiers, "%d=%d\n" being a string literal, {(, , ,)} being operators and ; being the punctuator. There is no syntax error here and providedx is a declared variable there is no semantic error also.
iv) int p[10]; x=25 + p;
Well, there is no error here, provided these statements are inside some function and x is a pointer to integer type. x = 25+p, returns the address of the 26th element from the start of p --. address of p[25]. The second statement generates a semantic error if given as a global statement -- because 25 + p cannot be done at compile time (as value of p is not known) and global variables are initialized at compile time.