Slow two-strings comparer
This program is organized in a bizarre way.


t1, t2, t1c, and t2c are static variables, which essentially make them "global" state.  This makes your code difficult to follow.
t2c is a write-only variable — assigned but never used.
t1c is only barely used — you're only ever interested in the first character.
It's not obvious what the purpose of ChangeString() is.  What are you changing?  At first glance, it appears to transform the input (which consists of a single letter and a startIndex) into a "yes"/"no" string.


I would expect the program to follow this outline:

using System;

public class TOPSES
{
    public static void Main()
    {
        for (int t = int.Parse(Console.ReadLine()); t &gt;= 0; t--)
        {
            string s1 = Console.ReadLine(),
                   s2 = Console.ReadLine();
            Console.WriteLine(IsRotation(s1, s2) ? "yes" : "no");
        }
    }

    public static bool IsRotation(string s1, string s2)
    {
        …
    }
}


Notes:


Main() should be public.
A for loop gathers all the code related to t together, to make it easy to see what it's for.
Avoid unnecessarily separating declarations and assignments.


The algorithm you use is also too complicated: you're looking for places in t2 that start with the initial character of t1, then checking if t2, if sliced and reassembled there, matches t1.  But why use string.IndexOf(Char, Int) when you could just do string.IndexOf(string)?

public static bool IsRotation(string s1, string s2)
{
    return s1.Length == s2.Length &amp;&amp;
           (s2 + s2).IndexOf(s1) &gt;= 0;
}


This involves just one string concatenation, and no slicing and dicing.