Select faces depending on material
import bpy
import bmesh

mat_c1 = bpy.data.materials['c1']

for ob in bpy.context.scene.objects:
    if ob.type == 'MESH':
        # get all the slot indexes to which mat_c1 is assigned
        c1_slots = [id for id, mat in enumerate(ob.data.materials) if mat == mat_c1]

        # you can also change active_material with
        # ob.active_material_index = some_number
        # and then run operators to deselect all faces and select material with
        # bpy.ops.material_slot_select()
        # but operators are bad so we will do it differently

        faces_mat_c1 = []
        bm = bmesh.new()
        bm.from_mesh(ob.data)
        # no need to swith into edit mode

        for face in bm.faces:
            if face.material_index in c1_slots:
                # face has mat_c1 assigned
                faces_mat_c1.append(face)

        # delete faces with mat_c1
        bmesh.ops.delete(bm, geom=faces_mat_c1, context=5)
        bm.to_mesh(ob.data)
        bm.free()
    else: 
        ob.select = False